Add initial project files and configuration.
This commit is contained in:
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* text=auto
|
||||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
.direnv/
|
||||||
|
creds.json
|
||||||
131
dnsconfig.js
Normal file
131
dnsconfig.js
Normal 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
61
flake.lock
generated
Normal 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
19
flake.nix
Normal 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
4001
types-dnscontrol.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user