diff options
author | Simon Parri <simonparri@ganzeria.com> | 2025-06-25 23:36:33 -0500 |
---|---|---|
committer | Simon Parri <simonparri@ganzeria.com> | 2025-06-25 23:36:33 -0500 |
commit | b58c772ed7bb0ed75244915eec2a56312094d8fa (patch) | |
tree | 86102235b97e47e4198dc06dbdfe84cf6b745397 /modules | |
parent | 7551c8b0e98d27693987192e4085362cd61fedaa (diff) | |
download | nixos-config-b58c772ed7bb0ed75244915eec2a56312094d8fa.tar.gz nixos-config-b58c772ed7bb0ed75244915eec2a56312094d8fa.zip |
hosts/*: Set up Yggdrasil
Diffstat (limited to 'modules')
-rw-r--r-- | modules/hosts.nix | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/modules/hosts.nix b/modules/hosts.nix index 0c66c70..79ac3e6 100644 --- a/modules/hosts.nix +++ b/modules/hosts.nix @@ -7,6 +7,16 @@ in this.hosts.lan.home = lib.mkEnableOption "Home LAN /etc/hosts"; this.hosts.mine = lib.mkEnableOption "my /etc/hosts"; this.hosts.alef.zoar.cx = lib.mkEnableOption "alef.zoar.cx /etc/hosts"; + this.hosts.yggdrasil.public = lib.mkOption { + description = "Use Yggdrasil addresses for public hosts when possible."; + type = lib.types.bool; + default = false; + }; + this.hosts.yggdrasil.private = lib.mkOption { + description = "Use Yggdrasil addresses for non-public hosts when possible."; + type = lib.types.bool; + default = false; + }; }; config = { @@ -16,10 +26,18 @@ in "192.168.1.5" = ["rosemary.alef.zoar.cx" "rosemary"]; } // lib.optionalAttrs cfg.mine { - "45.61.184.234" = ["alfheim"]; + "${(if cfg.yggdrasil.public + then "201:c37f:8bd1:de2c:531e:a3c8:6c38:aa3e" + else "45.61.184.234")}" = ["alfheim"]; } // lib.optionalAttrs cfg.alef.zoar.cx { "173.16.167.196" = ["sage.alef.zoar.cx" "sage"]; }; + + services.yggdrasil = lib.mkMerge [ + { persistentKeys = true; } + (lib.mkIf cfg.yggdrasil.public or cfg.yggdrasil.private + { enable = lib.mkDefault true; }) + ]; }; } |