Add initial project files and configuration.

This commit is contained in:
2026-02-25 21:01:28 -05:00
commit 3da867f69f
7 changed files with 4216 additions and 0 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.direnv/
creds.json

131
dnsconfig.js Normal file
View File

@@ -0,0 +1,131 @@
// @ts-check
/// <reference path="types-dnscontrol.d.ts" />
var REG_101DOMAIN = NewRegistrar("none");
var DNS_CLOUDFLARE = NewDnsProvider("cloudflare");
/* ****************************************************************************************************************** *\
Defaults & Common Records
\* ****************************************************************************************************************** */
DEFAULTS(
DnsProvider(DNS_CLOUDFLARE),
DefaultTTL(1),
CF_MANAGE_COMMENTS, // opt into comments syncing
CAA("@", "iodef", "mailto:0acbbb8a-1558-419a-ab2d-3f2773a1247d@arirex.email"),
CAA("@", "issue", "letsencrypt.org"),
);
var rexbox = "rexbox.prm.achl.fr.";
var rexcloud = "rexcloud.cld.achl.fr.";
var PROTONMAIL_RECORDS = [
MX("@", 10, "mail.protonmail.ch.", CF_COMMENT("ProtonMail MX")),
MX("@", 20, "mailsec.protonmail.ch.", CF_COMMENT("ProtonMail MX")),
TXT("@", "v=spf1 include:_spf.protonmail.ch mx ~all", CF_COMMENT("ProtonMail SPF")),
TXT("_dmarc", "v=DMARC1; p=quarantine; adkim=s; aspf=s; rua=mailto:0acbbb8a-1558-419a-ab2d-3f2773a1247d@arirex.email; ruf=mailto:0acbbb8a-1558-419a-ab2d-3f2773a1247d@arirex.email; pct=100; fo=1", CF_COMMENT("ProtonMail DMARC")),
];
var SIMPLELOGIN_RECORDS = [
MX("@", 10, "mx1.simplelogin.co.", CF_COMMENT("SimpleLogin MX")),
MX("@", 20, "mx2.simplelogin.co.", CF_COMMENT("SimpleLogin MX")),
TXT("@", "v=spf1 include:simplelogin.co ~all", CF_COMMENT("SimpleLogin SPF")),
CNAME("dkim._domainkey", "dkim._domainkey.simplelogin.co.", CF_COMMENT("SimpleLogin DKIM")),
CNAME("dkim02._domainkey", "dkim02._domainkey.simplelogin.co.", CF_COMMENT("SimpleLogin DKIM")),
CNAME("dkim03._domainkey", "dkim03._domainkey.simplelogin.co.", CF_COMMENT("SimpleLogin DKIM")),
TXT("_dmarc", "v=DMARC1; p=quarantine; adkim=s; aspf=s; rua=mailto:0acbbb8a-1558-419a-ab2d-3f2773a1247d@arirex.email; ruf=mailto:0acbbb8a-1558-419a-ab2d-3f2773a1247d@arirex.email; pct=100; fo=1", CF_COMMENT("SimpleLogin DMARC")),
];
/* ****************************************************************************************************************** *\
arirex.me
\* ****************************************************************************************************************** */
D("arirex.me", REG_101DOMAIN,
ALIAS("@", rexbox),
// RexBox Services
CNAME("auth", rexbox, CF_COMMENT("Traefik Forward Auth")),
CNAME("bin", rexbox, CF_COMMENT("MicroBin")),
CNAME("chat", rexbox, CF_COMMENT("Matrix / Client")),
CNAME("id", rexbox, CF_COMMENT("Pocket ID")),
CNAME("it", rexbox, CF_COMMENT("IT Tools")),
CNAME("karakeep", rexbox, CF_COMMENT("Karakeep")),
CNAME("l", rexbox, CF_COMMENT("Chhoto URL")),
CNAME("matrix", rexbox, CF_COMMENT("Matrix / Server")),
CNAME("mc", rexbox, CF_COMMENT("Minecraft")),
CNAME("ntfy", rexbox, CF_COMMENT("Ntfy")),
CNAME("p", rexbox, CF_COMMENT("MicroBin")),
CNAME("traefik", rexbox, CF_COMMENT("Traefik")),
// RexCloud Services
CNAME("beszel", rexcloud, CF_COMMENT("Beszel")),
CNAME("git", rexcloud, CF_COMMENT("Gitea")),
CNAME("gw", rexcloud, CF_COMMENT("IPFS")),
CNAME("*.ipfs.gw", rexcloud, CF_COMMENT("IPFS")),
CNAME("*.ipns.gw", rexcloud, CF_COMMENT("IPFS")),
CNAME("search", rexcloud, CF_COMMENT("SearXNG")),
CNAME("speedtest", rexcloud, CF_COMMENT("LibreSpeed")),
// Media Stack
CNAME("qbittorrent.servarr", rexbox, CF_COMMENT("qBittorrent")),
CNAME("jellyfin.servarr", rexbox, CF_COMMENT("Jellyfin")),
CNAME("jellyseerr.servarr", rexbox, CF_COMMENT("Jellyseerr")),
CNAME("prowlarr.servarr", rexbox, CF_COMMENT("Prowlarr")),
CNAME("profilarr.servarr", rexbox, CF_COMMENT("Profilarr")),
CNAME("radarr.servarr", rexbox, CF_COMMENT("Radarr")),
CNAME("sonarr.servarr", rexbox, CF_COMMENT("Sonarr")),
CNAME("lidarr.servarr", rexbox, CF_COMMENT("Lidarr")),
// Verifications
TXT("_atproto", "did=did:plc:53kf45pcsqgayjmoau42lhsk", CF_COMMENT("BlueSky Verify")),
TXT("_discord", "dh=1c93b7effbe0bf428cb55d33175c2721ef715bb6", CF_COMMENT("Discord Verify")),
TXT("_github-pages-challenge-arirexouium", "0b62c2fb7a8422145d5b5e6637257d", CF_COMMENT("GitHub Pages Verify")),
TXT("@", "oa1:xmr recipient_address=89dQNyY3E9gJGYrEeRw4EFAdezWQg7BBbHJdBpLRwrjH52ngNfAYRcEhAHQotCswGxTeSoFi5nQ7Gf86kySmXzuQE9CXjUH; recipient_name=AriRexouium;", CF_COMMENT("OpenAlias \u003e XMR \u003e Kraken")),
// ProtonMail
PROTONMAIL_RECORDS,
TXT("@", "protonmail-verification=6fd60590dc31588ca5a85c7e311649ff5f93cab2", CF_COMMENT("ProtonMail Verify")),
CNAME("protonmail._domainkey", "protonmail.domainkey.dodai2qaszneyk5jeyfloq24ttjcqfer2gdopw3nfmxn3bugtw2hq.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
CNAME("protonmail2._domainkey", "protonmail2.domainkey.dodai2qaszneyk5jeyfloq24ttjcqfer2gdopw3nfmxn3bugtw2hq.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
CNAME("protonmail3._domainkey", "protonmail3.domainkey.dodai2qaszneyk5jeyfloq24ttjcqfer2gdopw3nfmxn3bugtw2hq.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
);
/* ****************************************************************************************************************** *\
achl.fr
\* ****************************************************************************************************************** */
D("achl.fr", REG_101DOMAIN,
ALIAS("@", rexbox),
// Devices & Servers
// IGNORE("rexbox.prm", "A"), // Managed by qmcgaw/ddns-updater
// IGNORE("rexcloud.cld", "A"), // Managed by qmcgaw/ddns-updater
// Services
CNAME("chat", rexbox, CF_COMMENT("Matrix / Client")),
CNAME("matrix", rexbox, CF_COMMENT("Matrix / Server")),
// Verifications
TXT("_discord", "dh=d041188169640d1f23c6b379d97935981a7a07da", CF_COMMENT("Discord Verify")),
TXT("_github-pages-challenge-arirexouium", "134234f292827135d74e0637efc575", CF_COMMENT("GitHub Pages Verify")),
// ProtonMail
PROTONMAIL_RECORDS,
TXT("@", "protonmail-verification=a5142b961ee71079de475ab173095ae7a8497159", CF_COMMENT("ProtonMail Verify")),
CNAME("protonmail._domainkey", "protonmail.domainkey.dptdmdzwbeybqhgo544aqzi6w7vqiojzxbbm6hoev3nni5kewj4ga.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
CNAME("protonmail2._domainkey", "protonmail2.domainkey.dptdmdzwbeybqhgo544aqzi6w7vqiojzxbbm6hoev3nni5kewj4ga.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
CNAME("protonmail3._domainkey", "protonmail3.domainkey.dptdmdzwbeybqhgo544aqzi6w7vqiojzxbbm6hoev3nni5kewj4ga.domains.proton.ch.", CF_COMMENT("ProtonMail DKIM")),
);
/* ****************************************************************************************************************** *\
arirex.email
\* ****************************************************************************************************************** */
D("arirex.email", REG_101DOMAIN,
SIMPLELOGIN_RECORDS,
TXT("@", "sl-verification=ngmfowygibangqmiobjznfmjhxniyi", CF_COMMENT("SimpleLogin Verify")),
);
/* ****************************************************************************************************************** *\
achlfr.email
\* ****************************************************************************************************************** */
D("achlfr.email", REG_101DOMAIN,
SIMPLELOGIN_RECORDS,
TXT("@", "sl-verification=rsykypqtapcymkryscyoajdlajvqmx", CF_COMMENT("SimpleLogin Verify")),
);

61
flake.lock generated Normal file
View File

@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1771848320,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

19
flake.nix Normal file
View File

@@ -0,0 +1,19 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
dnscontrol
];
};
}
);
}

4001
types-dnscontrol.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff