Files
dms-knusperkerne/README.md
2025-11-20 22:32:15 +01:00

109 lines
3.0 KiB
Markdown

# README.md — Docker Mailserver (DMS) Setup for knusperkerne.de
This document describes the stable, minimal configuration of your Docker Mailserver (DMS) installation and the daily operational commands required to manage domains and users.
## 1. Project Structure
The directory contains:
- compose.yml
- .env
- config/postfix-main.cf
- config/postfix-master.cf
- config/postfix-accounts.cf
- config/postfix-virtual.cf
- config/opendkim/*
- volumes: maildata, mailstate, maillogs
- snappymail/ (webmail)
## 2. Services
### mail (Docker Mailserver 12.x)
- Hostname: mailsystem.knusperkerne.de
- Ports: SMTP(25), SUBMISSION(587), IMAPS(993)
- Configuration directory mounted to `/tmp/docker-mailserver`
- SPF-Checks fully disabled via postfix-main.cf and postfix-master.cf overrides
- DKIM enabled via `/config/opendkim`
### snappymail (Webmail)
- Bound to 127.0.0.1:${SNAPPYMAIL_PORT}
- Stores data in ./snappymail
## 3. Essential Admin Commands
All commands are executed inside the mailserver container:
### Enter the container
docker exec -it mailserver bash
### 3.1 Add a domain
Domains do not require a separate explicit create-command.
To ensure DMS recognizes a domain, add a dummy account:
setup email add dms-domain-init@yourdomain.de somepassword
After DNS MX + A records propagate, the domain becomes active.
### 3.2 Add a real user
setup email add USER@DOMAIN.TLD PASSWORD
### 3.3 Change a user password
setup email update USER@DOMAIN.TLD PASSWORD
### 3.4 Delete a user
setup email del USER@DOMAIN.TLD
### 3.5 List all accounts
setup email list
### 3.6 Show mailbox sizes
du -sh /var/mail/vhosts/DOMAIN.TLD/USER/
### 3.7 Rebuild postfix/dovecot after config changes
Supervised automatically at startup; restart the container after modifying any file under config/:
docker compose restart mail
## 4. Config Overrides
### 4.1 postfix-main.cf
- Disables SPF policy checks completely
- Keeps only minimal safe recipient checks:
policyd-spf_time_limit = 0
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
### 4.2 postfix-master.cf
Overrides the policyd-spf service to discard:
policyd-spf unix - n n - 0 discard
### 4.3 postfix-accounts.cf
Auto-generated by DMS. Contains user → password-hash entries.
### 4.4 postfix-virtual.cf
Virtual alias configuration for mail routing.
## 5. DNS Requirements
For each domain:
MX 10 mailsystem.knusperkerne.de
A mailsystem.knusperkerne.de → YOUR.SERVER.IP
SPF TXT (liberal): "v=spf1 a mx ~all"
DKIM: Add the public key from config/opendkim/keys/DOMAIN/mail.txt
## 6. Backup
- Backup volumes: maildata, mailstate
- Backup config/: postfix configs and DKIM keys
- Logs are in maillogs/
## 7. Notes
- SPF checks are intentionally disabled (forwarding-friendly).
- DKIM signing remains active and reliable for reputation.
- DMS v12 receives security updates and remains stable.
- No additional MTA/MDA components are required; Postfix+Dovecot are fully integrated.