simple nixos mail server

This commit is contained in:
Henri Dohmen 2026-01-29 23:40:11 +01:00
parent 6bee6cb48c
commit b4298d5f3e
Signed by: hd
GPG key ID: AB79213B044674AE
7 changed files with 169 additions and 10 deletions

118
flake.lock generated
View file

@ -23,6 +23,22 @@
"type": "github"
}
},
"blobs": {
"flake": false,
"locked": {
"lastModified": 1604995301,
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"type": "gitlab"
}
},
"colmena": {
"inputs": {
"flake-compat": "flake-compat",
@ -117,6 +133,22 @@
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -156,6 +188,32 @@
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"simple-nixos-mailserver",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"simple-nixos-mailserver",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763988335,
"narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -178,6 +236,28 @@
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"simple-nixos-mailserver",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -298,6 +378,22 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1764374374,
"narHash": "sha256-naS7hg/D1yLKSZoENx9gvsPLFiNEOTcqamJSu0OEvCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6a49303095abc094ee77dc243a9e351b642e8e75",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_25-05": {
"locked": {
"lastModified": 1767313136,
@ -351,6 +447,7 @@
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixpkgs_25-05": "nixpkgs_25-05",
"simple-nixos-mailserver": "simple-nixos-mailserver",
"vscode-extensions": "vscode-extensions"
}
},
@ -375,6 +472,27 @@
"type": "github"
}
},
"simple-nixos-mailserver": {
"inputs": {
"blobs": "blobs",
"flake-compat": "flake-compat_3",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1766321686,
"narHash": "sha256-icOWbnD977HXhveirqA10zoqvErczVs3NKx8Bj+ikHY=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "7d433bf89882f61621f95082e90a4ab91eb0bdd3",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"type": "gitlab"
}
},
"stable": {
"locked": {
"lastModified": 1750133334,

View file

@ -30,6 +30,7 @@
url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs";
};
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
};
outputs =
@ -44,6 +45,7 @@
nixos-hardware,
nixpkgs_25-05,
nixpkgs,
simple-nixos-mailserver,
vscode-extensions,
}@inputs:
let

View file

@ -11,6 +11,7 @@
./firefox-sync.nix
./git.nix
./hardware-configuration.nix
./mail.nix
./networking.nix
./nextcloud.nix
./services.nix

18
host/roam/mail.nix Normal file
View file

@ -0,0 +1,18 @@
{ inputs, config, ... }:
{
imports = [ inputs.simple-nixos-mailserver.nixosModule ];
mailserver = {
enable = true;
stateVersion = 3;
fqdn = "roam.hdohmen.de";
x509.useACMEHost = config.mailserver.fqdn;
domains = [ "hdohmen.de" ];
loginAccounts = {
"hd@hdohmen.de" = {
hashedPassword = "$y$j9T$ThusPQJOPsUxfJrO6T6kN/$4hoobYwjhxSLo.f8uWg7DZu7gHtRlUt.nfiDC5xN2w2";
aliases = [ "hd@hdohmen.de" ];
};
};
};
}

View file

@ -21,6 +21,17 @@ in
interface = "ens3";
};
firewall = {
enable = true;
interfaces."wg0" = {
allowedTCPPorts = [ 25565 ];
};
allowedTCPPorts = [
80
443
];
};
nat = {
enable = true;
externalInterface = "ens3";

View file

@ -47,14 +47,4 @@
};
};
networking.firewall = {
enable = true;
interfaces."wg0" = {
allowedTCPPorts = [ 25565 ];
};
allowedTCPPorts = [
80
443
];
};
}

View file

@ -63,6 +63,25 @@ in
thunderbird.enable = true;
gpg.key = "AB79213B044674AE";
};
"SimpleMailserver" = rec {
address = "hd@hdohmen.de";
realName = "Henri Dohmen";
smtp = {
tls.enable = true;
host = "roam.hdohmen.de";
port = 465;
};
imap = {
tls.enable = true;
host = "roam.hdohmen.de";
port = 993;
};
userName = address;
thunderbird.enable = true;
gpg.key = "AB79213B044674AE";
};
};
accounts.calendar.accounts = {
"Privat" = {