it-themen:allgemein:mailserver
**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
Projekt: Mailserver fĂĽr nctl.de (Docker + Traefik + Mailu)
Verzeichnisstruktur (empfohlen unter /opt/stacks/mailu)
mailu/
├── .env
├── docker-compose.yml
├── mailu.env
└── data/
├── mail/ # Mailspeicher
├── certs/ # Zertifikate
└── db/ # MariaDB
Datei: `.env`
- snippet.env
DOMAIN=nctl.de HOSTNAME=mail TZ=Europe/Berlin POSTMASTER=admin@nctl.de SECRET=5e8572e2e08a4dd5a44b20d1e4d8cfa6 # Beispiel, mit `openssl rand -hex 16` erzeugen
Datei: `mailu.env`
- snippet.env
# Mailu core config ROOT=/ ADMIN=enabled WEBMAIL=snappymail TLS_FLAVOR=mail HOSTNAMES=imap.nctl.de,smtp.nctl.de,webmail.nctl.de # Mail settings POSTMASTER=admin@nctl.de DOMAIN=nctl.de # Authentication AUTH_RATELIMIT=10/minute;1000/day PASSWORD_SCHEME=SHA512-CRYPT # Database DB_FLAVOR=mysql DB_HOST=db DB_USER=mailu DB_PASSWORD=secretpassword DB_NAME=mailu # Proxies TRUSTED_PROXIES=172.0.0.0/8
Datei: `docker-compose.yml`
- snippet.yaml
version: '3.7' services: redis: image: redis:alpine restart: always db: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: secretpassword MYSQL_DATABASE: mailu MYSQL_USER: mailu MYSQL_PASSWORD: secretpassword volumes: - ./data/db:/var/lib/mysql front: image: mailu/nginx:1.9 restart: always env_file: - .env - mailu.env depends_on: - redis - db volumes: - ./data/certs:/certs labels: - "traefik.enable=true" - "traefik.http.routers.webmail.rule=Host(`webmail.nctl.de`)" - "traefik.http.routers.webmail.entrypoints=websecure" - "traefik.http.routers.webmail.tls.certresolver=letsencrypt" - "traefik.http.routers.admin.rule=Host(`admin.nctl.de`)" - "traefik.http.routers.admin.entrypoints=websecure" - "traefik.http.routers.admin.tls.certresolver=letsencrypt" admin: image: mailu/admin:1.9 restart: always env_file: - .env - mailu.env depends_on: - db imap: image: mailu/dovecot:1.9 restart: always env_file: - .env - mailu.env smtp: image: mailu/postfix:1.9 restart: always env_file: - .env - mailu.env antivirus: image: mailu/clamav:1.9 restart: always env_file: - .env - mailu.env webmail: image: mailu/snappymail:1.9 restart: always env_file: - .env - mailu.env
Wichtige DNS-Einträge:
| Typ | Name | Ziel/IP |
| —– | ——————- | —————————– |
| A | smtp.nctl.de | <Server-IP> |
| A | imap.nctl.de | <Server-IP> |
| A | webmail.nctl.de | <Server-IP> |
| A | admin.nctl.de | <Server-IP> |
| MX | @ | smtp.nctl.de (Priorität 10) |
| TXT | @ (SPF) | v=spf1 mx ~all |
| TXT | _dmarc | v=DMARC1; p=none |
Optional: DKIM wird von Mailu automatisch erzeugt, ĂĽber WebGUI exportierbar.
Fertig! Du kannst den Stack nun mit folgendem Befehl starten:
- snippet.bash
cd /opt/stacks/mailu docker compose up -d
Die WebGUI ist danach erreichbar unter: - https://webmail.nctl.de (Webmail) - https://admin.nctl.de
(Benutzerverwaltung)
it-themen/allgemein/mailserver.1753201710.txt.gz · Zuletzt geändert: von lars