commit 46fad45295b581f71e22724238275c864b8662a0 Author: Vri Date: Mon Apr 21 19:05:28 2025 +0200 feat: initial commit diff --git a/creds.json b/creds.json new file mode 100644 index 0000000..154117b --- /dev/null +++ b/creds.json @@ -0,0 +1,6 @@ +{ + "desec": { + "TYPE": "DESEC", + "auth-token": "$DESEC_AUTH_TOKEN" + } +} diff --git a/dnsconfig.js b/dnsconfig.js new file mode 100644 index 0000000..7d8c6ec --- /dev/null +++ b/dnsconfig.js @@ -0,0 +1,8 @@ +var DNS_DESEC = NewDnsProvider("desec"); +var REG_NONE = NewRegistrar("none"); + +var NATENOM_MAIN = "natenom-main.natenom.org."; +var WEBSYNTHESIS_MX = "mx.websynthesis.org."; + +// import domains +require_glob("./domains/"); diff --git a/domains/natenom.org.js b/domains/natenom.org.js new file mode 100644 index 0000000..b1bcf7e --- /dev/null +++ b/domains/natenom.org.js @@ -0,0 +1,34 @@ +D("natenom.org", REG_NONE, DnsProvider(DNS_DESEC), + DefaultTTL("1h"), + NAMESERVER_TTL("1h"), + + A("@", "188.245.198.27"), + A("natenom-main", "188.245.198.27"), + + AAAA("@", "2a01:4f8:c013:3235::1"), + AAAA("natenom-main", "2a01:4f8:c013:3235::1"), + + CNAME("dev", "@"), + CNAME("www", "@"), + // Cozy Town Status + CNAME("status", "cozytown-status.cozy.town."), + CNAME("up", "cozytown-status.cozy.town."), + // Natenom Main + CNAME("archive", NATENOM_MAIN), + CNAME("ci", NATENOM_MAIN), + CNAME("git", NATENOM_MAIN), + CNAME("pad", NATENOM_MAIN), + // Websynthesis MX + CNAME("autoconfig", WEBSYNTHESIS_MX), + CNAME("autodiscover", WEBSYNTHESIS_MX), + // Natemologie Mumble + CNAME("m", "mumble.natenom.de."), + CNAME("mumble", "mumble.natenom.de."), + + MX("@", 0, WEBSYNTHESIS_MX), + + SRV("_autodiscover._tcp", 0, 0, 443, WEBSYNTHESIS_MX), + + TXT("@", "v=spf1 mx a -all"), + TXT("dkim._domainkey", "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr/pwZeHei9J55sOLsdTNb7DHEAICcsGNzFQJV7cTXIbWW6fTmUx4Fnaf9vgcPSEOZH0nPDPzMQfc05mcAIhbSaygIoRhvg8CJvZorW0FLXxBSpvXmwfH6mS/wxrdbPR+2NvbArOyLGAwcE8h3g5UVzchvm8Di1DNU6XXYCxXaMHYv4tl03WBM9UPqMd1U0QfXgzyzPNvtjIEe1Hrm96xAyJ9BjrZQJC2KsET/vKY0LjmdAi8Cvt6pO+pjzqGOTTekwL2MsdTYObv75xmubL27O7viLO/ekxPpHGBxXRrsPd07el+yF9tKEj2VTK3pPOGbX/fXtA4HxEZz4sE4U4hZQIDAQAB"), +); diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..9ea2e24 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1744932701, + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..cdf082f --- /dev/null +++ b/flake.nix @@ -0,0 +1,39 @@ +{ + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + outputs = { + nixpkgs, + self, + }: let + pkgs = nixpkgs; + + mkAllSystems = lib.genAttrs [ + "aarch64-darwin" + "aarch64-linux" + "i686-linux" + "x86_64-darwin" + "x86_64-linux" + ]; + + inherit (pkgs) lib; + in { + formatter = mkAllSystems (system: pkgs.legacyPackages.${system}.alejandra); + + devShells = mkAllSystems (system: let + pkgs = nixpkgs.legacyPackages.${system}; + + inherit (pkgs) mkShell; + in rec { + default = mkShell { + nativeBuildInputs = [pkgs.dnscontrol]; + + shellHook = '' + echo "Bitte einen deSEC-Auth-Token eingeben:" + read -rs DESEC_AUTH_TOKEN + export DESEC_AUTH_TOKEN + ''; + }; + }); + }; +} +