From c0d02eea1d6b14644ceb440608d1df642ef1469f Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Thu, 29 May 2025 15:10:57 +0800 Subject: [PATCH] feat(nixosModules/server): add godns dynamic dns --- modules/nixos/server/default.nix | 38 ++++++++++++++++++++++++ systems/x86_64-linux/apollo/default.nix | 6 ++++ systems/x86_64-linux/nemesis/default.nix | 5 +--- 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 modules/nixos/server/default.nix 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";