Self-host your own digital island
1{ pkgs, config, lib, ... }:
2
3let cfg = config.eilean.services.dns;
4in lib.mkIf (cfg.enable && cfg.server == "eon") {
5 services.eon = {
6 enable = true;
7 application = "capd";
8 capnpAddress = lib.mkDefault config.networking.domain;
9 zoneFiles = let
10 mapZonefile = zonename: zone:
11 "${
12 import ./zonefile.nix { inherit pkgs config lib zonename zone; }
13 }/${zonename}";
14 in lib.attrsets.mapAttrsToList mapZonefile cfg.zones;
15 };
16}