37 lines
929 B
Nix
37 lines
929 B
Nix
{ config, ... }:
|
|
let
|
|
inherit (import ../lib.nix config) blazestar;
|
|
in {
|
|
|
|
virtualisation.oci-containers.containers.docker-mailserver = {
|
|
image = "ghcr.io/docker-mailserver/docker-mailserver:latest";
|
|
hostname = "mail.${blazestar}";
|
|
autoStart = true;
|
|
ports = [
|
|
"465:465"
|
|
"587:587"
|
|
"993:993"
|
|
];
|
|
volumes = [
|
|
"/tank/mailserver/mail-data:/var/mail"
|
|
"/tank/mailserver/mail-state:/var/mail-state"
|
|
"/tank/mailserver/mail-logs:/var/log/mail"
|
|
"/tank/mailserver/config:/tmp/docker-mailserver"
|
|
"/etc/localtime:/etc/localtime:ro"
|
|
];
|
|
environment = {
|
|
ENABLE_RSPAMD="1";
|
|
ENABLE_CLAMAV="1";
|
|
ENABLE_FAIL2BAN="1";
|
|
};
|
|
extraOptions = [
|
|
# add network admin capability for Fail2Ban
|
|
"--cap-add=NET_ADMIN"
|
|
];
|
|
labels = {
|
|
"traefik.enable" = "true";
|
|
"traefik.tcp.routers.mail.service" = "mailserver";
|
|
};
|
|
};
|
|
}
|