mirror of
https://codeberg.org/muon/home.git
synced 2025-12-05 23:57:46 +00:00
Merge branch 'vps' of codeberg.org:muon/home into vps
This commit is contained in:
commit
e066d782da
3 changed files with 64 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ in {
|
|||
mods.server.photoprism.enable = true;
|
||||
|
||||
mods.server.wireguard.enable = true;
|
||||
mods.server.headscale.enable = false;
|
||||
|
||||
# Use the GRUB 2 boot loader.
|
||||
boot.loader.grub.enable = true;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
./media.nix
|
||||
./sync.nix
|
||||
./wireguard.nix
|
||||
./headscale.nix
|
||||
./photoprism.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
62
modules/nixos/server/headscale.nix
Normal file
62
modules/nixos/server/headscale.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
base = "muon.host";
|
||||
domain = "head.${base}";
|
||||
in {
|
||||
options.mods.server.headscale = {
|
||||
enable = lib.mkEnableOption {
|
||||
default = false;
|
||||
description = "enables headscale server";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.server.headscale.enable {
|
||||
services = {
|
||||
headscale = {
|
||||
enable = true;
|
||||
port = 8085;
|
||||
address = "127.0.0.1";
|
||||
settings = {
|
||||
dns_config = {
|
||||
override_local_dns = true;
|
||||
base_domain = "${base}";
|
||||
magic_dns = true;
|
||||
domains = [ "${domain}" ];
|
||||
nameservers = [
|
||||
"9.9.9.9"
|
||||
];
|
||||
};
|
||||
server_url = "https://${domain}";
|
||||
metrics_listen_addr = "127.0.0.1:8095";
|
||||
logtail.enabled = false;
|
||||
log.level = "warn";
|
||||
ip_prefixes = [
|
||||
"100.64.0.0/10"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
nginx.enable = true;
|
||||
nginx.virtualHosts.${domain} = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.headscale.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
"/metrics" = {
|
||||
proxyPass = "http://${config.services.headscale.settings.metrics_listen_addr}/metrics";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults.email = "acme@muon.host";
|
||||
};
|
||||
|
||||
environment.systemPackages = [ config.services.headscale.package ];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue