angepasster Mailserver für Migration

This commit is contained in:
mrwacka 2026-09-10 01:26:24 +02:00
parent 56addbe241
commit 759ae71005
10 changed files with 288 additions and 363 deletions

645
README.md
View file

@ -1,242 +1,61 @@
Perfekt. Dann bekommst du jetzt das komplette Zielbild fuer den Mailserver auf `10.100.20.16` mit:
Ja, das ist hier der sauberste Weg.
- Zielstruktur auf der VM
- Repo-Struktur analog zu deinen Infra-Repos
- Compose-Dateien
- Config-Grundstruktur
- Scripts fuer Verzeichnisse und Deployment
- Certbot-Pfade passend zu
- `/srv/mail-fetch01/data/mailserver/certs/fullchain.pem`
- `/srv/mail-fetch01/data/mailserver/certs/privkey.pem`
Wenn auf dem neuen Server noch keine produktiven Mails gesammelt wurden, dann ist es sinnvoller:
Ich halte es bewusst so, dass du es sauber ins Repo legen, pushen und auf der Mail-VM deployen kannst.
- Container stoppen
- alte unklare Struktur entfernen
- Verzeichnislayout sauber neu aufbauen
- Compose korrigieren
- dann gezielt
- `postfix-accounts.cf`
- `fetchmailrc`
- Maildaten
- Zertifikate
einzuspielen
So hast du danach ein klares, wartbares Setup.
---
# 1. Zielbild
# Zielstruktur
## Dienste
- `mailserver` mit docker-mailserver
- `db-mail` fuer Roundcube
- `roundcube`
## Domains
- Mailserver: `mail.theboxhub.ch`
- Webmail: `webmail.theboxhub.ch`
- Maildomain: `theboxhub.ch`
## DNS
- `mail.theboxhub.ch` -> `10.100.20.16`
- `webmail.theboxhub.ch` -> `10.100.20.10`
- `MX theboxhub.ch` -> `mail.theboxhub.ch`
## Zertifikate lokal auf der Mail-VM
- `/srv/mail-fetch01/data/mailserver/certs/fullchain.pem`
- `/srv/mail-fetch01/data/mailserver/certs/privkey.pem`
---
# 2. Repo-Struktur
Ich schlage fuer dein Repo vor:
```text
/srv/workspace/infra/mail-fetch01/
├── backup
│ ├── compose
│ ├── databases
│ ├── mailserver
│ └── roundcube
├── compose
│ ├── mailserver
│ │ └── compose.yaml
│ ├── mariadb
│ │ └── compose.yaml
│ └── roundcube
│ └── compose.yaml
├── config
│ ├── mailserver
│ │ ├── postfix-main.cf
│ │ ├── postfix-master.cf
│ │ ├── dovecot.cf
│ │ ├── fetchmailrc
│ │ └── .gitkeep
│ ├── mariadb
│ │ └── .gitkeep
│ └── roundcube
│ └── .gitkeep
├── data
│ ├── mailserver
│ │ ├── certs
│ │ ├── config
│ │ ├── dkim
│ │ ├── logs
│ │ ├── maildata
│ │ └── state
│ ├── mariadb
│ │ └── .gitkeep
│ └── roundcube
│ └── .gitkeep
├── README.md
└── scripts
├── deploy.sh
└── init-dirs.sh
```
Wichtig:
- im Repo sind `data/...` und `backup/...` nur Strukturplatzhalter
- echte produktive Daten liegen spaeter auf der VM unter `/srv/mail-fetch01/...`
---
# 3. Repo-Struktur in code-server anlegen
Wenn du das Repo unter `/srv/workspace/infra/mail-fetch01` vorbereitest:
```bash
cd /srv/workspace/infra
mkdir -p mail-fetch01
cd /srv/workspace/infra/mail-fetch01
mkdir -p backup/{compose,databases,mailserver,roundcube}
mkdir -p compose/{mailserver,mariadb,roundcube}
mkdir -p config/mailserver
mkdir -p config/{mariadb,roundcube}
mkdir -p data/mailserver/{certs,config,dkim,logs,maildata,state}
mkdir -p data/mariadb
mkdir -p data/roundcube
mkdir -p scripts
touch compose/mailserver/compose.yaml
touch compose/mariadb/compose.yaml
touch compose/roundcube/compose.yaml
touch config/mailserver/postfix-main.cf
touch config/mailserver/postfix-master.cf
touch config/mailserver/dovecot.cf
touch config/mailserver/fetchmailrc
touch config/mariadb/.gitkeep
touch config/roundcube/.gitkeep
touch data/mailserver/certs/.gitkeep
touch data/mailserver/config/.gitkeep
touch data/mailserver/dkim/.gitkeep
touch data/mailserver/logs/.gitkeep
touch data/mailserver/maildata/.gitkeep
touch data/mailserver/state/.gitkeep
touch data/mariadb/.gitkeep
touch data/roundcube/.gitkeep
touch scripts/init-dirs.sh
touch scripts/deploy.sh
touch README.md
```
---
# 4. Zielstruktur auf der Mail-VM
Das wird spaeter durch `init-dirs.sh` erzeugt:
Ich wuerde fuer dich diese Struktur verwenden:
```text
/srv/mail-fetch01/
├── backup
│ ├── compose
│ ├── databases
│ ├── mailserver
│ └── roundcube
├── compose
│ ├── mailserver
│ ├── mariadb
│ └── roundcube
├── config
│ ├── mailserver
│ ├── mariadb
│ └── roundcube
└── data
├── mailserver
│ ├── certs
│ ├── config
│ ├── dkim
│ ├── logs
│ ├── maildata
│ └── state
├── mariadb
└── roundcube
├── backup/
├── compose/
│ └── mail/
│ └── compose.yaml
├── config/
│ └── mailserver/
│ ├── fetchmailrc
│ ├── postfix-accounts.cf
│ ├── dovecot.cf
│ ├── postfix-main.cf
│ └── postfix-master.cf
├── data/
│ ├── mailserver/
│ │ ├── certs/
│ │ ├── dkim/
│ │ ├── logs/
│ │ ├── maildata/
│ │ └── state/
│ ├── mariadb/
│ └── roundcube/
├── README.md
└── scripts/
```
Hinweis:
- `dovecot.cf`, `postfix-main.cf`, `postfix-master.cf` nur wenn du sie wirklich brauchst
- sonst koennen sie auch wegbleiben
---
# 5. scripts/init-dirs.sh
# Neue saubere Compose
Datei:
`/srv/workspace/infra/mail-fetch01/scripts/init-dirs.sh`
```bash
#!/usr/bin/env bash
set -euo pipefail
echo "Erstelle Verzeichnisstruktur unter /srv/mail-fetch01 ..."
sudo mkdir -p /srv/mail-fetch01/backup/{compose,databases,mailserver,roundcube}
sudo mkdir -p /srv/mail-fetch01/compose/{mailserver,mariadb,roundcube}
sudo mkdir -p /srv/mail-fetch01/config/{mailserver,mariadb,roundcube}
sudo mkdir -p /srv/mail-fetch01/data/mailserver/{certs,config,dkim,logs,maildata,state}
sudo mkdir -p /srv/mail-fetch01/data/mariadb
sudo mkdir -p /srv/mail-fetch01/data/roundcube
echo "Setze Besitz auf aktuellen Benutzer: $USER"
sudo chown -R "$USER:$USER" /srv/mail-fetch01
echo "Fertig."
tree /srv/mail-fetch01 || true
```
Ausfuehrbar machen:
```bash
chmod +x /srv/workspace/infra/mail-fetch01/scripts/init-dirs.sh
```
---
# 6. scripts/deploy.sh
Datei:
`/srv/workspace/infra/mail-fetch01/scripts/deploy.sh`
```bash
#!/usr/bin/env bash
set -euo pipefail
REPO_ROOT="/srv/workspace/infra/mail-fetch01"
TARGET_ROOT="/srv/mail-fetch01"
echo "Deploye Compose-Dateien ..."
sudo mkdir -p "$TARGET_ROOT/compose"
sudo cp -r "$REPO_ROOT/compose/." "$TARGET_ROOT/compose/"
echo "Deploye Konfigurationen ..."
sudo mkdir -p "$TARGET_ROOT/config"
sudo cp -r "$REPO_ROOT/config/." "$TARGET_ROOT/config/"
echo "Setze Besitz auf aktuellen Benutzer: $USER"
sudo chown -R "$USER:$USER" "$TARGET_ROOT"
echo "Fertig."
```
Ausfuehrbar machen:
```bash
chmod +x /srv/workspace/infra/mail-fetch01/scripts/deploy.sh
```
---
# 7. Compose mailserver
Datei:
`/srv/workspace/infra/mail-fetch01/compose/mailserver/compose.yaml`
Ich wuerde diese Version nehmen:
```yaml
x-logging: &default-logging
@ -266,7 +85,7 @@ services:
SSL_TYPE: manual
SSL_CERT_PATH: /etc/letsencrypt/live/mailserver/fullchain.pem
SSL_KEY_PATH: /etc/letsencrypt/live/mailserver/privkey.pem
PERMIT_DOCKER: connected-networks
PERMIT_DOCKER: none
ONE_DIR: 1
DMS_DEBUG: 0
ports:
@ -277,12 +96,13 @@ services:
- "993:993"
volumes:
- /srv/mail-fetch01/data/mailserver/maildata:/var/mail
- /srv/mail-fetch01/data/mailserver/config:/tmp/docker-mailserver
- /srv/mail-fetch01/config/mailserver:/tmp/docker-mailserver
- /srv/mail-fetch01/data/mailserver/state:/var/mail-state
- /srv/mail-fetch01/data/mailserver/logs:/var/log/mail
- /srv/mail-fetch01/data/mailserver/dkim:/etc/opendkim/keys
- /srv/mail-fetch01/data/mailserver/certs/fullchain.pem:/etc/letsencrypt/live/mailserver/fullchain.pem:ro
- /srv/mail-fetch01/data/mailserver/certs/privkey.pem:/etc/letsencrypt/live/mailserver/privkey.pem:ro
- /srv/mail-fetch01/config/mailserver/fetchmailrc:/etc/fetchmailrc:ro
cap_add:
- NET_ADMIN
- SYS_PTRACE
@ -293,32 +113,17 @@ services:
retries: 5
start_period: 30s
logging: *default-logging
```
---
# 8. Compose MariaDB fuer Roundcube
Datei:
`/srv/workspace/infra/mail-fetch01/compose/mariadb/compose.yaml`
```yaml
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
db-mail:
image: mariadb:10.11
container_name: db-mail
restart: unless-stopped
environment:
TZ: Europe/Zurich
MYSQL_ROOT_PASSWORD: "MAILROOT_4mK9pL2xT7vQ1cD8"
MYSQL_ROOT_PASSWORD: "MAILROOT_9kL4mQ2xT7vP1cD8"
MYSQL_DATABASE: "roundcube"
MYSQL_USER: "roundcube"
MYSQL_PASSWORD: "RCPASS_7xL2mQ9tK4pD1cV8"
MYSQL_PASSWORD: "RCPASS_8xT2mQ7vL4pD1cK9"
volumes:
- /srv/mail-fetch01/data/mariadb:/var/lib/mysql
healthcheck:
@ -328,40 +133,28 @@ services:
retries: 5
start_period: 15s
logging: *default-logging
```
---
# 9. Compose Roundcube
Datei:
`/srv/workspace/infra/mail-fetch01/compose/roundcube/compose.yaml`
```yaml
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
roundcube:
image: roundcube/roundcubemail:latest
container_name: roundcube
restart: unless-stopped
depends_on:
db-mail:
condition: service_healthy
environment:
TZ: Europe/Zurich
ROUNDCUBEMAIL_DB_TYPE: mysql
ROUNDCUBEMAIL_DB_HOST: db-mail
ROUNDCUBEMAIL_DB_NAME: roundcube
ROUNDCUBEMAIL_DB_USER: roundcube
ROUNDCUBEMAIL_DB_PASSWORD: "RCPASS_7xL2mQ9tK4pD1cV8"
ROUNDCUBEMAIL_DB_PASSWORD: "RCPASS_8xT2mQ7vL4pD1cK9"
ROUNDCUBEMAIL_SKIN: elastic
ROUNDCUBEMAIL_DEFAULT_HOST: "tls://mail.theboxhub.ch"
ROUNDCUBEMAIL_DEFAULT_PORT: 143
ROUNDCUBEMAIL_SMTP_SERVER: "tls://mail.theboxhub.ch"
ROUNDCUBEMAIL_SMTP_PORT: 587
ROUNDCUBEMAIL_IMAP_CONN_OPTIONS: '{"ssl":{"verify_peer":false,"verify_peer_name":false,"allow_self_signed":true}}'
ROUNDCUBEMAIL_SMTP_CONN_OPTIONS: '{"ssl":{"verify_peer":false,"verify_peer_name":false,"allow_self_signed":true}}'
ROUNDCUBEMAIL_IMAP_CONN_OPTIONS: '{"ssl":{"verify_peer":true,"verify_peer_name":true,"allow_self_signed":false}}'
ROUNDCUBEMAIL_SMTP_CONN_OPTIONS: '{"ssl":{"verify_peer":true,"verify_peer_name":true,"allow_self_signed":false}}'
ports:
- "8080:80"
healthcheck:
@ -373,158 +166,290 @@ services:
logging: *default-logging
```
Wichtig:
- NPM soll spaeter `webmail.theboxhub.ch` auf `10.100.20.16:8080` weiterleiten.
---
# 10. Wichtiger Hinweis zu den getrennten Compose-Dateien
Da du drei getrennte Compose-Dateien willst, brauchen die Dienste fuer `roundcube` und `db-mail` einen gemeinsamen Compose-Kontext oder ein gemeinsames Netz.
# Vorgehen Schritt fuer Schritt
Am saubersten gibt es dafuer zwei Wege:
## 1. Bestehende Container stoppen und entfernen
## Variante A - alles in eine gemeinsame Mail-Compose
Einfacher im Betrieb.
Im Compose-Ordner:
## Variante B - externes Docker-Netz
Sauber getrennt, aber etwas mehr Aufwand.
Da du explizit nach Compose, Struktur und Config fragst, empfehle ich fuer Mail hier klar:
## Empfehlung
**Mailserver, Roundcube und DB in eine gemeinsame Compose-Datei packen.**
Das ist fuer dieses Stack viel robuster.
Wenn du willst, kannst du die Repo-Struktur trotzdem getrennt behalten, aber technisch ist **eine einzige `compose/mail/compose.yaml`** besser.
---
# 11. Deshalb meine echte Empfehlung: eine gemeinsame Mail-Compose
Wenn du es operativ sauber willst, nimm statt 3 Dateien besser diese Struktur:
```text
compose/
└── mail
└── compose.yaml
```bash
cd /srv/mail-fetch01/compose/mail
docker compose down
```
Mit allen 3 Services zusammen.
Zur Kontrolle:
Wenn du willst, schreibe ich dir diese Gesamtdatei sofort.
Das ist fuer dein Setup deutlich praktischer als drei isolierte Stacks.
```bash
docker ps -a
```
Wenn da noch `mailserver`, `db-mail`, `roundcube` stehen und du sie wirklich wegraeumen willst:
```bash
docker rm -f mailserver db-mail roundcube 2>/dev/null
```
---
# 12. Mailserver-Configstruktur
Fuer docker-mailserver liegen die aktiven Dateien unter:
## 2. Vorhandene Daten auf dem neuen Server loeschen
```text
/srv/mail-fetch01/data/mailserver/config/
Da du bewusst neu aufsetzen willst:
```bash
sudo rm -rf /srv/mail-fetch01/data/mailserver
sudo rm -rf /srv/mail-fetch01/data/mariadb
sudo rm -rf /srv/mail-fetch01/data/roundcube
sudo rm -rf /srv/mail-fetch01/config/mailserver
```
Im Repo koennen wir Vorlagen unter:
```text
/srv/workspace/infra/mail-fetch01/config/mailserver/
```
ablegen.
## Minimal noetig
- `postfix-main.cf`
- `postfix-master.cf`
- `dovecot.cf`
- `fetchmailrc`
Hinweis:
docker-mailserver braucht nicht zwingend alle davon. Vieles kann ueber `setup` und Standardconfig laufen.
Optional auch leere Altlasten spaeter pruefen.
---
# 13. fetchmailrc Vorlage
## 3. Ordner sauber neu anlegen
```bash
sudo mkdir -p /srv/mail-fetch01/config/mailserver
sudo mkdir -p /srv/mail-fetch01/data/mailserver/{certs,dkim,logs,maildata,state}
sudo mkdir -p /srv/mail-fetch01/data/mariadb
sudo mkdir -p /srv/mail-fetch01/data/roundcube
```
---
## 4. Compose-Datei neu schreiben
Datei:
`/srv/workspace/infra/mail-fetch01/config/mailserver/fetchmailrc`
```conf
set daemon 60
set syslog
poll imap.example.com with proto IMAP
user "dein.externes.postfach@example.com" there with password "DEIN_EXTERNES_PASSWORT" is "jonas@theboxhub.ch" here
ssl
fetchall
```bash
/srv/mail-fetch01/compose/mail/compose.yaml
```
Wichtig:
- das ist nur eine Vorlage
- Rechte spaeter auf der Ziel-VM unbedingt restriktiv setzen:
mit der bereinigten Version ersetzen.
Am besten vorher Backup:
```bash
chmod 600 /srv/mail-fetch01/config/mailserver/fetchmailrc
cp /srv/mail-fetch01/compose/mail/compose.yaml /srv/mail-fetch01/backup/compose/compose.yaml.bak
```
Dann editieren:
```bash
nano /srv/mail-fetch01/compose/mail/compose.yaml
```
---
# 14. Zertifikate
Du hast bestaetigt:
## 5. Alte Mailserver-Konfig exportieren
```text
/srv/mail-fetch01/data/mailserver/certs/fullchain.pem
/srv/mail-fetch01/data/mailserver/certs/privkey.pem
Auf dem alten Server:
```bash
sudo mkdir -p /xwackaBack/mail-export/config
sudo mkdir -p /xwackaBack/mail-export/maildata/theboxhub.ch
```
Das passt genau zu obiger Compose.
Dann:
```bash
sudo rsync -avh /xToolbox/mail/config/postfix-accounts.cf /xwackaBack/mail-export/config/
sudo rsync -avh /xVault/mail/maildata/theboxhub.ch/jonas /xwackaBack/mail-export/maildata/theboxhub.ch/
```
Wenn du die alte Fetchmail-Datei sichern willst:
```bash
sudo rsync -avh /xToolbox/mail/config/fetchmail.cf /xwackaBack/mail-export/config/
```
Dann Rechte fuer Kopie:
```bash
sudo chown -R mrwacka:mrwacka /xwackaBack/mail-export
```
---
# 15. Setup nach Clone auf Ziel-VM
## 6. Daten auf neuen Server holen
## Repo klonen
### Account-Datei:
```bash
cd /srv/workspace/infra
git clone <dein-repo> mail-fetch01
cd mail-fetch01
sudo rsync -avh --progress mrwacka@10.100.20.20:/xwackaBack/mail-export/config/postfix-accounts.cf /srv/mail-fetch01/config/mailserver/
```
## Zielstruktur erzeugen
### Mailbox:
```bash
./scripts/init-dirs.sh
sudo mkdir -p /srv/mail-fetch01/data/mailserver/maildata/theboxhub.ch
sudo rsync -avh --progress mrwacka@10.100.20.20:/xwackaBack/mail-export/maildata/theboxhub.ch/jonas /srv/mail-fetch01/data/mailserver/maildata/theboxhub.ch/
```
## Compose und Config deployen
### Fetchmail-Konfig:
Wenn du die bereits vorhandene `fetchmailrc` behalten willst, musst du nichts tun.
Wenn du die alte Datei uebernehmen willst:
```bash
./scripts/deploy.sh
rsync -avh --progress mrwacka@10.100.20.20:/xwackaBack/mail-export/config/fetchmail.cf /tmp/fetchmail.cf
sudo mv /tmp/fetchmail.cf /srv/mail-fetch01/config/mailserver/fetchmailrc
sudo chown root:root /srv/mail-fetch01/config/mailserver/fetchmailrc
sudo chmod 600 /srv/mail-fetch01/config/mailserver/fetchmailrc
```
## Zertifikate ablegen
Wenn deine aktuelle `fetchmailrc` schon korrekt ist, dann einfach so lassen.
---
## 7. Zertifikate bereitstellen
Pruefen:
```bash
sudo cp /etc/letsencrypt/live/mail.theboxhub.ch/fullchain.pem /srv/mail-infetch01t01/data/mailserver/certs/fullchain.pem
sudo cp /etc/letsencrypt/live/mail.theboxhub.ch/privkey.pem /srv/mail-fetch01/data/mailserver/certs/privkey.pem
ls -l /srv/mail-fetch01/data/mailserver/certs
```
Es muessen vorhanden sein:
- `fullchain.pem`
- `privkey.pem`
Falls noch nicht da, musst du sie zuerst dorthin kopieren.
Dann Rechte sinnvoll setzen:
```bash
sudo chown root:root /srv/mail-fetch01/data/mailserver/certs/fullchain.pem
sudo chown root:root /srv/mail-fetch01/data/mailserver/certs/privkey.pem
sudo chmod 644 /srv/mail-fetch01/data/mailserver/certs/fullchain.pem
sudo chmod 600 /srv/mail-fetch01/data/mailserver/certs/privkey.pem
```
---
# 16. Erster Start
Wenn du bei den 3 Compose-Dateien bleibst:
## 8. Rechte fuer Konfig setzen
```bash
cd /srv/mail-fetch01/compose/mariadb && docker compose up -d
cd /srv/mail-fetch01/compose/mailserver && docker compose up -d
cd /srv/mail-fetch01/compose/roundcube && docker compose up -d
sudo chown root:root /srv/mail-fetch01/config/mailserver/postfix-accounts.cf
sudo chmod 644 /srv/mail-fetch01/config/mailserver/postfix-accounts.cf
sudo chown root:root /srv/mail-fetch01/config/mailserver/fetchmailrc
sudo chmod 600 /srv/mail-fetch01/config/mailserver/fetchmailrc
```
---
# 17. Aber nochmals: meine klare Empfehlung
Fuer diesen Mail-Stack solltest du wirklich lieber **eine gemeinsame Compose-Datei** verwenden.
Sonst bekommst du unnoetig Aufwand mit Netzwerken, DNS innerhalb von Docker und Service-Namen.
## 9. Kurz pruefen
## Wenn du magst
schreibe ich dir jetzt direkt als naechsten Schritt:
```bash
tree /srv/mail-fetch01 -L 4
```
1. **die finale empfohlene Gesamtstruktur**
2. **eine einzige saubere `compose/mail/compose.yaml`**
3. **die finalen Repo-Befehle zum Anlegen**
Besonders wichtig:
Das waere fuer deinen Mailserver die bessere produktive Variante.
- `/srv/mail-fetch01/config/mailserver/postfix-accounts.cf`
- `/srv/mail-fetch01/config/mailserver/fetchmailrc`
- `/srv/mail-fetch01/data/mailserver/maildata/theboxhub.ch/jonas`
- `/srv/mail-fetch01/data/mailserver/certs/fullchain.pem`
- `/srv/mail-fetch01/data/mailserver/certs/privkey.pem`
---
## 10. Container starten
```bash
cd /srv/mail-fetch01/compose/mail
docker compose up -d
```
Dann:
```bash
docker compose ps
docker logs -f mailserver
```
---
# Danach testen
## IMAP-Port offen?
```bash
ss -ltnp | egrep '143|993|25|465|587|8080'
```
## Mailkonto sichtbar?
Die Datei ist da:
```bash
cat /srv/mail-fetch01/config/mailserver/postfix-accounts.cf
```
## Maildaten da?
```bash
du -sh /srv/mail-fetch01/data/mailserver/maildata/theboxhub.ch/jonas
```
## Fetchmail-Konfig da?
```bash
sudo cat /srv/mail-fetch01/config/mailserver/fetchmailrc
```
## Logs beobachten:
```bash
docker logs -f mailserver
```
Achte auf:
- Fehler bei Zertifikaten
- Fehler bei Fetchmail
- Fehler bei Dovecot/Postfix
- Permission-Probleme
---
# Wichtiger Hinweis zu Roundcube
Roundcube selbst braucht keine alten Maildaten. Es ist nur Webmail.
Die alten Mails liegen im Maildir, nicht in MariaDB.
Die MariaDB fuer Roundcube kannst du also ruhig frisch leer starten.
Das ist sogar sauberer.
---
# Mein Rat zu den optionalen Config-Dateien
Diese Dateien:
- `dovecot.cf`
- `postfix-main.cf`
- `postfix-master.cf`
wuerde ich **vorerst nicht** uebernehmen, ausser du weisst genau, warum du sie brauchst.
Starte zuerst mit:
- `postfix-accounts.cf`
- `fetchmailrc`
und den Maildaten.
Wenn alles laeuft, kannst du spaeter immer noch Erweiterungen machen.
---
# Kurzfassung
Ja, das ist ein guter Plan:
1. neue Container stoppen
2. unklare Struktur loeschen
3. sauber neu anlegen
4. Compose korrigieren
5. `postfix-accounts.cf` nach `config/mailserver`
6. Maildaten nach `data/mailserver/maildata`
7. `fetchmailrc` sauber hinterlegen
8. Zertifikate bereitstellen
9. frisch starten
10. testen
Wenn du willst, kann ich dir im naechsten Schritt noch eine ganz konkrete "copy paste"-Befehlsliste fuer den neuen Server und eine fuer den alten Server machen, ohne Erklaertext, nur als saubere Ausfuehrungsreihenfolge.

View file

@ -36,7 +36,7 @@ services:
- "993:993"
volumes:
- /srv/mail-fetch01/data/mailserver/maildata:/var/mail
- /srv/mail-fetch01/data/mailserver/config:/tmp/docker-mailserver
- /srv/mail-fetch01/config/mailserver:/tmp/docker-mailserver
- /srv/mail-fetch01/data/mailserver/state:/var/mail-state
- /srv/mail-fetch01/data/mailserver/logs:/var/log/mail
- /srv/mail-fetch01/data/mailserver/dkim:/etc/opendkim/keys

View file