5116faf0d3
- caddy: security headers (X-Content-Type-Options/X-XSS-Protection/ X-Frame-Options) on all vhosts + baseline CSP; strip SnappyMail upstream copies via header_down on mail.severijnse.eu - tlsa-updater: compute TLSA 3 1 1 from cert SPKI (SHA-256), sync _25/_465/_993, fail-safe placeholders; coredns zone updated - pre-commit: wire cachix/git-hooks.nix (alejandra, statix, actionlint, deadnix); CI pre-commit job over x86_64 + aarch64 matrix - gitea: enable Gitea Actions + self-hosted runner (native:host, aarch64 via binfmt); add .gitea/workflows/ci.yml and local hook - fix statix warnings (merge repeated systemd/database/configFile keys) + disable empty_pattern via statix.toml (nixpkgs standard) - Clean up unused lambda patterns across 38 .nix files via deadnix - Format whole repo with alejandra (27 files) - Remove .github/workflows/ci.yml (Gitea shadows .github; runner labels differ) - Fix CI nix-not-found: export /run/current-system/sw/bin in PATH - Trim aarch64 from pre-commit matrix (no QEMU binfmt deployed yet)
42 lines
1.3 KiB
Nix
42 lines
1.3 KiB
Nix
{...}: {
|
|
virtualisation.oci-containers.containers.mailserver = {
|
|
image = "ghcr.io/docker-mailserver/docker-mailserver:latest";
|
|
autoStart = true;
|
|
hostname = "mail.severijnse.eu";
|
|
ports = [
|
|
"25:25"
|
|
"[::]:25:25"
|
|
"143:143"
|
|
"[::]:143:143"
|
|
"465:465"
|
|
"[::]:465:465"
|
|
"587:587"
|
|
"[::]:587:587"
|
|
"993:993"
|
|
"[::]:993:993"
|
|
];
|
|
volumes = [
|
|
"/home/admin/dms/mail-data/:/var/mail/:Z"
|
|
"/home/admin/dms/mail-state/:/var/mail-state/:Z"
|
|
"/home/admin/dms/mail-logs/:/var/log/mail/:Z"
|
|
"/home/admin/dms/config/:/tmp/docker-mailserver/:Z"
|
|
"/etc/localtime:/etc/localtime:ro"
|
|
# On the running Debian, Caddy v2 stores certs at /home/admin/caddy/data/caddy/certificates/...
|
|
# On NixOS, Caddy stores certs at /var/lib/caddy/certificates/...
|
|
"/var/lib/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.severijnse.eu/:/etc/letsencrypt/live/mail.severijnse.eu/:ro"
|
|
];
|
|
environment = {
|
|
OVERRIDE_HOSTNAME = "";
|
|
LOG_LEVEL = "info";
|
|
SPOOF_PROTECTION = "1";
|
|
MOVE_SPAM_TO_JUNK = "1";
|
|
};
|
|
environmentFiles = ["/home/admin/mailserver.env"];
|
|
extraOptions = [
|
|
"--label=com.centurylinklabs.watchtower.enable=true"
|
|
"--dns=1.1.1.1"
|
|
"--dns=8.8.8.8"
|
|
];
|
|
};
|
|
}
|