Files
PVV-DNS/pvv-domain.nix
Felix Albrigtsen f5a5e77791
All checks were successful
Build and test / build (push) Successful in 1m12s
Build and test / test (push) Successful in 20s
Build and test / deploy (push) Successful in 22s
minecraft: un-oops
2026-02-12 15:38:57 +01:00

100 lines
2.2 KiB
Nix

# Shared configuration for the main PVV domains; pvv.ntnu.no and pvv.org (defined in ./zones/), mainly
# - E-mail configuration (MX, SRV, mail aliases)
# - Forward records generated from the ./hosts.nix file
# - Various SRV records
{ dns, lib, ... }:
with dns.lib.combinators;
let
pvvHostRecords = import ./pvv-host-forwards.nix { inherit dns lib; };
in
{
useOrigin = true; # Don't output fully qualified names
TTL = 60 * 60;
SOA = {
nameServer = "dvask.pvv.ntnu.no.";
adminEmail = "drift@pvv.ntnu.no";
serial = 1970010101; # Placeholder, replaced in deploy step
};
NS = [
"dvask.pvv.ntnu.no."
"nn.unintett.no."
];
MX = [
{
preference = 10;
exchange = "microbel.pvv.ntnu.no.";
}
];
# TODO - Re-add priority/weight?
SRV =
let
tcp = "tcp";
udp = "udp";
mkSrv = service: proto: port: target: {
inherit
service
proto
port
target
;
};
in
[
(mkSrv "minecraft" tcp 25565 "innovation")
(mkSrv "kerberos" tcp 88 "balduzius")
(mkSrv "kerberos" udp 88 "balduzius")
(mkSrv "kpasswd" udp 464 "balduzius")
(mkSrv "kerberos-adm" tcp 749 "balduzius")
(mkSrv "kerberos-adm" udp 749 "balduzius")
(mkSrv "http" tcp 80 "bekkalokk")
(mkSrv "https" tcp 443 "bekkalokk")
];
A = pvvHostRecords.bekkalokk.A;
AAAA = pvvHostRecords.bekkalokk.AAAA;
TXT = [
(with spf; soft [ "mx" ])
];
subdomains = pvvHostRecords // {
# Special services:
_kerberos.TXT = [ "PVV.NTNU.NO" ];
minecraft = {
inherit (pvvHostRecords.bekkalokk) A AAAA;
SRV = [
{
service = "minecraft";
proto = "tcp";
port = 25565;
target = "innovation";
}
];
};
# E-mail:
_dmarc.TXT = [ "v=DMARC1; p=quarantine; fo=1;" ]; # TODO - Use dns.nix DMARC generator
drift.CNAME = [ "mail" ];
imap.CNAME = [ "mail" ];
mailhost.CNAME = [ "mail" ];
pop.CNAME = [ "mail" ];
smtp.CNAME = [ "mail" ];
list = {
A = pvvHostRecords.microbel.A;
MX = [
{
preference = 10;
exchange = "microbel.pvv.ntnu.no.";
}
];
};
};
}