diff --git a/docs/example.nix b/docs/example.nix index bd700f3..5a58fe9 100644 --- a/docs/example.nix +++ b/docs/example.nix @@ -1,11 +1,12 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "satr14washere"; + email = "admin@satr14.my.id"; + }; + proxy = false; +in with dns.lib.combinators; { A = [ - { - address = "203.0.113.1"; - ttl = 60 * 60; - } + { address = "203.0.113.1"; ttl = 60 * 60; } "203.0.113.2" (ttl (60 * 60) (a "203.0.113.3")) ]; @@ -17,13 +18,7 @@ with dns.lib.combinators; MX = mx.google; TXT = [ - ( - with spf; - strict [ - "a:mail.example.com" - google - ] - ) + (with spf; strict [ "a:mail.example.com" google ]) ]; DMARC = [ (dmarc.postmarkapp "mailto:re+abcdefghijk@dmarc.postmarkapp.com") ]; @@ -53,16 +48,8 @@ with dns.lib.combinators; { svcPriority = 1; targetName = "."; - alpn = [ - "http/1.1" - "h2" - "h3" - ]; - ipv4hint = [ - "203.0.113.1" - "203.0.113.2" - "203.0.113.3" - ]; + alpn = [ "http/1.1" "h2" "h3" ]; + ipv4hint = [ "203.0.113.1" "203.0.113.2" "203.0.113.3" ]; ipv6hint = [ "4321:0:1:2:3:4:567:89ab" ]; } ]; diff --git a/domains/_discord.colin.nix b/domains/_discord.colin.nix index aff9a5d..e107e70 100644 --- a/domains/_discord.colin.nix +++ b/domains/_discord.colin.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "ColinLeDev"; + }; + description = "Discord verification"; + proxy = false; +in with dns.lib.combinators; { TXT = [ "dh=279643a6f8677dedb1c5c63d007fc4516149679c" ]; } diff --git a/domains/_discord.cutedog5695.nix b/domains/_discord.cutedog5695.nix index 597ab61..8b6e78e 100644 --- a/domains/_discord.cutedog5695.nix +++ b/domains/_discord.cutedog5695.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "CuteDog5695"; + email = "cutedog5695@gmail.com"; + repo = "https://github.com/CuteDog5695/cutedog5695.github.io"; + }; + proxy = false; +in with dns.lib.combinators; { TXT = [ "dh=a7c19efb0f6bc38b97a33760f6c1ee84df4151b1" ]; } diff --git a/domains/_discord.justdeveloper.nix b/domains/_discord.justdeveloper.nix index a7ac99e..c1025bb 100644 --- a/domains/_discord.justdeveloper.nix +++ b/domains/_discord.justdeveloper.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "justdeveloper@juststudio.is-a.dev"; + repo = "https://github.com/JustDeveloper1/Website"; + }; + proxy = false; +in with dns.lib.combinators; { TXT = [ "dh=6024027bc233825451e290ac37a4b4a1f838ee70" ]; } diff --git a/domains/_discord.nix b/domains/_discord.nix index 95090d8..ee3009d 100644 --- a/domains/_discord.nix +++ b/domains/_discord.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "satr14washere"; + }; + proxy = false; +in with dns.lib.combinators; { TXT = [ "dh=d509fc9014e196311ed887c2e410cdefa833436e" ]; } diff --git a/domains/_discord.roki.nix b/domains/_discord.roki.nix index 48e6a52..5b1d452 100644 --- a/domains/_discord.roki.nix +++ b/domains/_discord.roki.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "Roki100"; + discord = "289479495444987904"; + }; +in with dns.lib.combinators; { TXT = [ "dh=5633078cd5bfd347a896ddb0f0de017c5423aa06" ]; } diff --git a/domains/batman.nix b/domains/batman.nix index 3b6202d..0ad04bd 100644 --- a/domains/batman.nix +++ b/domains/batman.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "shadowe1ite"; + }; + proxy = true; +in with dns.lib.combinators; { CNAME = [ "shadowe1ite.github.io." ]; } diff --git a/domains/c.nix b/domains/c.nix index 9ecb30a..bed0b01 100644 --- a/domains/c.nix +++ b/domains/c.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "orangci"; + email = "c@orangc.xyz"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/colin.nix b/domains/colin.nix index 4fe7a4a..277aba7 100644 --- a/domains/colin.nix +++ b/domains/colin.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "ColinLeDev"; + }; + description = "My personal portfolio hosted on my server"; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "proxy.col1n.fr." ]; } diff --git a/domains/cutedog5695.nix b/domains/cutedog5695.nix index 9ecb30a..f20329f 100644 --- a/domains/cutedog5695.nix +++ b/domains/cutedog5695.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "CuteDog5695"; + email = "cutedog5695@gmail.com"; + repo = "https://github.com/CuteDog5695/cutedog5695.github.io"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/elkaff.nix b/domains/elkaff.nix index 109e65c..9ead547 100644 --- a/domains/elkaff.nix +++ b/domains/elkaff.nix @@ -1,5 +1,7 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "elkhaff"; + }; +in with dns.lib.combinators; { CNAME = [ "portofolio-pixel.pages.dev." ]; } diff --git a/domains/j.nix b/domains/j.nix index 9ecb30a..8cd38c6 100644 --- a/domains/j.nix +++ b/domains/j.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "support@juststudio.is-a.dev"; + repo = "https://github.com/JustStudio7/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/jacob.nix b/domains/jacob.nix index 34c1508..46839f9 100644 --- a/domains/jacob.nix +++ b/domains/jacob.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "jacobrdale"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "hexon404.onrender.com." ]; } diff --git a/domains/jd.nix b/domains/jd.nix index 9ecb30a..4555867 100644 --- a/domains/jd.nix +++ b/domains/jd.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "justdeveloper@juststudio.is-a.dev"; + repo = "https://github.com/JustDeveloper1/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/job.nix b/domains/job.nix index df2d227..c2623ab 100644 --- a/domains/job.nix +++ b/domains/job.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "FWEEaaaa1"; + }; + proxy = false; +in with dns.lib.combinators; { A = [ "128.204.223.115" ]; } diff --git a/domains/joel.nix b/domains/joel.nix index c5af765..f1ad335 100644 --- a/domains/joel.nix +++ b/domains/joel.nix @@ -1,6 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "joestr"; + email = "strasser999@gmail.com"; + }; + proxy = false; +in with dns.lib.combinators; { A = [ "142.132.173.34" ]; AAAA = [ "2a01:4f8:1c0c:6cc0::1" ]; MX = [ diff --git a/domains/js.nix b/domains/js.nix index 9ecb30a..8cd38c6 100644 --- a/domains/js.nix +++ b/domains/js.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "support@juststudio.is-a.dev"; + repo = "https://github.com/JustStudio7/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/just.nix b/domains/just.nix index 9ecb30a..4555867 100644 --- a/domains/just.nix +++ b/domains/just.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "justdeveloper@juststudio.is-a.dev"; + repo = "https://github.com/JustDeveloper1/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/justdev.nix b/domains/justdev.nix index 9ecb30a..4555867 100644 --- a/domains/justdev.nix +++ b/domains/justdev.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "justdeveloper@juststudio.is-a.dev"; + repo = "https://github.com/JustDeveloper1/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/justdeveloper.nix b/domains/justdeveloper.nix index 9ecb30a..4555867 100644 --- a/domains/justdeveloper.nix +++ b/domains/justdeveloper.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "justdeveloper@juststudio.is-a.dev"; + repo = "https://github.com/JustDeveloper1/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/juststudio.nix b/domains/juststudio.nix index 9ecb30a..8cd38c6 100644 --- a/domains/juststudio.nix +++ b/domains/juststudio.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "JustDeveloper1"; + email = "support@juststudio.is-a.dev"; + repo = "https://github.com/JustStudio7/Website"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/katz.nix b/domains/katz.nix index 0751913..c369c96 100644 --- a/domains/katz.nix +++ b/domains/katz.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "Bananalolok"; + }; + proxy = false; +in with dns.lib.combinators; { A = [ "69.197.135.205" ]; } diff --git a/domains/no-one-is.nix b/domains/no-one-is.nix index 391d7e6..8fcb680 100644 --- a/domains/no-one-is.nix +++ b/domains/no-one-is.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "EducatedSuddenBucket"; + email = "me@esb.is-a.dev"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "educatedsuddenbucket-github-io.onrender.com." ]; } diff --git a/domains/pxl.nix b/domains/pxl.nix index 0076d71..2b3bce0 100644 --- a/domains/pxl.nix +++ b/domains/pxl.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "heypxl"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "heypxl.github.io." ]; } diff --git a/domains/rchessauth.nix b/domains/rchessauth.nix index 9b7f17f..6ddd4c4 100644 --- a/domains/rchessauth.nix +++ b/domains/rchessauth.nix @@ -1,5 +1,8 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "vortexprime24"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "fire.hackclub.app." ]; } diff --git a/domains/roki.nix b/domains/roki.nix index 9ecb30a..43d30e6 100644 --- a/domains/roki.nix +++ b/domains/roki.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "Roki100"; + discord = "289479495444987904"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "edge.redirect.pizza." ]; } diff --git a/domains/satr14.nix b/domains/satr14.nix index cfc5b01..fa6e690 100644 --- a/domains/satr14.nix +++ b/domains/satr14.nix @@ -1,5 +1,7 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "satr14washere"; + }; +in with dns.lib.combinators; { CNAME = [ "5th-site.pages.dev." ]; } diff --git a/domains/stef.nix b/domains/stef.nix index 47f7470..88e3870 100644 --- a/domains/stef.nix +++ b/domains/stef.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "Stef-00012"; + email = "admin@stefdp.lol"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "proxy.stefdp.lol." ]; } diff --git a/domains/ukriu.nix b/domains/ukriu.nix index 48bb496..bab016a 100644 --- a/domains/ukriu.nix +++ b/domains/ukriu.nix @@ -1,5 +1,10 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "ukriu"; + email = "partofmyid@ukriu.com"; + }; + description = "my website"; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "ukriu.pages.dev." ]; } diff --git a/domains/you-are.nix b/domains/you-are.nix index 914193f..3cad0e8 100644 --- a/domains/you-are.nix +++ b/domains/you-are.nix @@ -1,5 +1,9 @@ -{ dns, ... }: -with dns.lib.combinators; -{ +{ dns, ... }: let + owner = { + username = "Stef-00012"; + email = "admin@stefdp.com"; + }; + proxy = false; +in with dns.lib.combinators; { CNAME = [ "proxy.stefdp.com." ]; } diff --git a/flake.nix b/flake.nix index b442857..9dd8906 100644 --- a/flake.nix +++ b/flake.nix @@ -2,53 +2,32 @@ description = "Zone File Generator"; inputs.dns.url = "github:nix-community/dns.nix"; - outputs = - { dns, ... }: - let - email = "admin@satr14.my.id"; - domains."0" = { - domain = "part-of.my.id"; - nameservers = [ - "adele.ns.cloudflare.com" - "fattouche.ns.cloudflare.com" - ]; - }; - - inherit (import { }) lib; - - domainsFolder = builtins.readDir ./domains; - domainFiles = lib.filterAttrs ( - name: type: type == "regular" && builtins.match ".*\\.nix" name != null - ) domainsFolder; - subdomains = lib.mapAttrs' ( - name: _: - let - key = builtins.replaceStrings [ ".nix" ] [ "" ] name; - in - { - name = key; - value = import (./domains + "/${name}") { inherit dns; }; - } - ) domainFiles; - in - { - packages.x86_64-linux = builtins.mapAttrs ( - _: domain: - dns.util.x86_64-linux.writeZone domain.domain ( - with dns.lib.combinators; - { - SOA = { - adminEmail = email; - nameServer = builtins.head domain.nameservers; - serial = builtins.currentTime; - }; - NS = domain.nameservers; - - # note: Cloudflare ignores SOA and NS records uploaded via Zone File, they are included just so that dns.nix builds a valid zone file. - - inherit subdomains; - } - ) - ) domains; + outputs = { dns, ... }: let + email = "admin@satr14.my.id"; + domains."0" = { + domain = "part-of.my.id"; + nameservers = [ + "adele.ns.cloudflare.com" + "fattouche.ns.cloudflare.com" + ]; }; -} + in { + packages.x86_64-linux = builtins.mapAttrs (_: domain: + dns.util.x86_64-linux.writeZone domain.domain ( + with dns.lib.combinators; { + SOA = { + adminEmail = email; + nameServer = builtins.head domain.nameservers; + serial = builtins.currentTime; + }; + NS = domain.nameservers; + + # note: Cloudflare ignores SOA and NS records uploaded via Zone File, they are included just so that dns.nix builds a valid zone file. + + #subdomains = ; + # ^^ todo: implement file imports from ./domains + } + ) + ) domains; + }; +} \ No newline at end of file