aboutsummaryrefslogtreecommitdiffstats
path: root/tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-10-02 00:27:50 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-10-02 00:27:50 +0200
commit82d1dc4549f3ba079505b6ebaa266e6d04d1cce4 (patch)
tree2377a080b1946b921f85fbc42c2a9385446760d7 /tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix
parentpkgs/fetchmail-common-name: Update patch, so that it applies again (diff)
downloadnixos-server-82d1dc4549f3ba079505b6ebaa266e6d04d1cce4.zip
tests/email/*: Rename to stalwart email tests
These tests explicitly test our stalwart email module.
Diffstat (limited to 'tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix')
-rw-r--r--tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix b/tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix
new file mode 100644
index 0000000..279d289
--- /dev/null
+++ b/tests/by-name/st/stalwart-email-dns/nodes/mail_server.nix
@@ -0,0 +1,52 @@
+{
+ extraModules,
+ pkgs,
+ vhackPackages,
+}: {
+ mkMailServer = serverName: principal: {
+ config,
+ lib,
+ nodes,
+ ...
+ }: {
+ imports =
+ extraModules
+ ++ [
+ ../../../../../modules
+ ../../../../common/acme/client.nix
+ ../../../../common/dns/client.nix
+ ];
+
+ environment.systemPackages = [
+ pkgs.bind
+ pkgs.openssl
+ ];
+
+ age.identityPaths = ["${../../../../common/email/hostKey}"];
+
+ vhack = {
+ stalwart-mail = {
+ enable = true;
+ fqdn = "${serverName}.server.com";
+ admin = "admin@${serverName}.server.com";
+ security = {
+ dkimKeys = let
+ loadKey = name: {
+ dkimPublicKey = builtins.readFile (../../../../common/email/dkim + "/${name}/public");
+ dkimPrivateKeyPath = ../../../../common/email/dkim + "/${name}/private.age";
+ keyAlgorithm = "ed25519-sha256";
+ };
+ in {
+ "mail1.server.com" = loadKey "mail1.server.com";
+ "mail2.server.com" = loadKey "mail2.server.com";
+ "alice.com" = loadKey "alice.com";
+ "bob.com" = loadKey "bob.com";
+ };
+ verificationMode = "strict";
+ };
+ openFirewall = true;
+ principals = [principal];
+ };
+ };
+ };
+}