mirror of
https://github.com/Noratrieb/vps.git
synced 2026-01-14 08:45:02 +01:00
78 lines
1.8 KiB
Nix
78 lines
1.8 KiB
Nix
# https://github.com/nix-community/dns.nix
|
|
{ pkgs, lib, networkingConfig, ... }:
|
|
let
|
|
data = with pkgs.nix-dns.lib.combinators;
|
|
let
|
|
hour1 = 3600;
|
|
hostsToDns = builtins.mapAttrs
|
|
(name: { publicIPv4, publicIPv6, ... }:
|
|
lib.optionalAttrs (publicIPv4 != null) { A = [ (ttl hour1 (a publicIPv4)) ]; } //
|
|
lib.optionalAttrs (publicIPv6 != null) { AAAA = [ (ttl hour1 (aaaa publicIPv6)) ]; })
|
|
networkingConfig;
|
|
vps2 = {
|
|
A = [ "184.174.32.252" ];
|
|
};
|
|
in
|
|
with hostsToDns;
|
|
# point nilstrieb.dev to vps1 (retired)
|
|
vps1 // {
|
|
SOA = {
|
|
nameServer = "ns1.nilstrieb.dev.";
|
|
adminEmail = "void@nilstrieb.dev";
|
|
serial = 2024072601;
|
|
};
|
|
|
|
TXT = [
|
|
"protonmail-verification=86964dcc4994261eab23dbc53dad613b10bab6de"
|
|
"v=spf1 include:_spf.protonmail.ch ~all"
|
|
];
|
|
|
|
NS = [
|
|
"ns1.nilstrieb.dev."
|
|
"ns2.nilstrieb.dev."
|
|
];
|
|
|
|
MX = with mx; [
|
|
(mx 10 "mail.protonmail.ch.")
|
|
(mx 20 "mailsec.protonmail.ch.")
|
|
];
|
|
|
|
subdomains = {
|
|
ns1 = dns1;
|
|
ns2 = dns2;
|
|
|
|
# apps
|
|
bisect-rustc = vps2;
|
|
cors-school = vps2 // {
|
|
subdomains.api = vps2;
|
|
};
|
|
docker = vps2;
|
|
olat = vps2;
|
|
|
|
localhost.A = [ (a "127.0.0.1") ];
|
|
|
|
# --- retired:
|
|
blog = vps1;
|
|
www = vps1;
|
|
uptime = vps1;
|
|
hugo-chat = vps1 // {
|
|
subdomains.api = vps1;
|
|
};
|
|
# ---
|
|
|
|
# infra (legacy)
|
|
inherit vps1;
|
|
inherit vps2;
|
|
|
|
pronouns.TXT = [
|
|
"TODO"
|
|
];
|
|
|
|
bsky.subdomains.atproto.TXT = [ "did=did:plc:pqyzoyxk7gfcbxk65mjyncyl" ];
|
|
};
|
|
};
|
|
in
|
|
pkgs.writeTextFile {
|
|
name = "nilstrieb.dev.zone";
|
|
text = pkgs.nix-dns.lib.toString "nilstrieb.dev" data;
|
|
}
|