Self-host your own digital island
at main 648 B view raw
1{ pkgs, config, lib, zonename, zone, ... }: 2 3pkgs.writeTextFile { 4 name = "zonefile-${zonename}"; 5 destination = "/${zonename}"; 6 text = '' 7 $ORIGIN ${zonename}. 8 $TTL ${builtins.toString zone.ttl} 9 @ IN SOA ${zone.soa.ns} ${zone.soa.email} ( 10 ${builtins.toString zone.soa.serial} 11 ${builtins.toString zone.soa.refresh} 12 ${builtins.toString zone.soa.retry} 13 ${builtins.toString zone.soa.expire} 14 ${builtins.toString zone.soa.negativeCacheTtl} 15 ) 16 ${lib.strings.concatStringsSep "\n" (builtins.map 17 (rr: "${rr.name} IN ${builtins.toString rr.ttl} ${rr.type} ${rr.value}") 18 zone.records)} 19 ''; 20}