Merge branch 'vps' of codeberg.org:muon/home into vps

This commit is contained in:
muon 2024-09-05 21:14:28 +00:00
commit e066d782da
3 changed files with 64 additions and 0 deletions

View file

@ -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;

View file

@ -7,6 +7,7 @@
./media.nix
./sync.nix
./wireguard.nix
./headscale.nix
./photoprism.nix
];
}

View 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 ];
};
}