diff --git a/machines/nixos/rescue01/_configuration.nix b/machines/nixos/rescue01/_configuration.nix index ce20daa..dc59d38 100644 --- a/machines/nixos/rescue01/_configuration.nix +++ b/machines/nixos/rescue01/_configuration.nix @@ -12,6 +12,7 @@ lib.extra.mkConfig { enabledServices = [ # List of services to enable + "netbird-relay" "uptime-kuma" ]; diff --git a/machines/nixos/rescue01/netbird-relay.nix b/machines/nixos/rescue01/netbird-relay.nix new file mode 100644 index 0000000..f2cbc97 --- /dev/null +++ b/machines/nixos/rescue01/netbird-relay.nix @@ -0,0 +1,34 @@ +# SPDX-FileCopyrightText: 2024 Tom Hubrecht +# +# SPDX-License-Identifier: EUPL-1.2 + +{ + config, + nixpkgs, + ... +}: + +let + domain = "nb-relay01.dgnum.eu"; +in + +{ + services = { + netbird.server.relay = { + enable = true; + + package = nixpkgs.nixos.unstable.netbird; + + inherit domain; + enableNginx = true; + + environmentFile = config.age.secrets."netbird-relay_environment_file".path; + metricsPort = 9094; + }; + + nginx.virtualHosts.${domain} = { + enableACME = true; + forceSSL = true; + }; + }; +} diff --git a/machines/nixos/rescue01/secrets/netbird-relay_environment_file b/machines/nixos/rescue01/secrets/netbird-relay_environment_file new file mode 100644 index 0000000..d8654ec Binary files /dev/null and b/machines/nixos/rescue01/secrets/netbird-relay_environment_file differ diff --git a/machines/nixos/rescue01/secrets/secrets.nix b/machines/nixos/rescue01/secrets/secrets.nix index f270805..bd9fae1 100644 --- a/machines/nixos/rescue01/secrets/secrets.nix +++ b/machines/nixos/rescue01/secrets/secrets.nix @@ -6,5 +6,6 @@ [ "rescue01" ] [ # List of secrets for rescue01 + "netbird-relay_environment_file" "stateless-uptime-kuma-password" ] diff --git a/machines/nixos/storage01/netbird.nix b/machines/nixos/storage01/netbird.nix index f6c451b..c1c22ef 100644 --- a/machines/nixos/storage01/netbird.nix +++ b/machines/nixos/storage01/netbird.nix @@ -69,7 +69,10 @@ in }; Relay = { - Addresses = [ "rels://${domain}:443" ]; + Addresses = builtins.map (host: "rels://${host}:443") [ + domain + "nb-relay01.dgnum.eu" + ]; CredentialsTTL = "24h"; Secret._secret = s "netbird-relay_secret_file"; }; diff --git a/meta/dns.nix b/meta/dns.nix index cd2602c..8732105 100644 --- a/meta/dns.nix +++ b/meta/dns.nix @@ -113,6 +113,7 @@ let ]; rescue01.dual = [ + "nb-relay01" # Netbird Relay "status" # Uptime Kuma ]; diff --git a/meta/nodes/nixos.nix b/meta/nodes/nixos.nix index 6fa0798..b9306b6 100644 --- a/meta/nodes/nixos.nix +++ b/meta/nodes/nixos.nix @@ -181,6 +181,10 @@ version = "24.11"; system = "nixos"; }; + + nix-modules = [ + "services/netbird/server.nix" + ]; }; storage01 = {