diff --git a/modules/nixos/server/default.nix b/modules/nixos/server/default.nix new file mode 100644 index 0000000..d9ca87c --- /dev/null +++ b/modules/nixos/server/default.nix @@ -0,0 +1,38 @@ +{ lib, config, ... }: +{ + options.server = { + enableDDNS = lib.mkEnableOption ""; + }; + + config = lib.mkMerge [ + (lib.mkIf config.server.enableDDNS { + services.godns = { + enable = true; + loadCredential = [ + "cf_token:${config.sops.secrets."keys/cloudflare".path}" + ]; + settings = { + provider = "Cloudflare"; + login_token_file = "$CREDENTIALS_DIRECTORY/cf_token"; + domains = [ + { + domain_name = "rrv.sh"; + sub_domains = [ + "@" + ]; + } + ]; + resolver = "1.1.1.1"; + ip_urls = [ + "https://wtfismyip.com/text" + "https://api.ipify.org" + "https://myip.biturl.top" + "https://api-ipv4.ip.sb/ip" + ]; + ip_type = "IPv4"; + interval = 300; + }; + }; + }) + ]; +} diff --git a/systems/x86_64-linux/apollo/default.nix b/systems/x86_64-linux/apollo/default.nix index 16482dd..6472c0a 100644 --- a/systems/x86_64-linux/apollo/default.nix +++ b/systems/x86_64-linux/apollo/default.nix @@ -3,12 +3,14 @@ ... }: { + system = { hostname = "apollo"; mainUser.name = "rafiq"; mainUser.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILdsZyY3gu8IGB8MzMnLdh+ClDxQQ2RYG9rkeetIKq8n"; bootloader = "systemd-boot"; }; + hardware = { platform = "intel"; drives.btrfs = { @@ -18,5 +20,9 @@ }; }; + server = { + enableDDNS = true; + }; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; } diff --git a/systems/x86_64-linux/nemesis/default.nix b/systems/x86_64-linux/nemesis/default.nix index b710bc9..424d89b 100644 --- a/systems/x86_64-linux/nemesis/default.nix +++ b/systems/x86_64-linux/nemesis/default.nix @@ -1,7 +1,4 @@ -{ - lib, - ... -}: +{ lib, ... }: { system = { hostname = "nemesis";