From 8432e7fbf9712dd08f809977221142f49481c650 Mon Sep 17 00:00:00 2001 From: burrson Date: Fri, 13 Mar 2026 21:17:54 +0000 Subject: [PATCH] initial mailu setup --- docker-compose.yml | 129 +++++++++++++++++++++++++++++++++++++++++++++ mailu.env | 19 +++++++ 2 files changed, 148 insertions(+) create mode 100644 docker-compose.yml create mode 100644 mailu.env diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bf69238 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,129 @@ +services: + + redis: + image: redis:alpine + restart: unless-stopped + volumes: + - redis_data:/data + networks: + - mail_internal + + resolver: + image: ghcr.io/mailu/unbound:2.0 + restart: unless-stopped + env_file: mailu.env + networks: + mail_internal: + ipv4_address: 192.168.203.254 + + front: + image: ghcr.io/mailu/nginx:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - /home/burrson/web/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.burrson.de/mail.burrson.de.crt:/certs/cert.pem:ro + - /home/burrson/web/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.burrson.de/mail.burrson.de.key:/certs/key.pem:ro + - ./overrides/nginx:/overrides:ro + ports: + - "25:25" + - "465:465" + - "587:587" + - "993:993" + - "995:995" + networks: + - caddy + - mail_internal + depends_on: + - resolver + dns: + - 192.168.203.254 + + admin: + image: ghcr.io/mailu/admin:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - mail_data:/data + - mail_dkim:/dkim + depends_on: + - redis + networks: + - mail_internal + + imap: + image: ghcr.io/mailu/dovecot:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - mail_data:/data + - mail_mail:/mail + depends_on: + - front + networks: + - mail_internal + + smtp: + image: ghcr.io/mailu/postfix:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - mail_data:/data + - mail_mailqueue:/queue + depends_on: + - front + - resolver + dns: + - 192.168.203.254 + networks: + - mail_internal + + antispam: + image: ghcr.io/mailu/rspamd:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - mail_data:/data + - mail_filter:/filter + - ./overrides/rspamd:/overrides:ro + depends_on: + - front + - redis + dns: + - 192.168.203.254 + networks: + - mail_internal + + oletools: + image: ghcr.io/mailu/oletools:2.0 + restart: unless-stopped + networks: + - mail_internal + + webmail: + image: ghcr.io/mailu/webmail:2.0 + restart: unless-stopped + env_file: mailu.env + volumes: + - mail_webmail:/data + depends_on: + - imap + networks: + - mail_internal + +volumes: + redis_data: + mail_data: + mail_mail: + mail_dkim: + mail_mailqueue: + mail_filter: + mail_webmail: + +networks: + caddy: + external: true + mail_internal: + driver: bridge + ipam: + config: + - subnet: 192.168.203.0/24 diff --git a/mailu.env b/mailu.env new file mode 100644 index 0000000..f268aaa --- /dev/null +++ b/mailu.env @@ -0,0 +1,19 @@ +SECRET_KEY=85b5b6ad63257ee25569eb4d2ecc143f +DOMAIN=burrson.de +HOSTNAMES=mail.burrson.de +POSTMASTER=admin +TLS_FLAVOR=cert +WEBMAIL=roundcube +ADMIN=true +ANTISPAM=rspamd +ANTIVIRUS=none +DB_FLAVOR=sqlite +SUBNET=192.168.203.0/24 +MESSAGE_SIZE_LIMIT=50000000 +AUTH_RATELIMIT_IP=60/hour +AUTH_RATELIMIT_USER=100/day +RECIPIENT_DELIMITER=+ +DEFAULT_SPAM_THRESHOLD=80 +REAL_IP_HEADER=X-Forwarded-For +REAL_IP_FROM=172.21.0.0/16 +LOG_LEVEL=WARNING