48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
config = {
|
|
# TODO backup /var/lib/headscale data
|
|
# TODO https://github.com/gurucomputing/headscale-ui ?
|
|
environment.systemPackages = with pkgs; [ headscale ];
|
|
services.headscale = {
|
|
enable = true;
|
|
settings = {
|
|
server_url = "https://nexus.joshuabell.xyz";
|
|
database.type = "sqlite3";
|
|
derp = {
|
|
auto_update_enable = true;
|
|
update_frequency = "5m";
|
|
};
|
|
dns = {
|
|
magic_dns = true;
|
|
base_domain = "net.joshuabell.xyz";
|
|
extra_records =
|
|
let
|
|
h001ARecord = name: {
|
|
type = "A";
|
|
name = "${name}.joshuabell.xyz";
|
|
value = "100.64.0.13";
|
|
};
|
|
|
|
in
|
|
[
|
|
# {
|
|
# type = "A";
|
|
# name = "jellyfin.joshuabell.xyz";
|
|
# value = "100.64.0.13";
|
|
# }
|
|
h001ARecord "jellyfin"
|
|
h001ARecord "media"
|
|
h001ARecord "notes"
|
|
h001ARecord "chat"
|
|
h001ARecord "sso-proxy"
|
|
h001ARecord "n8n"
|
|
h001ARecord "sso"
|
|
h001ARecord "gist"
|
|
h001ARecord "git"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|