summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/hosts.nix20
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; })
+ ];
};
}