summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sys/ns/default.nix1
-rw-r--r--sys/ns/dkim/README.md1
-rw-r--r--sys/ns/mx.nix31
3 files changed, 33 insertions, 0 deletions
diff --git a/sys/ns/default.nix b/sys/ns/default.nix
index 47d97d7..d9e0063 100644
--- a/sys/ns/default.nix
+++ b/sys/ns/default.nix
@@ -1,5 +1,6 @@
{
imports = [
+ ./mx.nix
./ns.nix
./nsd.nix
./rr.nix
diff --git a/sys/ns/dkim/README.md b/sys/ns/dkim/README.md
new file mode 100644
index 0000000..37073ba
--- /dev/null
+++ b/sys/ns/dkim/README.md
@@ -0,0 +1 @@
+# This directory has been lustrated.
diff --git a/sys/ns/mx.nix b/sys/ns/mx.nix
new file mode 100644
index 0000000..5c7d3d0
--- /dev/null
+++ b/sys/ns/mx.nix
@@ -0,0 +1,31 @@
+{ config, lib, ... }:
+with lib; let
+ inherit (config.local) domains;
+in
+{
+ options.local.ns.zones = mkOption {
+ type = with lib.types; attrsOf (submodule ({ config, name, ... }: {
+ options.localMX = {
+ enable = mkEnableOption "local MX settings";
+ };
+
+ config = mkIf config.localMX.enable {
+ mx = [
+ { name = "@"; priority = 10; host = "${domains.smtp.main}."; }
+ { name = "@"; priority = 20; host = "mxbackup1.junkemailfilter.com."; }
+ { name = "@"; priority = 30; host = "mxbackup2.junkemailfilter.com."; }
+ ];
+
+ txt = [
+ { name = "@"; text = "v=spf1 mx a -all"; }
+ { name = "_dmarc"; text = "v=DMARC1;p=reject;sp=reject;adkim=r;aspf=r;fo=1;rf=afrf;rua=mailto:postmaster@${name}"; }
+ { name = "_adsp._domainkey"; text = "dkim=all"; }
+ ] ++ map
+ (selector: {
+ name = "${toString selector}._domainkey";
+ text = readFile (./dkim + "/${toString selector}.txt");
+ }) [ 202001 202102 202402 202408 ];
+ };
+ }));
+ };
+}