Renamed docker compose back to docker-compose
Dieser Commit ist enthalten in:
Ursprung
14698d640b
Commit
2e78ef16cc
120 geänderte Dateien mit 442 neuen und 531 gelöschten Zeilen
|
@ -12,13 +12,13 @@ Kopieren Sie die Datei mit dem Namen des Benutzers, den Sie wiederherstellen wol
|
||||||
|
|
||||||
1\. Kopieren Sie die Sicherung: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
|
1\. Kopieren Sie die Sicherung: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
|
||||||
|
|
||||||
2\. Starten Sie `docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org`.
|
2\. Starten Sie `docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org`.
|
||||||
|
|
||||||
Führen Sie `sogo-tool` ohne Parameter aus, um nach möglichen Wiederherstellungsoptionen zu suchen.
|
Führen Sie `sogo-tool` ohne Parameter aus, um nach möglichen Wiederherstellungsoptionen zu suchen.
|
||||||
|
|
||||||
3\. Löschen Sie die kopierte Sicherung, indem Sie `rm __MAILCOW_DIRECTORY__/data/conf/sogo` ausführen
|
3\. Löschen Sie die kopierte Sicherung, indem Sie `rm __MAILCOW_DIRECTORY__/data/conf/sogo` ausführen
|
||||||
|
|
||||||
4\. Starten Sie SOGo und Memcached neu: `docker compose restart sogo-mailcow memcached-mailcow`
|
4\. Starten Sie SOGo und Memcached neu: `docker-compose restart sogo-mailcow memcached-mailcow`
|
||||||
|
|
||||||
### Mail
|
### Mail
|
||||||
|
|
||||||
|
@ -35,6 +35,6 @@ Um die Mailbox wiederherzustellen, stellen Sie sicher, dass Sie tatsächlich auf
|
||||||
Kopieren Sie die Ordner von `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` zurĂĽck nach `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` und synchronisieren Sie die Ordner neu und berechnen Sie die Quota (Speicherplatz) neu:
|
Kopieren Sie die Ordner von `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` zurĂĽck nach `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` und synchronisieren Sie die Ordner neu und berechnen Sie die Quota (Speicherplatz) neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
||||||
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,13 +12,13 @@ Copy the file named after the user you want to restore to `__MAILCOW_DIRECTORY__
|
||||||
|
|
||||||
1\. Copy the backup: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
|
1\. Copy the backup: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
|
||||||
|
|
||||||
2\. Run `docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org`
|
2\. Run `docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org`
|
||||||
|
|
||||||
Run `sogo-tool` without parameters to check for possible restore options.
|
Run `sogo-tool` without parameters to check for possible restore options.
|
||||||
|
|
||||||
3\. Delete the copied backup by running `rm __MAILCOW_DIRECTORY__/data/conf/sogo`
|
3\. Delete the copied backup by running `rm __MAILCOW_DIRECTORY__/data/conf/sogo`
|
||||||
|
|
||||||
4\. Restart SOGo and Memcached: `docker compose restart sogo-mailcow memcached-mailcow`
|
4\. Restart SOGo and Memcached: `docker-compose restart sogo-mailcow memcached-mailcow`
|
||||||
|
|
||||||
### Mail
|
### Mail
|
||||||
|
|
||||||
|
@ -35,6 +35,6 @@ To restore make sure you are actually restoring to the same mailcow it was delet
|
||||||
Copy the folders from `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` back to `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` and resync the folder and recalc the quota:
|
Copy the folders from `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` back to `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` and resync the folder and recalc the quota:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
||||||
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
||||||
```
|
```
|
|
@ -110,7 +110,7 @@ Cronjobs erstellen:
|
||||||
Am Zielort (in diesem Fall `/external_share/backups`) möchten Sie vielleicht Snapshot-Fähigkeiten haben (ZFS, Btrfs usw.). Machen Sie täglich einen Snapshot und bewahren Sie ihn für n Tage auf, um ein konsistentes Backup zu erhalten.
|
Am Zielort (in diesem Fall `/external_share/backups`) möchten Sie vielleicht Snapshot-Fähigkeiten haben (ZFS, Btrfs usw.). Machen Sie täglich einen Snapshot und bewahren Sie ihn für n Tage auf, um ein konsistentes Backup zu erhalten.
|
||||||
FĂĽhren Sie **kein** rsync auf eine Samba-Freigabe durch, Sie mĂĽssen die richtigen Berechtigungen einhalten!
|
FĂĽhren Sie **kein** rsync auf eine Samba-Freigabe durch, Sie mĂĽssen die richtigen Berechtigungen einhalten!
|
||||||
|
|
||||||
Zum Wiederherstellen mĂĽssen Sie rsync einfach in umgekehrter Richtung ausfĂĽhren und Docker neu starten, um die Volumes erneut zu lesen. FĂĽhren Sie `docker compose pull` und `docker compose up -d` aus.
|
Zum Wiederherstellen mĂĽssen Sie rsync einfach in umgekehrter Richtung ausfĂĽhren und Docker neu starten, um die Volumes erneut zu lesen. FĂĽhren Sie `docker-compose pull` und `docker-compose up -d` aus.
|
||||||
|
|
||||||
Wenn Sie Glück haben, können Redis und MariaDB die inkonsistenten Datenbanken automatisch reparieren (wenn sie _inkonsistent_ sind).
|
Wenn Sie Glück haben, können Redis und MariaDB die inkonsistenten Datenbanken automatisch reparieren (wenn sie _inkonsistent_ sind).
|
||||||
Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um die inkonsistenten Elemente wiederherzustellen. Wenn die Wiederherstellung fehlschlägt, versuchen Sie, die Sicherungen zu extrahieren und die Dateien manuell zurück zu kopieren. Behalten Sie die Dateiberechtigungen bei!
|
Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um die inkonsistenten Elemente wiederherzustellen. Wenn die Wiederherstellung fehlschlägt, versuchen Sie, die Sicherungen zu extrahieren und die Dateien manuell zurück zu kopieren. Behalten Sie die Dateiberechtigungen bei!
|
|
@ -91,7 +91,7 @@ Create cronjobs:
|
||||||
On the destination (in this case `/external_share/backups`) you may want to have snapshot capabilities (ZFS, Btrfs etc.). Snapshot daily and keep for n days for a consistent backup.
|
On the destination (in this case `/external_share/backups`) you may want to have snapshot capabilities (ZFS, Btrfs etc.). Snapshot daily and keep for n days for a consistent backup.
|
||||||
Do **not** rsync to a Samba share, you need to keep the correct permissions!
|
Do **not** rsync to a Samba share, you need to keep the correct permissions!
|
||||||
|
|
||||||
To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run `docker compose pull` and `docker compose up -d`.
|
To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run `docker-compose pull` and `docker-compose up -d`.
|
||||||
|
|
||||||
If you are lucky Redis and MariaDB can automatically fix the inconsistent databases (if they _are_ inconsistent).
|
If you are lucky Redis and MariaDB can automatically fix the inconsistent databases (if they _are_ inconsistent).
|
||||||
In case of a corrupted database you'd need to use the helper script to restore the inconsistent elements. If a restore fails, try to extract the backups and copy the files back manually. Keep the file permissions!
|
In case of a corrupted database you'd need to use the helper script to restore the inconsistent elements. If a restore fails, try to extract the backups and copy the files back manually. Keep the file permissions!
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
Diese Zeile sichert das vmail-Verzeichnis in eine Datei backup_vmail.tar.gz im mailcow-Root-Verzeichnis:
|
Diese Zeile sichert das vmail-Verzeichnis in eine Datei backup_vmail.tar.gz im mailcow-Root-Verzeichnis:
|
||||||
```
|
```
|
||||||
cd /pfad/zu/mailcow-dockerized
|
cd /pfad/zu/mailcow-dockerized
|
||||||
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
||||||
```
|
```
|
||||||
|
|
||||||
Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) an einen beliebigen Pfad anpassen, auf den Sie Schreibzugriff haben.
|
Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) an einen beliebigen Pfad anpassen, auf den Sie Schreibzugriff haben.
|
||||||
|
@ -12,5 +12,5 @@ Setzen Sie den Dateinamen `backup_vmail.tar.gz` auf einen beliebigen Namen, aber
|
||||||
### Wiederherstellen
|
### Wiederherstellen
|
||||||
```
|
```
|
||||||
cd /pfad/zu/mailcow-dockerized
|
cd /pfad/zu/mailcow-dockerized
|
||||||
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
||||||
```
|
```
|
|
@ -3,7 +3,7 @@
|
||||||
This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
|
This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
|
||||||
```
|
```
|
||||||
cd /path/to/mailcow-dockerized
|
cd /path/to/mailcow-dockerized
|
||||||
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
||||||
```
|
```
|
||||||
|
|
||||||
You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
|
You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
|
||||||
|
@ -12,5 +12,5 @@ Set the filename `backup_vmail.tar.gz` to any custom name, but leave the path as
|
||||||
### Restore
|
### Restore
|
||||||
```
|
```
|
||||||
cd /path/to/mailcow-dockerized
|
cd /path/to/mailcow-dockerized
|
||||||
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
||||||
```
|
```
|
|
@ -4,16 +4,16 @@
|
||||||
cd /pfad/zu/mailcow-dockerized
|
cd /pfad/zu/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
DATE=$(Datum +"%Y%m%d_%H%M%S")
|
DATE=$(Datum +"%Y%m%d_%H%M%S")
|
||||||
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
## Wiederherstellen
|
## Wiederherstellen
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
Sie sollten den SQL-Dump ohne `docker compose` umleiten, um Parsing-Fehler zu vermeiden.
|
Sie sollten den SQL-Dump ohne `docker-compose` umleiten, um Parsing-Fehler zu vermeiden.
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /pfad/zu/mailcow-dockerized
|
cd /pfad/zu/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
||||||
```
|
```
|
||||||
|
|
|
@ -4,16 +4,16 @@
|
||||||
cd /path/to/mailcow-dockerized
|
cd /path/to/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
DATE=$(date +"%Y%m%d_%H%M%S")
|
DATE=$(date +"%Y%m%d_%H%M%S")
|
||||||
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
## Restore
|
## Restore
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
You should redirect the SQL dump without `docker compose` to prevent parsing errors.
|
You should redirect the SQL dump without `docker-compose` to prevent parsing errors.
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /path/to/mailcow-dockerized
|
cd /path/to/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
||||||
```
|
```
|
|
@ -18,7 +18,7 @@ Die Verwendung von rsync mit dem `--delete` Flag. Das Ziel wird eine exakte Kopi
|
||||||
|
|
||||||
`mariabackup` wird verwendet, um eine konsistente Kopie des SQL-Datenverzeichnisses zu erstellen.
|
`mariabackup` wird verwendet, um eine konsistente Kopie des SQL-Datenverzeichnisses zu erstellen.
|
||||||
|
|
||||||
Nach dem Rsync der Daten fĂĽhren wir `docker compose pull` aus und entfernen alte Image-Tags aus dem Ziel.
|
Nach dem Rsync der Daten fĂĽhren wir `docker-compose pull` aus und entfernen alte Image-Tags aus dem Ziel.
|
||||||
|
|
||||||
Ihre Quelle wird zu keinem Zeitpunkt verändert.
|
Ihre Quelle wird zu keinem Zeitpunkt verändert.
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
|
||||||
Der Schlüssel muss im Besitz von root sein und darf nur von diesem gelesen werden können.
|
Der Schlüssel muss im Besitz von root sein und darf nur von diesem gelesen werden können.
|
||||||
|
|
||||||
Sowohl die Quelle als auch das Ziel benötigen `rsync` >= v3.1.0.
|
Sowohl die Quelle als auch das Ziel benötigen `rsync` >= v3.1.0.
|
||||||
Das Ziel muss ĂĽber Docker und docker compose **v1** verfĂĽgen.
|
Das Ziel muss ĂĽber Docker und docker-compose **v1** verfĂĽgen.
|
||||||
|
|
||||||
Das Skript wird Fehler automatisch erkennen und sich beenden.
|
Das Skript wird Fehler automatisch erkennen und sich beenden.
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ The use rsync with the `--delete` flag. The destination will be an exact copy of
|
||||||
|
|
||||||
`mariabackup` is used to create a consistent copy of the SQL data directory.
|
`mariabackup` is used to create a consistent copy of the SQL data directory.
|
||||||
|
|
||||||
After rsync'ing the data we will run `docker compose pull` and remove old image tags from the destination.
|
After rsync'ing the data we will run `docker-compose pull` and remove old image tags from the destination.
|
||||||
|
|
||||||
Your source will not be changed at any time.
|
Your source will not be changed at any time.
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
|
||||||
The key must be owned and readable by root only.
|
The key must be owned and readable by root only.
|
||||||
|
|
||||||
Both the source and destination require `rsync` >= v3.1.0.
|
Both the source and destination require `rsync` >= v3.1.0.
|
||||||
The destination must have Docker and docker compose **v1** available.
|
The destination must have Docker and docker-compose **v1** available.
|
||||||
|
|
||||||
The script will detect errors automatically and exit.
|
The script will detect errors automatically and exit.
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:
|
Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down -v --rmi all --remove-orphans
|
docker-compose down -v --rmi all --remove-orphans
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
- **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind.
|
- **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind.
|
||||||
- **--rmi <Typ>** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde.
|
- **--rmi <Typ>** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde.
|
||||||
- **--remove-orphans** Entfernt Container fĂĽr Dienste, die nicht in der Compose-Datei definiert sind.
|
- **--remove-orphans** Entfernt Container fĂĽr Dienste, die nicht in der Compose-Datei definiert sind.
|
||||||
- Standardmäßig entfernt `docker compose down` nur derzeit aktive Container und Netzwerke, die in der Datei `docker-compose.yml` definiert sind.
|
- Standardmäßig entfernt `docker-compose down` nur derzeit aktive Container und Netzwerke, die in der Datei `docker-compose.yml` definiert sind.
|
|
@ -1,11 +1,11 @@
|
||||||
To remove mailcow: dockerized with all it's volumes, images and containers do:
|
To remove mailcow: dockerized with all it's volumes, images and containers do:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down -v --rmi all --remove-orphans
|
docker-compose down -v --rmi all --remove-orphans
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
- **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers.
|
- **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers.
|
||||||
- **--rmi <type>** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field.
|
- **--rmi <type>** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field.
|
||||||
- **--remove-orphans** Remove containers for services not defined in the compose file.
|
- **--remove-orphans** Remove containers for services not defined in the compose file.
|
||||||
- By default `docker compose down` only removes currently active containers and networks defined in the `docker-compose.yml`.
|
- By default `docker-compose down` only removes currently active containers and networks defined in the `docker-compose.yml`.
|
||||||
|
|
|
@ -1,19 +1,30 @@
|
||||||
Sie benötigen Docker (eine Version >= `20.10.2` ist erforderlich) und Docker Compose (eine Version `>= 2.0` ist erforderlich).
|
Sie benötigen Docker (eine Version >= `20.10.2` ist erforderlich) und Docker Compose (eine Version `>= 2.0` ist erforderlich).
|
||||||
|
|
||||||
## Installation von Docker
|
**1\.** Erfahren Sie, wie Sie [Docker](https://docs.docker.com/install/) und [Docker Compose](https://docs.docker.com/compose/install/) installieren.
|
||||||
Erfahren Sie, wie Sie [Docker](https://docs.docker.com/install/) allgemein installieren.
|
|
||||||
|
|
||||||
Schnelle Installation fĂĽr die meisten Betriebssysteme:
|
Schnelle Installation fĂĽr die meisten Betriebssysteme:
|
||||||
|
|
||||||
|
- Docker
|
||||||
```
|
```
|
||||||
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||||
# Nachdem der Installationsprozess abgeschlossen ist, mĂĽssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7)
|
# Nachdem der Installationsprozess abgeschlossen ist, mĂĽssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7)
|
||||||
systemctl enable --now docker
|
systemctl enable --now docker
|
||||||
```
|
```
|
||||||
|
|
||||||
**Bitte verwenden Sie die neueste verfĂĽgbare Docker-Engine und nicht die Engine, die mit Ihrem Distro-Repository ausgeliefert wird.**
|
- Docker-Compose
|
||||||
|
|
||||||
**Auf SELinux-aktivierten Systemen, z.B. CentOS 7:**
|
!!! danger "Achtung"
|
||||||
|
**mailcow benötigt die neueste Version von docker-compose v2.** Es wird dringend empfohlen, die untenstehenden Befehle zu verwenden, um `docker-compose` zu installieren. Paket-Manager (z.B. `apt`, `yum`) werden **wahrscheinlich** nicht die richtige Version liefern.
|
||||||
|
Hinweis: Dieser Befehl lädt docker-compose aus dem offiziellen Docker-Github-Repository herunter und ist eine sichere Methode. Das Snippet ermittelt die neueste unterstützte Version von mailcow. In fast allen Fällen ist dies die letzte verfügbare Version (Ausnahmen sind kaputte Versionen oder größere Änderungen, die noch nicht von mailcow unterstützt werden).
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
Bitte verwenden Sie die neueste verfĂĽgbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.
|
||||||
|
|
||||||
|
**1.1.1.** Auf SELinux-aktivierten Systemen, z.B. CentOS 7:
|
||||||
|
|
||||||
- PrĂĽfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:
|
- PrĂĽfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:
|
||||||
|
|
||||||
|
@ -39,65 +50,11 @@ Wenn der obige Befehl eine leere oder keine Ausgabe liefert, erstellen oder bear
|
||||||
|
|
||||||
Starten Sie den Docker-Daemon neu und ĂĽberprĂĽfen Sie, ob SELinux nun aktiviert ist.
|
Starten Sie den Docker-Daemon neu und ĂĽberprĂĽfen Sie, ob SELinux nun aktiviert ist.
|
||||||
|
|
||||||
Dieser Schritt ist erforderlich, um sicherzustellen, dass die mailcow-Volumes richtig gekennzeichnet werden, wie in der Compose-Datei angegeben.
|
Dieser Schritt ist erforderlich, um sicherzustellen, dass die mailcows-Volumes richtig gekennzeichnet sind, wie in der Compose-Datei angegeben.
|
||||||
Wenn Sie daran interessiert sind, wie dies funktioniert, können Sie sich die Readme-Datei von https://github.com/containers/container-selinux ansehen, die auf viele nützliche Informationen zu diesem Thema verweist.
|
Wenn Sie daran interessiert sind, wie das funktioniert, können Sie sich die Readme-Datei von https://github.com/containers/container-selinux ansehen, die auf viele nützliche Informationen zu diesem Thema verweist.
|
||||||
|
|
||||||
## Installation von Docker Compose v2
|
|
||||||
|
|
||||||
!!! info
|
**2\.** Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist. Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root. Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch bereitstellen und sicherstellen, dass alles gesichert ist. Das update.sh-Skript muss daher ebenfalls als root ausgeführt werden. Es kann notwendig sein, den Besitzer und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben. **Wir geben die Berechtigungen für jede exponierte Anwendung** auf und führen einen exponierten Dienst nicht als root aus! Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit. Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch.
|
||||||
Version 2 Dateien werden von Compose 1.6.0+ unterstĂĽtzt und erfordern eine Docker Engine der Version 1.10.0+.
|
|
||||||
|
|
||||||
!!! danger "Achtung"
|
|
||||||
Seit Juni 2022 wurde Docker Compose v1 in der mailcow durch Docker Compose v2 abgelöst. <br>
|
|
||||||
**Docker Compose v1 verliert den offiziellen Support seitens Docker im Oktober 2022.** <br>
|
|
||||||
_mailcow unterstützt bis Dezember 2022 Docker Compose v1. Danach ist die Installation **unumgänglich**, sollten Sie mailcow **weiter betreiben** wollen._
|
|
||||||
|
|
||||||
!!! bug "Kompatibilität"
|
|
||||||
Das Webinterface wird im Zeitraum von Juni - Dezember 2022 standardmäßig nur über v4 erreichbar sein.<br>
|
|
||||||
Der Grund dafür ist die Dual-Kompatibilität zwischen Compose v1 und v2. <br>
|
|
||||||
Sollten Sie das Webinterface, wie bisher standardmäßig über v6 erreichen wollen, werfen Sie bitte einen Blick auf [dieses Kapitel](../post_installation/firststeps-ip_bindings.de.md#ipv6-binding). <br>
|
|
||||||
**Mit dem 2022-12 Update wird die native IPv6 Erreichbarkeit der Weboberfläche wiederhergestellt.**
|
|
||||||
|
|
||||||
Sollten Sie mailcow frisch installieren und Docker auf die oben stehende Weise installiert haben, wird Docker Compose v2 schon mit installiert. Sie mĂĽssen also nichts weiter tun.
|
|
||||||
|
|
||||||
Prüfen lässt sich dies mit `docker compose version`, wenn die Rückgabe in etwa so aussieht: `Docker Compose version v2.5.0`, dann ist das neue Docker Compose bereits auf Ihrem System installiert.
|
|
||||||
|
|
||||||
Falls es nicht installiert ist oder Sie von Docker-Compose v1 auf v2 Upgraden möchten folgen Sie einfach der Anleitung:
|
|
||||||
|
|
||||||
#### Docker Compose v1 deinstallieren
|
|
||||||
**Sollten Sie den mailcow Stack bereits mit docker-compose v1 betreiben, stellen Sie sicher, dass Sie den mailcow Stack vor dem Upgrade auf Compose v2 heruntergefahren und das aktuellste Update installiert haben**
|
|
||||||
|
|
||||||
Um Docker Compose v1 zu deinstallieren geben Sie folgenden Befehl ein:
|
|
||||||
|
|
||||||
```
|
|
||||||
rm -rf /usr/local/bin/docker-compose
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Docker Compose v2 installieren
|
|
||||||
|
|
||||||
Docker Compose v2 kommt (vorausgesetzt Sie haben die Anleitung bei Punkt [Installation von Docker](#installation-von-docker) befolgt) mit dem Repository mit.
|
|
||||||
|
|
||||||
Dann ist die Installation ganz einfach:
|
|
||||||
|
|
||||||
```
|
|
||||||
apt install docker-compose-plugin -y
|
|
||||||
```
|
|
||||||
|
|
||||||
Nun noch einmal `docker compose version` eingeben und die Rückgabe überprüfen. Ist diese ähnlich zu: `Docker Compose version v2.5.0`? Dann ist alles korrekt installiert worden!
|
|
||||||
|
|
||||||
!!! warning "Hinweis"
|
|
||||||
Sollten Sie ein anderes Betriebssystem als Debian/Ubuntu verwenden, werfen Sie bitte einen Blick in das [offizielle Installationshandbuch](https://docs.docker.com/compose/install/#install-compose-on-linux-systems) von Docker selbst, um zu erfahren wie Sie Docker Compose v2 auf anderen Linux Systemen installieren können.
|
|
||||||
|
|
||||||
## Installation von mailcow
|
|
||||||
|
|
||||||
**1\.** Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist.
|
|
||||||
Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root.
|
|
||||||
Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch bereitstellen und sicherstellen, dass alles gesichert ist.
|
|
||||||
Das update.sh-Skript muss daher ebenfalls als root ausgefĂĽhrt werden.
|
|
||||||
Es kann notwendig sein, den Besitzer und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben.
|
|
||||||
**Wir geben die Berechtigungen fĂĽr jede exponierte Anwendung** auf und fĂĽhren einen exponierten Dienst nicht als root aus!
|
|
||||||
Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit.
|
|
||||||
Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch.
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ su
|
$ su
|
||||||
|
@ -108,22 +65,22 @@ $ su
|
||||||
# cd mailcow-dockerized
|
# cd mailcow-dockerized
|
||||||
```
|
```
|
||||||
|
|
||||||
**2\.** Erzeugen Sie eine Konfigurationsdatei. Verwenden Sie einen FQDN (`host.domain.tld`) als Hostname, wenn Sie gefragt werden.
|
**3\.** Erzeugen Sie eine Konfigurationsdatei. Verwenden Sie einen FQDN (`host.domain.tld`) als Hostname, wenn Sie gefragt werden.
|
||||||
```
|
```
|
||||||
./generate_config.sh
|
./generate_config.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
**3\.** Ändern Sie die Konfiguration, wenn Sie dies möchten:
|
**4\.** Ă„ndern Sie die Konfiguration, wenn Sie das wollen oder mĂĽssen.
|
||||||
```
|
```
|
||||||
nano mailcow.conf
|
nano mailcow.conf
|
||||||
```
|
```
|
||||||
Wenn Sie planen, einen Reverse-Proxy zu verwenden, können Sie zum Beispiel HTTPS an 127.0.0.1 auf Port 8443 und HTTP an 127.0.0.1 auf Port 8080 binden.
|
Wenn Sie planen, einen Reverse Proxy zu verwenden, können Sie zum Beispiel HTTPS an 127.0.0.1 auf Port 8443 und HTTP an 127.0.0.1 auf Port 8080 binden.
|
||||||
|
|
||||||
Möglicherweise müssen Sie einen vorinstallierten MTA stoppen, der Port 25/tcp blockiert. Siehe [dieses Kapitel](../post_installation/firststeps-local_mta.de.md), um zu erfahren, wie man Postfix rekonfiguriert, um nach einer erfolgreichen Installation neben mailcow laufen zu lassen.
|
Möglicherweise müssen Sie einen vorinstallierten MTA stoppen, der Port 25/tcp blockiert. Siehe [dieses Kapitel](../post_installation/firststeps-local_mta.de.md), um zu erfahren, wie man Postfix rekonfiguriert, um nach einer erfolgreichen Installation neben mailcow laufen zu lassen.
|
||||||
|
|
||||||
Einige Updates modifizieren mailcow.conf und fügen neue Parameter hinzu. Es ist schwer, in der Dokumentation den Überblick zu behalten. Bitte überprüfen Sie deren Beschreibung und fragen Sie, wenn Sie unsicher sind, in den bekannten Kanälen nach Rat.
|
Einige Updates modifizieren mailcow.conf und fügen neue Parameter hinzu. Es ist schwer, in der Dokumentation den Überblick zu behalten. Bitte überprüfen Sie deren Beschreibung und fragen Sie, wenn Sie unsicher sind, in den bekannten Kanälen nach Rat.
|
||||||
|
|
||||||
**3\.1\.** Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack):
|
**4\.1\.** Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack):
|
||||||
|
|
||||||
**Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.**
|
**Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.**
|
||||||
|
|
||||||
|
@ -138,32 +95,26 @@ networks:
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
**3\.2\.** Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem:
|
**4\.2\.** Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem:
|
||||||
|
|
||||||
**Einschalten von IPv6. Endlich.**
|
**Einschalten von IPv6. Endlich.**
|
||||||
|
|
||||||
Wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern (hehe), ist es empfehlenswert, IPv6 für das mailcow-Netzwerk zu [deaktivieren](../post_installation/firststeps-disable_ipv6.de.md), um unvorhergesehene Probleme zu vermeiden.
|
Wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern (hehe), ist es empfehlenswert, IPv6 für das mailcow-Netzwerk zu [deaktivieren](../post_installation/firststeps-disable_ipv6.de.md), um unvorhergesehene Probleme zu vermeiden.
|
||||||
|
|
||||||
|
|
||||||
**4\.** Laden Sie die Docker Images herunter und fĂĽhren Sie die Compose-Datei aus, um die mailcow-Container zu starten. Der Parameter `-d` sorgt dafĂĽr, dass die Container im Hintergrund ausgefĂĽhrt werden.
|
**5\.** LAden Sie die Images herunter und fĂĽhren Sie die Compose-Datei aus. Der Parameter `-d` wird mailcow: dockerized starten:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Der Container Status kann mit folgendem Befehl abgefragt werden:
|
Geschafft!
|
||||||
```
|
|
||||||
docker compose ps
|
|
||||||
```
|
|
||||||
|
|
||||||
Fertig!
|
|
||||||
|
|
||||||
Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen.
|
Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Wenn Sie mailcow nicht hinter einem Reverse-Proxy verwenden, sollten Sie [alle HTTP-Anfragen auf HTTPS umleiten](../manual-guides/u_e-80_to_443.md).
|
Wenn Sie mailcow nicht hinter einem Reverse Proxy verwenden, sollten Sie [alle HTTP-Anfragen auf HTTPS umleiten](../manual-guides/u_e-80_to_443.md).
|
||||||
|
|
||||||
Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zur MySQL-Datenbank hergestellt werden kann.
|
Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zu MySQL hergestellt werden kann.
|
||||||
|
|
||||||
Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie `docker volume ls` aus, um eine Liste aller Volumes zu sehen. Sie können `docker compose down` sicher ausführen, ohne persistente Daten zu entfernen.
|
Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie `docker volume ls` aus, um eine Liste aller Volumes zu sehen. Sie können `docker-compose down` sicher ausführen, ohne persistente Daten zu entfernen.
|
|
@ -1,9 +1,8 @@
|
||||||
You need Docker (a version >= `20.10.2` is required) and Docker Compose (a version `>= 2.0` is required).
|
You need Docker (a version >= `20.10.2` is required) and Docker Compose (a version `>= 2.0` is required).
|
||||||
|
|
||||||
## Installing Docker
|
**1\.** Learn how to install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/).
|
||||||
Learn how to install [Docker](https://docs.docker.com/install/) in general.
|
|
||||||
|
|
||||||
Quick installation for most operating systems:
|
Quick installation for most operation systems:
|
||||||
|
|
||||||
- Docker
|
- Docker
|
||||||
```
|
```
|
||||||
|
@ -12,9 +11,20 @@ curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||||
systemctl enable --now docker
|
systemctl enable --now docker
|
||||||
```
|
```
|
||||||
|
|
||||||
**Please use the latest available Docker engine and not the engine that ships with your distro repository.**
|
- Docker-Compose
|
||||||
|
|
||||||
**On SELinux-enabled systems, e.g. CentOS 7:**
|
!!! danger
|
||||||
|
**mailcow requires the latest version of docker-compose v2.** It is highly recommended to use the commands below to install `docker-compose`. Package managers (e.g. `apt`, `yum`) **likely won't** give you the correct version.
|
||||||
|
_Note: This command downloads docker-compose from the official Docker Github repository and is a safe method. The snippet will determine the latest supported version by mailcow. In almost all cases this is the latest version available (exceptions are broken releases or major changes not yet supported by mailcow)._
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
|
||||||
|
|
||||||
|
**1\.1\.** On SELinux enabled systems, e.g. CentOS 7:
|
||||||
|
|
||||||
- Check if "container-selinux" package is present on your system:
|
- Check if "container-selinux" package is present on your system:
|
||||||
|
|
||||||
|
@ -43,52 +53,8 @@ Restart the docker daemon and verify SELinux is now enabled.
|
||||||
This step is required to make sure mailcows volumes are properly labeled as declared in the compose file.
|
This step is required to make sure mailcows volumes are properly labeled as declared in the compose file.
|
||||||
If you are interested in how this works, you can check out the readme of https://github.com/containers/container-selinux which links to a lot of useful information on that topic.
|
If you are interested in how this works, you can check out the readme of https://github.com/containers/container-selinux which links to a lot of useful information on that topic.
|
||||||
|
|
||||||
## Install Docker Compose v2
|
|
||||||
|
|
||||||
!!! danger
|
**2\.** Clone the master branch of the repository, make sure your umask equals 0022. Please clone the repository as root user and also control the stack as root. We will modify attributes - if necessary - while bootstrapping the containers automatically and make sure everything is secured. The update.sh script must therefore also be run as root. It might be necessary to change ownership and other attributes of files you will otherwise not have access to. **We drop permissions for every exposed application** and will not run an exposed service as root! Controlling the Docker daemon as non-root user does not give you additional security. The unprivileged user will spawn the containers as root likewise. The behaviour of the stack is identical.
|
||||||
As of June 2022, Docker Compose v1 has been replaced in mailcow by Docker Compose v2. <br>
|
|
||||||
**Docker Compose v1 will lose official support from Docker in October 2022.** <br>
|
|
||||||
_mailcow supports Docker Compose v1 until December 2022, after which installation is **imperative** should you wish to **continue** running mailcow._
|
|
||||||
|
|
||||||
!!! bug "Compatibility"
|
|
||||||
The web interface will only be accessible via v4 by default in the period from June - December 2022.<br>
|
|
||||||
The reason for this is the dual compatibility between Compose v1 and v2. <br>
|
|
||||||
Should you wish to access the web interface, as before by default via v6, please take a look at [this chapter](../post_installation/firststeps-ip_bindings.md#ipv6-binding). <br>
|
|
||||||
**The 2022-12 update will restore the native IPv6 reachability from the UI.**
|
|
||||||
|
|
||||||
If you are freshly installing mailcow and have installed Docker in the above way, Docker Compose v2 will already be installed with it. So you don't need to do anything else.
|
|
||||||
|
|
||||||
You can check this with `docker compose version`, if the return looks something like `Docker Compose version v2.5.0`, then the new Docker Compose is already installed on your system.
|
|
||||||
|
|
||||||
If it is not installed or you want to upgrade from Docker Compose v1 to v2 just follow the instructions:
|
|
||||||
|
|
||||||
#### Uninstall Docker Compose v1
|
|
||||||
**If you are already running the mailcow stack with docker-compose v1, make sure you have shut down the mailcow stack and installed the latest update before upgrading to Compose v2**.
|
|
||||||
|
|
||||||
To uninstall Docker Compose v1 enter the following command:
|
|
||||||
|
|
||||||
```
|
|
||||||
rm -rf /usr/local/bin/docker-compose
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Install Docker Compose v2
|
|
||||||
|
|
||||||
Docker Compose v2 comes with the repository (assuming you followed the instructions at point [installing Docker](#installing-docker)).
|
|
||||||
|
|
||||||
Then the installation is quite simple:
|
|
||||||
|
|
||||||
```
|
|
||||||
apt install docker-compose-plugin -y
|
|
||||||
```
|
|
||||||
|
|
||||||
Now type `docker compose version` again and check the return. Is it similar to: `Docker Compose version v2.5.0`? Then everything has been installed correctly!
|
|
||||||
|
|
||||||
!!! warning
|
|
||||||
If you are using an operating system other than Debian/Ubuntu, please take a look at the [official installation manual](https://docs.docker.com/compose/install/#install-compose-on-linux-systems) of Docker itself to learn how to install Docker Compose v2 on other Linux systems.
|
|
||||||
|
|
||||||
## Install mailcow
|
|
||||||
|
|
||||||
**1\.** Clone the master branch of the repository, make sure your umask equals 0022. Please clone the repository as root user and also control the stack as root. We will modify attributes - if necessary - while bootstrapping the containers automatically and make sure everything is secured. The update.sh script must therefore also be run as root. It might be necessary to change ownership and other attributes of files you will otherwise not have access to. **We drop permissions for every exposed application** and will not run an exposed service as root! Controlling the Docker daemon as non-root user does not give you additional security. The unprivileged user will spawn the containers as root likewise. The behaviour of the stack is identical.
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ su
|
$ su
|
||||||
|
@ -99,12 +65,12 @@ $ su
|
||||||
# cd mailcow-dockerized
|
# cd mailcow-dockerized
|
||||||
```
|
```
|
||||||
|
|
||||||
**2\.** Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked.
|
**3\.** Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked.
|
||||||
```
|
```
|
||||||
./generate_config.sh
|
./generate_config.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
**3\.** Change configuration if you want or need to.
|
**4\.** Change configuration if you want or need to.
|
||||||
```
|
```
|
||||||
nano mailcow.conf
|
nano mailcow.conf
|
||||||
```
|
```
|
||||||
|
@ -114,7 +80,7 @@ You may need to stop an existing pre-installed MTA which blocks port 25/tcp. See
|
||||||
|
|
||||||
Some updates modify mailcow.conf and add new parameters. It is hard to keep track of them in the documentation. Please check their description and, if unsure, ask at the known channels for advise.
|
Some updates modify mailcow.conf and add new parameters. It is hard to keep track of them in the documentation. Please check their description and, if unsure, ask at the known channels for advise.
|
||||||
|
|
||||||
**3\.1\.** Users with a MTU not equal to 1500 (e.g. OpenStack):
|
**4\.1\.** Users with a MTU not equal to 1500 (e.g. OpenStack):
|
||||||
|
|
||||||
**Whenever you run into trouble and strange phenomena, please check your MTU.**
|
**Whenever you run into trouble and strange phenomena, please check your MTU.**
|
||||||
|
|
||||||
|
@ -129,17 +95,17 @@ networks:
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
**3\.2\.** Users without an IPv6 enabled network on their host system:
|
**4\.2\.** Users without an IPv6 enabled network on their host system:
|
||||||
|
|
||||||
**Enable IPv6. Finally.**
|
**Enable IPv6. Finally.**
|
||||||
|
|
||||||
If you do not have an IPv6 enabled network on your host and you don't care for a better internet (thehe), it is recommended to [disable IPv6](../post_installation/firststeps-disable_ipv6.en.md) for the mailcow network to prevent unforeseen issues.
|
If you do not have an IPv6 enabled network on your host and you don't care for a better internet (thehe), it is recommended to [disable IPv6](../post_installation/firststeps-disable_ipv6.en.md) for the mailcow network to prevent unforeseen issues.
|
||||||
|
|
||||||
|
|
||||||
**4\.** Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached:
|
**5\.** Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached:
|
||||||
```
|
```
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Done!
|
Done!
|
||||||
|
@ -151,4 +117,4 @@ You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials
|
||||||
|
|
||||||
The database will be initialized right after a connection to MySQL can be established.
|
The database will be initialized right after a connection to MySQL can be established.
|
||||||
|
|
||||||
Your data will persist in multiple Docker volumes, that are not deleted when you recreate or delete containers. Run `docker volume ls` to see a list of all volumes. You can safely run `docker compose down` without removing persistent data.
|
Your data will persist in multiple Docker volumes, that are not deleted when you recreate or delete containers. Run `docker volume ls` to see a list of all volumes. You can safely run `docker-compose down` without removing persistent data.
|
|
@ -5,7 +5,7 @@
|
||||||
Alternativ können Sie das Skript `./helper-scripts/backup_and_restore.sh` verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre `mailcow.conf` und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen.
|
Alternativ können Sie das Skript `./helper-scripts/backup_and_restore.sh` verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre `mailcow.conf` und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen.
|
||||||
|
|
||||||
**1\.**
|
**1\.**
|
||||||
Installieren Sie [Docker](https://docs.docker.com/engine/installation/linux/) und [Docker Compose](https://docs.docker.com/compose/install/) auf Ihrem neuen Server.
|
Installieren Sie [Docker](https://docs.docker.com/engine/installation/linux/) und [docker-compose](https://docs.docker.com/compose/install/) auf Ihrem neuen Server.
|
||||||
|
|
||||||
Schnelle Installation fĂĽr die meisten Betriebssysteme:
|
Schnelle Installation fĂĽr die meisten Betriebssysteme:
|
||||||
|
|
||||||
|
@ -16,10 +16,10 @@ curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||||
systemctl enable docker.service
|
systemctl enable docker.service
|
||||||
```
|
```
|
||||||
|
|
||||||
- docker compose
|
- docker-compose
|
||||||
```
|
```
|
||||||
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker compose/latest.php)/docker compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker compose
|
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
||||||
chmod +x /usr/local/bin/docker compose
|
chmod +x /usr/local/bin/docker-compose
|
||||||
```
|
```
|
||||||
|
|
||||||
Bitte verwenden Sie die neueste verfĂĽgbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.
|
Bitte verwenden Sie die neueste verfĂĽgbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.
|
||||||
|
@ -39,7 +39,7 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
|
||||||
**4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
|
**4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose herunterfahren
|
docker-compose herunterfahren
|
||||||
systemctl stop docker.service
|
systemctl stop docker.service
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -53,12 +53,12 @@ systemctl start docker.service
|
||||||
**7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
|
**7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
```
|
```
|
||||||
|
|
||||||
**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
|
**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
**9\.** Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen.
|
**9\.** Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen.
|
|
@ -5,7 +5,7 @@
|
||||||
Alternatively, you can use the `./helper-scripts/backup_and_restore.sh` script to create a full backup on the source machine, then install mailcow on the target machine as usual, copy over your `mailcow.conf` and use the same script to restore your backup to the target machine.
|
Alternatively, you can use the `./helper-scripts/backup_and_restore.sh` script to create a full backup on the source machine, then install mailcow on the target machine as usual, copy over your `mailcow.conf` and use the same script to restore your backup to the target machine.
|
||||||
|
|
||||||
**1\.**
|
**1\.**
|
||||||
Install [Docker](https://docs.docker.com/engine/installation/linux/) and [Docker Compose](https://docs.docker.com/compose/install/) on your new server.
|
Install [Docker](https://docs.docker.com/engine/installation/linux/) and [docker-compose](https://docs.docker.com/compose/install/) on your new server.
|
||||||
|
|
||||||
Quick installation for most operation systems:
|
Quick installation for most operation systems:
|
||||||
|
|
||||||
|
@ -16,10 +16,10 @@ curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||||
systemctl enable docker.service
|
systemctl enable docker.service
|
||||||
```
|
```
|
||||||
|
|
||||||
- docker compose
|
- docker-compose
|
||||||
```
|
```
|
||||||
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker compose/latest.php)/docker compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker compose
|
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
||||||
chmod +x /usr/local/bin/docker compose
|
chmod +x /usr/local/bin/docker-compose
|
||||||
```
|
```
|
||||||
|
|
||||||
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
|
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
|
||||||
|
@ -39,7 +39,7 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
|
||||||
**4\.** Shut down mailcow and stop Docker on the source machine.
|
**4\.** Shut down mailcow and stop Docker on the source machine.
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose down
|
docker-compose down
|
||||||
systemctl stop docker.service
|
systemctl stop docker.service
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -53,12 +53,12 @@ systemctl start docker.service
|
||||||
**7\.** Now pull the mailcow Docker images on the target machine.
|
**7\.** Now pull the mailcow Docker images on the target machine.
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
```
|
```
|
||||||
|
|
||||||
**8\.** Start the whole mailcow stack and everything should be done!
|
**8\.** Start the whole mailcow stack and everything should be done!
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
**9\.** Finally, change your DNS settings to point to the target server.
|
**9\.** Finally, change your DNS settings to point to the target server.
|
||||||
|
|
|
@ -59,11 +59,11 @@ Ja.
|
||||||
Siehe das obige Thema, anstelle eines Diffs fĂĽhren Sie checkout aus:
|
Siehe das obige Thema, anstelle eines Diffs fĂĽhren Sie checkout aus:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
|
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
|
||||||
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Hooks
|
### Hooks
|
||||||
|
|
|
@ -59,11 +59,11 @@ Yes.
|
||||||
See the topic above, instead of a diff, you run checkout:
|
See the topic above, instead of a diff, you run checkout:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID
|
# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID
|
||||||
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Hooks
|
### Hooks
|
||||||
|
|
|
@ -45,7 +45,7 @@ MaxZipTypeRcg 50M
|
||||||
```
|
```
|
||||||
10. Starten Sie den ClamAV Container neu:
|
10. Starten Sie den ClamAV Container neu:
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
**Bitte beachten Sie**:
|
**Bitte beachten Sie**:
|
||||||
|
@ -66,5 +66,5 @@ DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
||||||
```
|
```
|
||||||
2. Starten Sie den ClamAV Container neu:
|
2. Starten Sie den ClamAV Container neu:
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
|
@ -45,7 +45,7 @@ MaxZipTypeRcg 50M
|
||||||
```
|
```
|
||||||
10. Restart ClamAV container:
|
10. Restart ClamAV container:
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Please note:
|
Please note:
|
||||||
|
@ -66,5 +66,5 @@ DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
||||||
```
|
```
|
||||||
2. Restart ClamAV container:
|
2. Restart ClamAV container:
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
Es kann vorkommen, dass legitime (saubere) Mails von ClamAV blockiert werden (Rspamd markiert die Mail mit `VIRUS_FOUND`). So werden beispielsweise interaktive PDF-Formularanhänge standardmäßig blockiert, da der eingebettete Javascript-Code für schädliche Zwecke verwendet werden könnte. Überprüfen Sie dies anhand der clamd-Protokolle, z.B.:
|
Es kann vorkommen, dass legitime (saubere) Mails von ClamAV blockiert werden (Rspamd markiert die Mail mit `VIRUS_FOUND`). So werden beispielsweise interaktive PDF-Formularanhänge standardmäßig blockiert, da der eingebettete Javascript-Code für schädliche Zwecke verwendet werden könnte. Überprüfen Sie dies anhand der clamd-Protokolle, z.B.:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose logs clamd-mailcow | grep "FOUND"
|
docker-compose logs clamd-mailcow | grep "FOUND"
|
||||||
```
|
```
|
||||||
|
|
||||||
Diese Zeile bestätigt, dass ein solcher identifiziert wurde:
|
Diese Zeile bestätigt, dass ein solcher identifiziert wurde:
|
||||||
|
@ -18,16 +18,16 @@ Um diese spezielle Signatur auf die Whitelist zu setzen (und den Versand dieses
|
||||||
echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
|
echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
|
||||||
```
|
```
|
||||||
|
|
||||||
Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker compose neu:
|
Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker-compose neu:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis:
|
Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis:
|
||||||
|
|
||||||
```
|
```
|
||||||
# docker compose exec redis-mailcow /bin/sh
|
# docker-compose exec redis-mailcow /bin/sh
|
||||||
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
|
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
|
||||||
/data # exit
|
/data # exit
|
||||||
```
|
```
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
You may find that legitimate (clean) mail is being blocked by ClamAV (Rspamd will flag the mail with `VIRUS_FOUND`). For instance, interactive PDF form attachments are blocked by default because the embedded Javascript code may be used for nefarious purposes. Confirm by looking at the clamd logs, e.g.:
|
You may find that legitimate (clean) mail is being blocked by ClamAV (Rspamd will flag the mail with `VIRUS_FOUND`). For instance, interactive PDF form attachments are blocked by default because the embedded Javascript code may be used for nefarious purposes. Confirm by looking at the clamd logs, e.g.:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose logs clamd-mailcow | grep "FOUND"
|
docker-compose logs clamd-mailcow | grep "FOUND"
|
||||||
```
|
```
|
||||||
|
|
||||||
This line confirms that such was identified:
|
This line confirms that such was identified:
|
||||||
|
@ -18,16 +18,16 @@ To whitelist this particular signature (and enable sending this type of file att
|
||||||
echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
|
echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
|
||||||
```
|
```
|
||||||
|
|
||||||
Then restart the clamd-mailcow service container in the mailcow UI or using docker compose:
|
Then restart the clamd-mailcow service container in the mailcow UI or using docker-compose:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose restart clamd-mailcow
|
docker-compose restart clamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Cleanup cached ClamAV results in Redis:
|
Cleanup cached ClamAV results in Redis:
|
||||||
|
|
||||||
```
|
```
|
||||||
# docker compose exec redis-mailcow /bin/sh
|
# docker-compose exec redis-mailcow /bin/sh
|
||||||
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
|
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
|
||||||
/data # exit
|
/data # exit
|
||||||
```
|
```
|
||||||
|
|
|
@ -13,5 +13,5 @@ docker build data/Dockerfiles/service -t mailcow/$service
|
||||||
Nun werden die geänderten Container automatisch neu erstellt:
|
Nun werden die geänderten Container automatisch neu erstellt:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
|
@ -13,5 +13,5 @@ docker build data/Dockerfiles/service -t mailcow/$service
|
||||||
Now auto-recreate modified containers:
|
Now auto-recreate modified containers:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
|
@ -6,4 +6,4 @@ Diese Funktion kann wieder aktiviert werden, indem `ACL_ANYONE` auf `allow` in m
|
||||||
ACL_ANYONE=allow
|
ACL_ANYONE=allow
|
||||||
```
|
```
|
||||||
|
|
||||||
Wenden Sie die Ă„nderungen an, indem Sie `docker compose up -d` ausfĂĽhren.
|
Wenden Sie die Ă„nderungen an, indem Sie `docker-compose up -d` ausfĂĽhren.
|
|
@ -6,4 +6,4 @@ This function can be re-enabled by setting `ACL_ANYONE` to `allow` in mailcow.co
|
||||||
ACL_ANYONE=allow
|
ACL_ANYONE=allow
|
||||||
```
|
```
|
||||||
|
|
||||||
Apply the changes by running `docker compose up -d`.
|
Apply the changes by running `docker-compose up -d`.
|
|
@ -7,25 +7,25 @@ Dann wollen wir mal loslegen:
|
||||||
Löschen Sie die Mails eines Benutzers im Junk-Ordner, die **gelesen** und **älter** als 4 Stunden sind
|
Löschen Sie die Mails eines Benutzers im Junk-Ordner, die **gelesen** und **älter** als 4 Stunden sind
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
docker-compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
||||||
```
|
```
|
||||||
|
|
||||||
Lösche **alle** Mails des Benutzers im Junk-Ordner, die **älter** als 7 Tage sind
|
Lösche **alle** Mails des Benutzers im Junk-Ordner, die **älter** als 7 Tage sind
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 7d
|
docker-compose exec dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 7d
|
||||||
```
|
```
|
||||||
|
|
||||||
Löscht **alle** Mails (aller Benutzer) in **allen** Ordnern, die **älter** als 52 Wochen sind (internes Datum der Mail, nicht das Datum, an dem sie auf dem System gespeichert wurde => `before` statt `savedbefore`). Nützlich zum Löschen sehr alter Mails in allen Benutzern und Ordnern (daher besonders nützlich für GDPR-Compliance).
|
Löscht **alle** Mails (aller Benutzer) in **allen** Ordnern, die **älter** als 52 Wochen sind (internes Datum der Mail, nicht das Datum, an dem sie auf dem System gespeichert wurde => `before` statt `savedbefore`). Nützlich zum Löschen sehr alter Mails in allen Benutzern und Ordnern (daher besonders nützlich für GDPR-Compliance).
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
|
docker-compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
|
||||||
```
|
```
|
||||||
|
|
||||||
Löschen von Mails in einem benutzerdefinierten Ordner **innerhalb** des Posteingangs eines Benutzers, die **nicht** gekennzeichnet und **älter** als 2 Wochen sind
|
Löschen von Mails in einem benutzerdefinierten Ordner **innerhalb** des Posteingangs eines Benutzers, die **nicht** gekennzeichnet und **älter** als 2 Wochen sind
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
docker-compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
@ -42,8 +42,8 @@ Wenn Sie eine solche Aufgabe automatisieren wollen, können Sie einen Cron-Job a
|
||||||
# Pfad zu mailcow-dockerized, z.B. /opt/mailcow-dockerized
|
# Pfad zu mailcow-dockerized, z.B. /opt/mailcow-dockerized
|
||||||
cd /pfad/zu/ihrem/mailcow-dockerized
|
cd /pfad/zu/ihrem/mailcow-dockerized
|
||||||
|
|
||||||
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
||||||
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -7,25 +7,25 @@ That said, let's dive in:
|
||||||
Delete a user's mails inside the junk folder that **are read** and **older** than 4 hours
|
Delete a user's mails inside the junk folder that **are read** and **older** than 4 hours
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
docker-compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
||||||
```
|
```
|
||||||
|
|
||||||
Delete **all** user's mails in the junk folder that are **older** than 7 days
|
Delete **all** user's mails in the junk folder that are **older** than 7 days
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 7d
|
docker-compose exec dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 7d
|
||||||
```
|
```
|
||||||
|
|
||||||
Delete **all** mails (of all users) in **all** folders that are **older** than 52 weeks (internal date of the mail, not the date it was saved on the system => `before` instead of `savedbefore`). Useful for deleting very old mails on all users and folders (thus especially useful for GDPR-compliance).
|
Delete **all** mails (of all users) in **all** folders that are **older** than 52 weeks (internal date of the mail, not the date it was saved on the system => `before` instead of `savedbefore`). Useful for deleting very old mails on all users and folders (thus especially useful for GDPR-compliance).
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
|
docker-compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
|
||||||
```
|
```
|
||||||
|
|
||||||
Delete mails inside a custom folder **inside** a user's inbox that are **not** flagged and **older** than 2 weeks
|
Delete mails inside a custom folder **inside** a user's inbox that are **not** flagged and **older** than 2 weeks
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
docker-compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
@ -42,8 +42,8 @@ If you want to automate such a task you can create a cron job on your host that
|
||||||
# Path to mailcow-dockerized, e.g. /opt/mailcow-dockerized
|
# Path to mailcow-dockerized, e.g. /opt/mailcow-dockerized
|
||||||
cd /path/to/your/mailcow-dockerized
|
cd /path/to/your/mailcow-dockerized
|
||||||
|
|
||||||
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
||||||
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,5 @@ Erstellen Sie eine Datei `data/conf/dovecot/extra.conf` - falls nicht vorhanden
|
||||||
Starten Sie `dovecot-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen:
|
Starten Sie `dovecot-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart dovecot-mailcow
|
docker-compose restart dovecot-mailcow
|
||||||
```
|
```
|
|
@ -3,5 +3,5 @@ Create a file `data/conf/dovecot/extra.conf` - if missing - and add your additio
|
||||||
Restart `dovecot-mailcow` to apply your changes:
|
Restart `dovecot-mailcow` to apply your changes:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart dovecot-mailcow
|
docker-compose restart dovecot-mailcow
|
||||||
```
|
```
|
|
@ -13,9 +13,9 @@ Da wir in Docker laufen und unsere Container mit dem "restart: always" Flag erst
|
||||||
|
|
||||||
```
|
```
|
||||||
# Einzelbenutzer
|
# Einzelbenutzer
|
||||||
docker compose exec dovecot-mailcow doveadm fts rescan -u user@domain
|
docker-compose exec dovecot-mailcow doveadm fts rescan -u user@domain
|
||||||
# alle Benutzer
|
# alle Benutzer
|
||||||
docker compose exec dovecot-mailcow doveadm fts rescan -A
|
docker-compose exec dovecot-mailcow doveadm fts rescan -A
|
||||||
|
|
||||||
```
|
```
|
||||||
Dovecot Wiki: "Scannt, welche Mails im Volltextsuchindex vorhanden sind und vergleicht diese mit den tatsächlich in den Postfächern vorhandenen Mails. Dies entfernt Mails aus dem Index, die bereits gelöscht wurden und stellt sicher, dass der nächste doveadm-Index alle fehlenden Mails (falls vorhanden) indiziert."
|
Dovecot Wiki: "Scannt, welche Mails im Volltextsuchindex vorhanden sind und vergleicht diese mit den tatsächlich in den Postfächern vorhandenen Mails. Dies entfernt Mails aus dem Index, die bereits gelöscht wurden und stellt sicher, dass der nächste doveadm-Index alle fehlenden Mails (falls vorhanden) indiziert."
|
||||||
|
@ -26,9 +26,9 @@ Wenn Sie die Daten sofort neu indizieren wollen, können Sie den folgenden Befeh
|
||||||
|
|
||||||
```
|
```
|
||||||
# einzelner Benutzer
|
# einzelner Benutzer
|
||||||
docker compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
docker-compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
||||||
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
|
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
|
||||||
docker compose exec dovecot-mailcow doveadm index -A '*'
|
docker-compose exec dovecot-mailcow doveadm index -A '*'
|
||||||
```
|
```
|
||||||
|
|
||||||
Dies **wird** einige Zeit in Anspruch nehmen, abhängig von Ihrer Maschine und Solr kann oom ausführen, überwachen Sie es!
|
Dies **wird** einige Zeit in Anspruch nehmen, abhängig von Ihrer Maschine und Solr kann oom ausführen, überwachen Sie es!
|
||||||
|
|
|
@ -14,9 +14,9 @@ Since we run in Docker and create our containers with the "restart: always" flag
|
||||||
|
|
||||||
```
|
```
|
||||||
# single user
|
# single user
|
||||||
docker compose exec dovecot-mailcow doveadm fts rescan -u user@domain
|
docker-compose exec dovecot-mailcow doveadm fts rescan -u user@domain
|
||||||
# all users
|
# all users
|
||||||
docker compose exec dovecot-mailcow doveadm fts rescan -A
|
docker-compose exec dovecot-mailcow doveadm fts rescan -A
|
||||||
```
|
```
|
||||||
|
|
||||||
Dovecot Wiki: "Scan what mails exist in the full text search index and compare those to what actually exist in mailboxes. This removes mails from the index that have already been expunged and makes sure that the next doveadm index will index all the missing mails (if any)."
|
Dovecot Wiki: "Scan what mails exist in the full text search index and compare those to what actually exist in mailboxes. This removes mails from the index that have already been expunged and makes sure that the next doveadm index will index all the missing mails (if any)."
|
||||||
|
@ -27,9 +27,9 @@ If you want to re-index data immediately, you can run the followig command, wher
|
||||||
|
|
||||||
```
|
```
|
||||||
# single user
|
# single user
|
||||||
docker compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
docker-compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
||||||
# all users, but obviously slower and more dangerous
|
# all users, but obviously slower and more dangerous
|
||||||
docker compose exec dovecot-mailcow doveadm index -A '*'
|
docker-compose exec dovecot-mailcow doveadm index -A '*'
|
||||||
```
|
```
|
||||||
|
|
||||||
This **will** take some time depending on your machine and Solr can run oom, monitor it!
|
This **will** take some time depending on your machine and Solr can run oom, monitor it!
|
||||||
|
|
|
@ -22,13 +22,13 @@ imap_idle_notify_interval = 5 mins
|
||||||
Nun laden Sie Dovecot neu:
|
Nun laden Sie Dovecot neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow dovecot reload
|
docker-compose exec dovecot-mailcow dovecot reload
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Sie können den Wert dieser Einstellung überprüfen mit
|
Sie können den Wert dieser Einstellung überprüfen mit
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow dovecot -a | grep "imap_idle_notify_interval"
|
docker-compose exec dovecot-mailcow dovecot -a | grep "imap_idle_notify_interval"
|
||||||
```
|
```
|
||||||
Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn geändert haben, sollten Sie den neuen Wert sehen.
|
Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn geändert haben, sollten Sie den neuen Wert sehen.
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,13 @@ imap_idle_notify_interval = 5 mins
|
||||||
### Reload Dovecot
|
### Reload Dovecot
|
||||||
Now reload Dovecot:
|
Now reload Dovecot:
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow dovecot reload
|
docker-compose exec dovecot-mailcow dovecot reload
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
You can check the value of this setting with
|
You can check the value of this setting with
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow dovecot -a | grep "imap_idle_notify_interval"
|
docker-compose exec dovecot-mailcow dovecot -a | grep "imap_idle_notify_interval"
|
||||||
```
|
```
|
||||||
If you didn't change it, it should be at 2m. If you did change it, you should see your new value.
|
If you didn't change it, it should be at 2m. If you did change it, you should see your new value.
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ Die Mails werden komprimiert (lz4) und verschlĂĽsselt gespeichert. Das SchlĂĽsse
|
||||||
|
|
||||||
Wenn Sie vorhandene maildir-Dateien entschlüsseln/verschlüsseln wollen, können Sie das folgende Skript auf eigene Gefahr verwenden:
|
Wenn Sie vorhandene maildir-Dateien entschlüsseln/verschlüsseln wollen, können Sie das folgende Skript auf eigene Gefahr verwenden:
|
||||||
|
|
||||||
Rufen Sie Dovecot auf, indem Sie `docker compose exec dovecot-mailcow /bin/bash` im mailcow-dockerisierten Verzeichnis ausfĂĽhren.
|
Rufen Sie Dovecot auf, indem Sie `docker-compose exec dovecot-mailcow /bin/bash` im mailcow-dockerisierten Verzeichnis ausfĂĽhren.
|
||||||
|
|
||||||
```
|
```
|
||||||
# EntschlĂĽsseln Sie /var/vmail
|
# EntschlĂĽsseln Sie /var/vmail
|
||||||
|
|
|
@ -2,7 +2,7 @@ Mails are stored compressed (lz4) and encrypted. The key pair can be found in cr
|
||||||
|
|
||||||
If you want to decode/encode existing maildir files, you can use the following script at your own risk:
|
If you want to decode/encode existing maildir files, you can use the following script at your own risk:
|
||||||
|
|
||||||
Enter Dovecot by running `docker compose exec dovecot-mailcow /bin/bash` in the mailcow-dockerized location.
|
Enter Dovecot by running `docker-compose exec dovecot-mailcow /bin/bash` in the mailcow-dockerized location.
|
||||||
|
|
||||||
```
|
```
|
||||||
# Decrypt /var/vmail
|
# Decrypt /var/vmail
|
||||||
|
|
|
@ -22,7 +22,7 @@ Die neue Mailbox im öffentlichen Namensraum wird von den Benutzern automatisch
|
||||||
Um allen authentifizierten Benutzern vollen Zugriff auf das neue Postfach (nicht auf den gesamten Namespace) zu gewähren, führen Sie aus:
|
Um allen authentifizierten Benutzern vollen Zugriff auf das neue Postfach (nicht auf den gesamten Namespace) zu gewähren, führen Sie aus:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
|
docker-compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
|
||||||
```
|
```
|
||||||
|
|
||||||
Passen Sie den Befehl an Ihre Bedürfnisse an, wenn Sie detailliertere Rechte pro Benutzer vergeben möchten (verwenden Sie z.B. `-u user@domain` anstelle von `-A`).
|
Passen Sie den Befehl an Ihre Bedürfnisse an, wenn Sie detailliertere Rechte pro Benutzer vergeben möchten (verwenden Sie z.B. `-u user@domain` anstelle von `-A`).
|
||||||
|
|
|
@ -22,7 +22,7 @@ The new mailbox in the public namespace will be auto-subscribed by users.
|
||||||
To allow all authenticated users access full to that new mailbox (not the whole namespace), run:
|
To allow all authenticated users access full to that new mailbox (not the whole namespace), run:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
|
docker-compose exec dovecot-mailcow doveadm acl set -A "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
|
||||||
```
|
```
|
||||||
|
|
||||||
Adjust the command to your needs if you like to assign more granular rights per user (use `-u user@domain` instead of `-A` for example).
|
Adjust the command to your needs if you like to assign more granular rights per user (use `-u user@domain` instead of `-A` for example).
|
||||||
|
|
|
@ -11,7 +11,7 @@ DOVECOT_MASTER_USER=mymasteruser
|
||||||
DOVECOT_MASTER_PASS=mysecretpass
|
DOVECOT_MASTER_PASS=mysecretpass
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus, um Ihre Ă„nderungen zu ĂĽbernehmen.
|
FĂĽhren Sie `docker-compose up -d` aus, um Ihre Ă„nderungen zu ĂĽbernehmen.
|
||||||
|
|
||||||
Der statische Master-Benutzername wird zu `DOVECOT_MASTER_USER@mailcow.local` erweitert.
|
Der statische Master-Benutzername wird zu `DOVECOT_MASTER_USER@mailcow.local` erweitert.
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ DOVECOT_MASTER_USER=mymasteruser
|
||||||
DOVECOT_MASTER_PASS=mysecretpass
|
DOVECOT_MASTER_PASS=mysecretpass
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d` to apply your changes.
|
Run `docker-compose up -d` to apply your changes.
|
||||||
|
|
||||||
The static master username will be expanded to `DOVECOT_MASTER_USER@mailcow.local`.
|
The static master username will be expanded to `DOVECOT_MASTER_USER@mailcow.local`.
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
!!! warning
|
!!! warning
|
||||||
Neuere Docker-Versionen scheinen sich über bestehende Volumes zu beschweren. Man kann dies vorübergehend beheben, indem man das bestehende Volume entfernt und mailcow mit der Override-Datei startet. Aber es scheint nach einem Neustart problematisch zu sein (muss bestätigt werden).
|
Neuere Docker-Versionen scheinen sich über bestehende Volumes zu beschweren. Man kann dies vorübergehend beheben, indem man das bestehende Volume entfernt und mailcow mit der Override-Datei startet. Aber es scheint nach einem Neustart problematisch zu sein (muss bestätigt werden).
|
||||||
|
|
||||||
Ein einfacher, schmutziger, aber stabiler Workaround ist es, mailcow zu stoppen (`docker compose down`), `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data` zu entfernen und einen neuen Link zu Ihrem entfernten Dateisystem zu erstellen, zum Beispiel:
|
Ein einfacher, schmutziger, aber stabiler Workaround ist es, mailcow zu stoppen (`docker-compose down`), `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data` zu entfernen und einen neuen Link zu Ihrem entfernten Dateisystem zu erstellen, zum Beispiel:
|
||||||
|
|
||||||
```
|
```
|
||||||
mv /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data_backup
|
mv /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data_backup
|
||||||
|
@ -51,8 +51,8 @@ volumes:
|
||||||
```
|
```
|
||||||
|
|
||||||
- Kopieren Sie den Inhalt des `Mountpoint`-Ordners an den neuen Speicherort (z.B. `/data/mailcow/vmail`) mit `cp -a`, `rsync -a` oder einem ähnlichen, nicht strikten Kopierbefehl
|
- Kopieren Sie den Inhalt des `Mountpoint`-Ordners an den neuen Speicherort (z.B. `/data/mailcow/vmail`) mit `cp -a`, `rsync -a` oder einem ähnlichen, nicht strikten Kopierbefehl
|
||||||
- Stoppen Sie mailcow durch AusfĂĽhren von `docker compose down` aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`)
|
- Stoppen Sie mailcow durch AusfĂĽhren von `docker-compose down` aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`)
|
||||||
- Erstellen Sie die Datei `docker-compose.override.yml`, bearbeiten Sie den Gerätepfad entsprechend
|
- Erstellen Sie die Datei `docker-compose.override.yml`, bearbeiten Sie den Gerätepfad entsprechend
|
||||||
- Löschen Sie den aktuellen vmail-Ordner: `docker volume rm mailcowdockerized_vmail-vol-1`
|
- Löschen Sie den aktuellen vmail-Ordner: `docker volume rm mailcowdockerized_vmail-vol-1`
|
||||||
- Starten Sie mailcow durch AusfĂĽhren von `docker compose up -d` aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`)
|
- Starten Sie mailcow durch AusfĂĽhren von `docker-compose up -d` aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`)
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
!!! warning
|
!!! warning
|
||||||
Newer Docker versions seem to complain about existing volumes. You can fix this temporarily by removing the existing volume and start mailcow with the override file. But it seems to be problematic after a reboot (needs to be confirmed).
|
Newer Docker versions seem to complain about existing volumes. You can fix this temporarily by removing the existing volume and start mailcow with the override file. But it seems to be problematic after a reboot (needs to be confirmed).
|
||||||
|
|
||||||
An easy, dirty, yet stable workaround is to stop mailcow (`docker compose down`), remove `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data` and create a new link to your remote filesystem location, for example:
|
An easy, dirty, yet stable workaround is to stop mailcow (`docker-compose down`), remove `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data` and create a new link to your remote filesystem location, for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
mv /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data_backup
|
mv /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data_backup
|
||||||
|
@ -51,7 +51,7 @@ volumes:
|
||||||
```
|
```
|
||||||
|
|
||||||
- Copy the content of the `Mountpoint` folder to the new location (e.g. `/data/mailcow/vmail`) using `cp -a`, `rsync -a` or a similar non strcuture breaking copy command
|
- Copy the content of the `Mountpoint` folder to the new location (e.g. `/data/mailcow/vmail`) using `cp -a`, `rsync -a` or a similar non strcuture breaking copy command
|
||||||
- Stop mailcow by executing `docker compose down` from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`)
|
- Stop mailcow by executing `docker-compose down` from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`)
|
||||||
- Create the file `docker-compose.override.yml`, edit the device path accordingly
|
- Create the file `docker-compose.override.yml`, edit the device path accordingly
|
||||||
- Delete the current vmail folder: `docker volume rm mailcowdockerized_vmail-vol-1`
|
- Delete the current vmail folder: `docker volume rm mailcowdockerized_vmail-vol-1`
|
||||||
- Start mailcow by executing `docker compose up -d` from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`)
|
- Start mailcow by executing `docker-compose up -d` from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`)
|
|
@ -112,7 +112,7 @@ Wenn PHP in eine benutzerdefinierte Site eingebunden werden soll, verwenden Sie
|
||||||
Starten Sie Nginx neu (und PHP-FPM, falls ein neuer Listener erstellt wurde):
|
Starten Sie Nginx neu (und PHP-FPM, falls ein neuer Listener erstellt wurde):
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart nginx-mailcow
|
docker-compose restart nginx-mailcow
|
||||||
docker compose restart php-fpm-mailcow
|
docker-compose restart php-fpm-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -113,6 +113,6 @@ If PHP is to be included in a custom site, please use the PHP-FPM listener on ph
|
||||||
Restart Nginx (and PHP-FPM, if a new listener was created):
|
Restart Nginx (and PHP-FPM, if a new listener was created):
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart nginx-mailcow
|
docker-compose restart nginx-mailcow
|
||||||
docker compose restart php-fpm-mailcow
|
docker-compose restart php-fpm-mailcow
|
||||||
```
|
```
|
||||||
|
|
|
@ -26,7 +26,7 @@ server {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Speichern Sie und starten Sie Nginx neu: `docker compose restart nginx-mailcow`.
|
Speichern Sie und starten Sie Nginx neu: `docker-compose restart nginx-mailcow`.
|
||||||
|
|
||||||
Ă–ffnen Sie nun `mailcow.conf` und suchen Sie `ADDITIONAL_SAN`.
|
Ă–ffnen Sie nun `mailcow.conf` und suchen Sie `ADDITIONAL_SAN`.
|
||||||
FĂĽgen Sie `webmail.example.org` zu diesem Array hinzu, verwenden Sie keine AnfĂĽhrungszeichen!
|
FĂĽgen Sie `webmail.example.org` zu diesem Array hinzu, verwenden Sie keine AnfĂĽhrungszeichen!
|
||||||
|
@ -35,4 +35,4 @@ FĂĽgen Sie `webmail.example.org` zu diesem Array hinzu, verwenden Sie keine Anf
|
||||||
ADDITIONAL_SAN=webmail.example.org
|
ADDITIONAL_SAN=webmail.example.org
|
||||||
```
|
```
|
||||||
|
|
||||||
Führen Sie `docker compose up -d` aus. Siehe "acme-mailcow" und "nginx-mailcow" Logs, wenn etwas fehlschlägt.
|
Führen Sie `docker-compose up -d` aus. Siehe "acme-mailcow" und "nginx-mailcow" Logs, wenn etwas fehlschlägt.
|
|
@ -26,7 +26,7 @@ server {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Save and restart Nginx: `docker compose restart nginx-mailcow`.
|
Save and restart Nginx: `docker-compose restart nginx-mailcow`.
|
||||||
|
|
||||||
Now open `mailcow.conf` and find `ADDITIONAL_SAN`.
|
Now open `mailcow.conf` and find `ADDITIONAL_SAN`.
|
||||||
Add `webmail.example.org` to this array, don't use quotes!
|
Add `webmail.example.org` to this array, don't use quotes!
|
||||||
|
@ -35,4 +35,4 @@ Add `webmail.example.org` to this array, don't use quotes!
|
||||||
ADDITIONAL_SAN=webmail.example.org
|
ADDITIONAL_SAN=webmail.example.org
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d`. See "acme-mailcow" and "nginx-mailcow" logs if anything fails.
|
Run `docker-compose up -d`. See "acme-mailcow" and "nginx-mailcow" logs if anything fails.
|
|
@ -3,5 +3,5 @@
|
||||||
Starten Sie Postfix neu:
|
Starten Sie Postfix neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
|
@ -3,5 +3,5 @@ Open `data/conf/postfix/extra.cf` and set the `message_size_limit` accordingly i
|
||||||
Restart Postfix:
|
Restart Postfix:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
|
@ -21,7 +21,7 @@ smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sasl_
|
||||||
Postmap auf check_sasl_access ausfĂĽhren:
|
Postmap auf check_sasl_access ausfĂĽhren:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
|
docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
|
||||||
```
|
```
|
||||||
|
|
||||||
Starten Sie den Postfix-Container neu.
|
Starten Sie den Postfix-Container neu.
|
||||||
|
|
|
@ -21,7 +21,7 @@ smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sasl_
|
||||||
Run postmap on check_sasl_access:
|
Run postmap on check_sasl_access:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
|
docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart the Postfix container.
|
Restart the Postfix container.
|
|
@ -7,5 +7,5 @@ Syslog-ng wurde so konfiguriert, dass es diese Warnungen ausblendet, während Po
|
||||||
Starten Sie `postfix-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen:
|
Starten Sie `postfix-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
|
@ -7,5 +7,5 @@ Syslog-ng was configured to hide those warnings while Postfix is running, to not
|
||||||
Restart `postfix-mailcow` to apply your changes:
|
Restart `postfix-mailcow` to apply your changes:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
|
@ -19,7 +19,7 @@ Bearbeiten Sie `data/conf/postfix/extra.cf`:
|
||||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 192.168.2.0/24
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 192.168.2.0/24
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose restart postfix-mailcow` aus, um Ihre neuen Einstellungen zu ĂĽbernehmen.
|
FĂĽhren Sie `docker-compose restart postfix-mailcow` aus, um Ihre neuen Einstellungen zu ĂĽbernehmen.
|
||||||
|
|
||||||
### IPv6-Hosts/Subnets
|
### IPv6-Hosts/Subnets
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Bearbeiten Sie `data/conf/postfix/extra.cf`:
|
||||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 [2001:db8::]/32
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 [2001:db8::]/32
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose restart postfix-mailcow` aus, um Ihre neuen Einstellungen zu ĂĽbernehmen.
|
FĂĽhren Sie `docker-compose restart postfix-mailcow` aus, um Ihre neuen Einstellungen zu ĂĽbernehmen.
|
||||||
|
|
||||||
!!! Info
|
!!! Info
|
||||||
Weitere Informationen ĂĽber mynetworks finden Sie in der [Postfix-Dokumentation](http://www.postfix.org/postconf.5.html#mynetworks).
|
Weitere Informationen ĂĽber mynetworks finden Sie in der [Postfix-Dokumentation](http://www.postfix.org/postconf.5.html#mynetworks).
|
||||||
|
|
|
@ -19,7 +19,7 @@ Edit `data/conf/postfix/extra.cf`:
|
||||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 192.168.2.0/24
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 192.168.2.0/24
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose restart postfix-mailcow` to apply your new settings.
|
Run `docker-compose restart postfix-mailcow` to apply your new settings.
|
||||||
|
|
||||||
### IPv6 hosts/subnets
|
### IPv6 hosts/subnets
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Edit `data/conf/postfix/extra.cf`:
|
||||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 [2001:db8::]/32
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [fe80::]/10 172.22.1.0/24 [fd4d:6169:6c63:6f77::]/64 [2001:db8::]/32
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose restart postfix-mailcow` to apply your new settings.
|
Run `docker-compose restart postfix-mailcow` to apply your new settings.
|
||||||
|
|
||||||
!!! Info
|
!!! Info
|
||||||
More information about mynetworks can be found in the [Postfix documentation](http://www.postfix.org/postconf.5.html#mynetworks).
|
More information about mynetworks can be found in the [Postfix documentation](http://www.postfix.org/postconf.5.html#mynetworks).
|
|
@ -5,7 +5,7 @@ Redis wird als Key-Value-Speicher fĂĽr die Einstellungen und Daten von rspamd un
|
||||||
Um sich mit dem redis cli zu verbinden, fĂĽhren Sie aus:
|
Um sich mit dem redis cli zu verbinden, fĂĽhren Sie aus:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli
|
docker-compose exec redis-mailcow redis-cli
|
||||||
```
|
```
|
||||||
|
|
||||||
### Fehlersuche
|
### Fehlersuche
|
||||||
|
@ -17,7 +17,7 @@ Hier sind einige nĂĽtzliche Befehle fĂĽr den redis-cli zur Fehlersuche:
|
||||||
Ăśberwacht alle vom Server empfangenen Anfragen in Echtzeit:
|
Ăśberwacht alle vom Server empfangenen Anfragen in Echtzeit:
|
||||||
|
|
||||||
```
|
```
|
||||||
# docker compose exec redis-mailcow redis-cli
|
# docker-compose exec redis-mailcow redis-cli
|
||||||
127.0.0.1:6379> ĂĽberwachen
|
127.0.0.1:6379> ĂĽberwachen
|
||||||
OK
|
OK
|
||||||
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
||||||
|
|
|
@ -5,7 +5,7 @@ Redis is used as a key-value store for rspamd's and (some of) mailcow's settings
|
||||||
To connect to the redis cli execute:
|
To connect to the redis cli execute:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli
|
docker-compose exec redis-mailcow redis-cli
|
||||||
```
|
```
|
||||||
|
|
||||||
### Debugging
|
### Debugging
|
||||||
|
@ -17,7 +17,7 @@ Here are some useful commands for the redis-cli for debugging:
|
||||||
Listens for all requests received by the server in real time:
|
Listens for all requests received by the server in real time:
|
||||||
|
|
||||||
```
|
```
|
||||||
# docker compose exec redis-mailcow redis-cli
|
# docker-compose exec redis-mailcow redis-cli
|
||||||
127.0.0.1:6379> monitor
|
127.0.0.1:6379> monitor
|
||||||
OK
|
OK
|
||||||
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
||||||
|
|
|
@ -19,9 +19,9 @@ Sie können einen Einzeiler verwenden, um Mails im Klartextformat (unkomprimiert
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ham
|
# Ham
|
||||||
for file in /my/folder/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
|
for file in /my/folder/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
|
||||||
# Spam
|
# Spam
|
||||||
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
|
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
|
||||||
```
|
```
|
||||||
|
|
||||||
Erwägen Sie, einen lokalen Ordner als neues Volume an `rspamd-mailcow` in `docker-compose.yml` anzuhängen und die gegebenen Dateien innerhalb des Containers zu lernen. Dies kann als Workaround verwendet werden, um komprimierte Daten mit zcat zu parsen. Beispiel:
|
Erwägen Sie, einen lokalen Ordner als neues Volume an `rspamd-mailcow` in `docker-compose.yml` anzuhängen und die gegebenen Dateien innerhalb des Containers zu lernen. Dies kann als Workaround verwendet werden, um komprimierte Daten mit zcat zu parsen. Beispiel:
|
||||||
|
@ -44,21 +44,21 @@ cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
|
||||||
**Bayes-Daten zurĂĽcksetzen**
|
**Bayes-Daten zurĂĽcksetzen**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Neurale Daten zurĂĽcksetzen**
|
**Neurale Daten zurĂĽcksetzen**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Fuzzy-Daten zurĂĽcksetzen**
|
**Fuzzy-Daten zurĂĽcksetzen**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Wir mĂĽssen zuerst das redis-cli eingeben:
|
# Wir mĂĽssen zuerst das redis-cli eingeben:
|
||||||
docker compose exec redis-mailcow redis-cli
|
docker-compose exec redis-mailcow redis-cli
|
||||||
# In redis-cli:
|
# In redis-cli:
|
||||||
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
|
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
|
||||||
```
|
```
|
||||||
|
@ -76,8 +76,8 @@ Wenn redis-cli sich beschwert ĂĽber...
|
||||||
## CLI-Werkzeuge
|
## CLI-Werkzeuge
|
||||||
|
|
||||||
``bash
|
``bash
|
||||||
docker compose exec rspamd-mailcow rspamc --help
|
docker-compose exec rspamd-mailcow rspamc --help
|
||||||
docker compose exec rspamd-mailcow rspamadm --help
|
docker-compose exec rspamd-mailcow rspamadm --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## Greylisting deaktivieren
|
## Greylisting deaktivieren
|
||||||
|
@ -94,7 +94,7 @@ FĂĽgen Sie die Zeile hinzu:
|
||||||
enabled = false;
|
enabled = false;
|
||||||
```
|
```
|
||||||
|
|
||||||
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker compose restart rspamd-mailcow`
|
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker-compose restart rspamd-mailcow`
|
||||||
|
|
||||||
## Spamfilter-Schwellenwerte (global)
|
## Spamfilter-Schwellenwerte (global)
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ add_header = 8;
|
||||||
greylist = 7;
|
greylist = 7;
|
||||||
```
|
```
|
||||||
|
|
||||||
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker compose restart rspamd-mailcow`
|
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker-compose restart rspamd-mailcow`
|
||||||
|
|
||||||
Bestehende Einstellungen der Benutzer werden nicht ĂĽberschrieben!
|
Bestehende Einstellungen der Benutzer werden nicht ĂĽberschrieben!
|
||||||
|
|
||||||
|
@ -114,9 +114,9 @@ Um benutzerdefinierte Schwellenwerte zurĂĽckzusetzen, fĂĽhren Sie aus:
|
||||||
|
|
||||||
```
|
```
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
||||||
# oder:
|
# oder:
|
||||||
# docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
# docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Benutzerdefinierte Ablehnungsnachrichten
|
## Benutzerdefinierte Ablehnungsnachrichten
|
||||||
|
@ -127,7 +127,7 @@ Die Standard-Spam-Reject-Meldung kann durch HinzufĂĽgen einer neuen Datei `data/
|
||||||
reject_message = "Meine eigene Ablehnungsnachricht";
|
reject_message = "Meine eigene Ablehnungsnachricht";
|
||||||
```
|
```
|
||||||
|
|
||||||
Speichern Sie die Datei und starten Sie Rspamd neu: `docker compose restart rspamd-mailcow`.
|
Speichern Sie die Datei und starten Sie Rspamd neu: `docker-compose restart rspamd-mailcow`.
|
||||||
|
|
||||||
Waehrend das oben genannte fuer abgelehnte Mails mit einem hohen Spam-Score funktioniert, ignorieren Prefilter-Aktionen diese Einstellung. FĂĽr diese Karten muss das Multimap-Modul in Rspamd angepasst werden:
|
Waehrend das oben genannte fuer abgelehnte Mails mit einem hohen Spam-Score funktioniert, ignorieren Prefilter-Aktionen diese Einstellung. FĂĽr diese Karten muss das Multimap-Modul in Rspamd angepasst werden:
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ GLOBAL_RCPT_BL {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Speichern Sie die Datei und starten Sie Rspamd neu: `docker compose restart rspamd-mailcow`.
|
3. Speichern Sie die Datei und starten Sie Rspamd neu: `docker-compose restart rspamd-mailcow`.
|
||||||
|
|
||||||
## Verwerfen statt zurĂĽckweisen
|
## Verwerfen statt zurĂĽckweisen
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ discard_on_reject = true;
|
||||||
Starten Sie Rspamd neu:
|
Starten Sie Rspamd neu:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose restart rspamd-mailcow
|
docker-compose restart rspamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
## Lösche alle Ratelimit-Schlüssel
|
## Lösche alle Ratelimit-Schlüssel
|
||||||
|
@ -167,7 +167,7 @@ docker compose restart rspamd-mailcow
|
||||||
Wenn Sie das UI nicht verwenden wollen und stattdessen alle Schlüssel in der Redis-Datenbank löschen wollen, können Sie redis-cli für diese Aufgabe verwenden:
|
Wenn Sie das UI nicht verwenden wollen und stattdessen alle Schlüssel in der Redis-Datenbank löschen wollen, können Sie redis-cli für diese Aufgabe verwenden:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow sh
|
docker-compose exec redis-mailcow sh
|
||||||
# Unlink (verfügbar in Redis >=4.) löscht im Hintergrund
|
# Unlink (verfügbar in Redis >=4.) löscht im Hintergrund
|
||||||
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
||||||
```
|
```
|
||||||
|
@ -175,7 +175,7 @@ redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
||||||
Starten Sie Rspamd neu:
|
Starten Sie Rspamd neu:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh
|
docker-compose exec redis-mailcow sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Erneutes Senden von Quarantäne-Benachrichtigungen auslösen
|
## Erneutes Senden von Quarantäne-Benachrichtigungen auslösen
|
||||||
|
@ -183,7 +183,7 @@ docker compose exec redis-mailcow sh
|
||||||
Sollte nur zur Fehlersuche verwendet werden!
|
Sollte nur zur Fehlersuche verwendet werden!
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow bash
|
docker-compose exec dovecot-mailcow bash
|
||||||
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
|
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
|
||||||
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
||||||
quarantine_notify.py
|
quarantine_notify.py
|
||||||
|
@ -203,7 +203,7 @@ Bearbeiten Sie `data/conf/rspamd/local.d/history_redis.conf`:
|
||||||
nrows = 1000; # Ă„ndern Sie diesen Wert
|
nrows = 1000; # Ă„ndern Sie diesen Wert
|
||||||
```
|
```
|
||||||
|
|
||||||
Starten Sie anschlieĂźend Rspamd neu: `docker compose restart rspamd-mailcow`
|
Starten Sie anschlieĂźend Rspamd neu: `docker-compose restart rspamd-mailcow`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,9 @@ You can use a one-liner to learn mail in plain-text (uncompressed) format:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ham
|
# Ham
|
||||||
for file in /my/folder/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
|
for file in /my/folder/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
|
||||||
# Spam
|
# Spam
|
||||||
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
|
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
|
||||||
```
|
```
|
||||||
|
|
||||||
Consider attaching a local folder as new volume to `rspamd-mailcow` in `docker-compose.yml` and learn given files inside the container. This can be used as workaround to parse compressed data with zcat. Example:
|
Consider attaching a local folder as new volume to `rspamd-mailcow` in `docker-compose.yml` and learn given files inside the container. This can be used as workaround to parse compressed data with zcat. Example:
|
||||||
|
@ -44,21 +44,21 @@ cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
|
||||||
**Reset Bayes data**
|
**Reset Bayes data**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Reset Neural data**
|
**Reset Neural data**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
|
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Reset Fuzzy data**
|
**Reset Fuzzy data**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# We need to enter the redis-cli first:
|
# We need to enter the redis-cli first:
|
||||||
docker compose exec redis-mailcow redis-cli
|
docker-compose exec redis-mailcow redis-cli
|
||||||
# In redis-cli:
|
# In redis-cli:
|
||||||
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
|
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
|
||||||
```
|
```
|
||||||
|
@ -77,8 +77,8 @@ If redis-cli complains about...
|
||||||
## CLI tools
|
## CLI tools
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec rspamd-mailcow rspamc --help
|
docker-compose exec rspamd-mailcow rspamc --help
|
||||||
docker compose exec rspamd-mailcow rspamadm --help
|
docker-compose exec rspamd-mailcow rspamadm --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## Disable Greylisting
|
## Disable Greylisting
|
||||||
|
@ -95,7 +95,7 @@ Add the line:
|
||||||
enabled = false;
|
enabled = false;
|
||||||
```
|
```
|
||||||
|
|
||||||
Save the file and restart "rspamd-mailcow": `docker compose restart rspamd-mailcow`
|
Save the file and restart "rspamd-mailcow": `docker-compose restart rspamd-mailcow`
|
||||||
|
|
||||||
## Spam filter thresholds (global)
|
## Spam filter thresholds (global)
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ add_header = 8;
|
||||||
greylist = 7;
|
greylist = 7;
|
||||||
```
|
```
|
||||||
|
|
||||||
Save the file and restart "rspamd-mailcow": `docker compose restart rspamd-mailcow`
|
Save the file and restart "rspamd-mailcow": `docker-compose restart rspamd-mailcow`
|
||||||
|
|
||||||
Existing settings of users will not be overwritten!
|
Existing settings of users will not be overwritten!
|
||||||
|
|
||||||
|
@ -115,9 +115,9 @@ To reset custom defined thresholds, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
||||||
# or:
|
# or:
|
||||||
# docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
# docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Custom reject messages
|
## Custom reject messages
|
||||||
|
@ -128,7 +128,7 @@ The default spam reject message can be changed by adding a new file `data/conf/r
|
||||||
reject_message = "My custom reject message";
|
reject_message = "My custom reject message";
|
||||||
```
|
```
|
||||||
|
|
||||||
Save the file and restart Rspamd: `docker compose restart rspamd-mailcow`.
|
Save the file and restart Rspamd: `docker-compose restart rspamd-mailcow`.
|
||||||
|
|
||||||
While the above works for rejected mails with a high spam score, prefilter reject actions will ignore this setting. For these maps, the multimap module in Rspamd needs to be adjusted:
|
While the above works for rejected mails with a high spam score, prefilter reject actions will ignore this setting. For these maps, the multimap module in Rspamd needs to be adjusted:
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ GLOBAL_RCPT_BL {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Save the file and restart Rspamd: `docker compose restart rspamd-mailcow`.
|
3. Save the file and restart Rspamd: `docker-compose restart rspamd-mailcow`.
|
||||||
|
|
||||||
## Discard instead of reject
|
## Discard instead of reject
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ discard_on_reject = true;
|
||||||
Restart Rspamd:
|
Restart Rspamd:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose restart rspamd-mailcow
|
docker-compose restart rspamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
## Wipe all ratelimit keys
|
## Wipe all ratelimit keys
|
||||||
|
@ -168,7 +168,7 @@ docker compose restart rspamd-mailcow
|
||||||
If you don't want to use the UI and instead wipe all keys in the Redis database, you can use redis-cli for that task:
|
If you don't want to use the UI and instead wipe all keys in the Redis database, you can use redis-cli for that task:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow sh
|
docker-compose exec redis-mailcow sh
|
||||||
# Unlink (available in Redis >=4.) will delete in the backgronud
|
# Unlink (available in Redis >=4.) will delete in the backgronud
|
||||||
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
||||||
```
|
```
|
||||||
|
@ -176,7 +176,7 @@ redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
||||||
Restart Rspamd:
|
Restart Rspamd:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose exec redis-mailcow sh
|
docker-compose exec redis-mailcow sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Trigger a resend of quarantine notifications
|
## Trigger a resend of quarantine notifications
|
||||||
|
@ -184,7 +184,7 @@ docker compose exec redis-mailcow sh
|
||||||
Should be used for debugging only!
|
Should be used for debugging only!
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec dovecot-mailcow bash
|
docker-compose exec dovecot-mailcow bash
|
||||||
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
|
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
|
||||||
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
||||||
quarantine_notify.py
|
quarantine_notify.py
|
||||||
|
@ -204,4 +204,4 @@ Edit `data/conf/rspamd/local.d/history_redis.conf`:
|
||||||
nrows = 1000; # change this value
|
nrows = 1000; # change this value
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart Rspamd afterwards: `docker compose restart rspamd-mailcow`
|
Restart Rspamd afterwards: `docker-compose restart rspamd-mailcow`
|
||||||
|
|
|
@ -8,7 +8,7 @@ Sie können die mitgelieferte `custom-theme.js` als Beispiel verwenden, indem Si
|
||||||
Nachdem Sie `data/conf/sogo/custom-theme.js` modifiziert und Ă„nderungen an Ihrem neuen SOGo-Theme vorgenommen haben, mĂĽssen Sie
|
Nachdem Sie `data/conf/sogo/custom-theme.js` modifiziert und Ă„nderungen an Ihrem neuen SOGo-Theme vorgenommen haben, mĂĽssen Sie
|
||||||
|
|
||||||
1. Bearbeiten Sie `data/conf/sogo/sogo.conf` und fĂĽgen Sie `SOGoUIxDebugEnabled = YES;` ein.
|
1. Bearbeiten Sie `data/conf/sogo/sogo.conf` und fĂĽgen Sie `SOGoUIxDebugEnabled = YES;` ein.
|
||||||
2. SOGo und Memcached Container neu starten, indem man `docker compose restart memcached-mailcow sogo-mailcow` ausfĂĽhrt.
|
2. SOGo und Memcached Container neu starten, indem man `docker-compose restart memcached-mailcow sogo-mailcow` ausfĂĽhrt.
|
||||||
3. SOGo im Browser öffnen
|
3. SOGo im Browser öffnen
|
||||||
4. öffnen Sie die Entwicklerkonsole des Browsers, normalerweise ist die Tastenkombination F12
|
4. öffnen Sie die Entwicklerkonsole des Browsers, normalerweise ist die Tastenkombination F12
|
||||||
5. nur wenn Sie Firefox benutzen: schreiben Sie mit der Hand in die Entwicklerkonsole `allow pasting` und drĂĽcken Sie Enter
|
5. nur wenn Sie Firefox benutzen: schreiben Sie mit der Hand in die Entwicklerkonsole `allow pasting` und drĂĽcken Sie Enter
|
||||||
|
@ -33,8 +33,8 @@ Dienste:
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
||||||
```
|
```
|
||||||
11. fĂĽhren Sie `docker compose up -d` aus
|
11. fĂĽhren Sie `docker-compose up -d` aus
|
||||||
12. AusfĂĽhren von `docker compose restart memcached-mailcow`
|
12. AusfĂĽhren von `docker-compose restart memcached-mailcow`
|
||||||
|
|
||||||
## ZurĂĽcksetzen auf das SOGo Standardthema
|
## ZurĂĽcksetzen auf das SOGo Standardthema
|
||||||
1. checken Sie `data/conf/sogo/custom-theme.js` aus, indem Sie `git fetch ; git checkout origin/master data/conf/sogo/custom-theme.js data/conf/sogo/custom-theme.js` ausfĂĽhren
|
1. checken Sie `data/conf/sogo/custom-theme.js` aus, indem Sie `git fetch ; git checkout origin/master data/conf/sogo/custom-theme.js data/conf/sogo/custom-theme.js` ausfĂĽhren
|
||||||
|
@ -64,18 +64,18 @@ und ersetzen Sie es durch:
|
||||||
```
|
```
|
||||||
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
||||||
```
|
```
|
||||||
4. fĂĽhren Sie `docker compose up -d` aus
|
4. fĂĽhren Sie `docker-compose up -d` aus
|
||||||
5. Starten Sie `docker compose restart memcached-mailcow`.
|
5. Starten Sie `docker-compose restart memcached-mailcow`.
|
||||||
|
|
||||||
## Favicon ändern
|
## Favicon ändern
|
||||||
mailcow-Builds nach dem 31. Januar 2021 können SOGo's Favicon ändern, indem sie `data/conf/sogo/custom-favicon.ico` für SOGo und `data/web/favicon.png` für mailcow UI ersetzen.
|
mailcow-Builds nach dem 31. Januar 2021 können SOGo's Favicon ändern, indem sie `data/conf/sogo/custom-favicon.ico` für SOGo und `data/web/favicon.png` für mailcow UI ersetzen.
|
||||||
**Anmerkung**: Sie können `.png` Favicons für SOGo verwenden, indem Sie sie in `custom-favicon.ico` umbenennen.
|
**Anmerkung**: Sie können `.png` Favicons für SOGo verwenden, indem Sie sie in `custom-favicon.ico` umbenennen.
|
||||||
Für beide, SOGo und mailcow UI Favicons, müssen Sie eine der Standardgrößen verwenden: 16x16, 32x32, 64x64, 128x128 und 256x256.
|
Für beide, SOGo und mailcow UI Favicons, müssen Sie eine der Standardgrößen verwenden: 16x16, 32x32, 64x64, 128x128 und 256x256.
|
||||||
Nachdem Sie diese Datei ersetzt haben, mĂĽssen Sie SOGo und Memcached Container neu starten, indem Sie `docker compose restart memcached-mailcow sogo-mailcow` ausfĂĽhren.
|
Nachdem Sie diese Datei ersetzt haben, mĂĽssen Sie SOGo und Memcached Container neu starten, indem Sie `docker-compose restart memcached-mailcow sogo-mailcow` ausfĂĽhren.
|
||||||
|
|
||||||
## Logo ändern
|
## Logo ändern
|
||||||
Mailcow-Builds nach dem 21. Dezember 2018 können das SOGo-Logo ändern, indem sie die Datei `data/conf/sogo/sogo-full.svg` ersetzen oder erstellen (falls sie fehlt).
|
Mailcow-Builds nach dem 21. Dezember 2018 können das SOGo-Logo ändern, indem sie die Datei `data/conf/sogo/sogo-full.svg` ersetzen oder erstellen (falls sie fehlt).
|
||||||
Nachdem Sie diese Datei ersetzt haben, mĂĽssen Sie SOGo und Memcached Container neu starten, indem Sie `docker compose restart memcached-mailcow sogo-mailcow` ausfĂĽhren.
|
Nachdem Sie diese Datei ersetzt haben, mĂĽssen Sie SOGo und Memcached Container neu starten, indem Sie `docker-compose restart memcached-mailcow sogo-mailcow` ausfĂĽhren.
|
||||||
|
|
||||||
## Domains verbinden (untereinander sichtbar machen)
|
## Domains verbinden (untereinander sichtbar machen)
|
||||||
Domains sind normalerweise voneinander isoliert.
|
Domains sind normalerweise voneinander isoliert.
|
||||||
|
@ -97,15 +97,15 @@ Suche...
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
SOGo neu starten: `docker compose restart sogo-mailcow`
|
SOGo neu starten: `docker-compose restart sogo-mailcow`
|
||||||
|
|
||||||
## Deaktivieren Sie die Passwortänderung
|
## Deaktivieren Sie die Passwortänderung
|
||||||
|
|
||||||
Bearbeiten Sie `data/conf/sogo/sogo.conf` und **ändern** Sie `SOGoPasswordChangeEnabled` auf `NO`. Bitte fügen Sie keinen neuen Parameter hinzu.
|
Bearbeiten Sie `data/conf/sogo/sogo.conf` und **ändern** Sie `SOGoPasswordChangeEnabled` auf `NO`. Bitte fügen Sie keinen neuen Parameter hinzu.
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose restart memcached-mailcow sogo-mailcow` aus, um die Ă„nderungen zu aktivieren.
|
FĂĽhren Sie `docker-compose restart memcached-mailcow sogo-mailcow` aus, um die Ă„nderungen zu aktivieren.
|
||||||
|
|
||||||
## TOTP zurĂĽcksetzen / TOTP deaktivieren
|
## TOTP zurĂĽcksetzen / TOTP deaktivieren
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'` aus dem mailcow Verzeichnis aus.
|
FĂĽhren Sie `docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'` aus dem mailcow Verzeichnis aus.
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ You can use the provided `custom-theme.js` as an example starting point by remov
|
||||||
After you modified `data/conf/sogo/custom-theme.js` and made changes to your new SOGo theme you need to
|
After you modified `data/conf/sogo/custom-theme.js` and made changes to your new SOGo theme you need to
|
||||||
|
|
||||||
1. edit `data/conf/sogo/sogo.conf` and append/set `SOGoUIxDebugEnabled = YES;`
|
1. edit `data/conf/sogo/sogo.conf` and append/set `SOGoUIxDebugEnabled = YES;`
|
||||||
2. restart SOGo and Memcached containers by executing `docker compose restart memcached-mailcow sogo-mailcow`.
|
2. restart SOGo and Memcached containers by executing `docker-compose restart memcached-mailcow sogo-mailcow`.
|
||||||
3. open SOGo in browser
|
3. open SOGo in browser
|
||||||
4. open browser developer console, usually shortcut is F12
|
4. open browser developer console, usually shortcut is F12
|
||||||
5. only if you use Firefox: write by hands in dev console `allow pasting` and press enter
|
5. only if you use Firefox: write by hands in dev console `allow pasting` and press enter
|
||||||
|
@ -33,8 +33,8 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
||||||
```
|
```
|
||||||
11. run `docker compose up -d`
|
11. run `docker-compose up -d`
|
||||||
12. run `docker compose restart memcached-mailcow`
|
12. run `docker-compose restart memcached-mailcow`
|
||||||
|
|
||||||
## Reset to SOGo default theme
|
## Reset to SOGo default theme
|
||||||
1. checkout `data/conf/sogo/custom-theme.js` by executing `git fetch ; git checkout origin/master data/conf/sogo/custom-theme.js data/conf/sogo/custom-theme.js`
|
1. checkout `data/conf/sogo/custom-theme.js` by executing `git fetch ; git checkout origin/master data/conf/sogo/custom-theme.js data/conf/sogo/custom-theme.js`
|
||||||
|
@ -64,18 +64,18 @@ and replace it with:
|
||||||
```
|
```
|
||||||
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
||||||
```
|
```
|
||||||
4. run `docker compose up -d`
|
4. run `docker-compose up -d`
|
||||||
5. run `docker compose restart memcached-mailcow`
|
5. run `docker-compose restart memcached-mailcow`
|
||||||
|
|
||||||
## Change favicon
|
## Change favicon
|
||||||
mailcow builds after 31 January 2021 can change SOGo's favicon by replacing `data/conf/sogo/custom-favicon.ico` for SOGo and `data/web/favicon.png` for mailcow UI.
|
mailcow builds after 31 January 2021 can change SOGo's favicon by replacing `data/conf/sogo/custom-favicon.ico` for SOGo and `data/web/favicon.png` for mailcow UI.
|
||||||
**Note**: You can use `.png` favicons for SOGo by renaming them to `custom-favicon.ico`.
|
**Note**: You can use `.png` favicons for SOGo by renaming them to `custom-favicon.ico`.
|
||||||
For both SOGo and mailcow UI favicons you need use one of the standard dimensions: 16x16, 32x32, 64x64, 128x128 and 256x256.
|
For both SOGo and mailcow UI favicons you need use one of the standard dimensions: 16x16, 32x32, 64x64, 128x128 and 256x256.
|
||||||
After you replaced said file you need to restart SOGo and Memcached containers by executing `docker compose restart memcached-mailcow sogo-mailcow`.
|
After you replaced said file you need to restart SOGo and Memcached containers by executing `docker-compose restart memcached-mailcow sogo-mailcow`.
|
||||||
|
|
||||||
## Change logo
|
## Change logo
|
||||||
mailcow builds after 21 December 2018 can change SOGo's logo by replacing or creating (if missing) `data/conf/sogo/sogo-full.svg`.
|
mailcow builds after 21 December 2018 can change SOGo's logo by replacing or creating (if missing) `data/conf/sogo/sogo-full.svg`.
|
||||||
After you replaced said file you need to restart SOGo and Memcached containers by executing `docker compose restart memcached-mailcow sogo-mailcow`.
|
After you replaced said file you need to restart SOGo and Memcached containers by executing `docker-compose restart memcached-mailcow sogo-mailcow`.
|
||||||
|
|
||||||
## Connect domains
|
## Connect domains
|
||||||
Domains are usually isolated from eachother.
|
Domains are usually isolated from eachother.
|
||||||
|
@ -97,14 +97,14 @@ Search...
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart SOGo: `docker compose restart sogo-mailcow`
|
Restart SOGo: `docker-compose restart sogo-mailcow`
|
||||||
|
|
||||||
## Disable password changing
|
## Disable password changing
|
||||||
|
|
||||||
Edit `data/conf/sogo/sogo.conf` and **change** `SOGoPasswordChangeEnabled` to `NO`. Please do not add a new parameter.
|
Edit `data/conf/sogo/sogo.conf` and **change** `SOGoPasswordChangeEnabled` to `NO`. Please do not add a new parameter.
|
||||||
|
|
||||||
Run `docker compose restart memcached-mailcow sogo-mailcow` to activate the changes.
|
Run `docker-compose restart memcached-mailcow sogo-mailcow` to activate the changes.
|
||||||
|
|
||||||
## Reset TOTP / Disable TOTP
|
## Reset TOTP / Disable TOTP
|
||||||
|
|
||||||
Run `docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'` from within the mailcow directory.
|
Run `docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'` from within the mailcow directory.
|
||||||
|
|
|
@ -18,7 +18,7 @@ forward-zone:
|
||||||
Unbound neu starten:
|
Unbound neu starten:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart unbound-mailcow
|
docker-compose restart unbound-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,4 +31,4 @@ cp helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.over
|
||||||
|
|
||||||
Bearbeiten Sie `docker-compose.override.yml` und passen Sie die IP an.
|
Bearbeiten Sie `docker-compose.override.yml` und passen Sie die IP an.
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose down ; docker compose up -d` aus.
|
FĂĽhren Sie `docker-compose down ; docker-compose up -d` aus.
|
|
@ -18,7 +18,7 @@ forward-zone:
|
||||||
Restart Unbound:
|
Restart Unbound:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart unbound-mailcow
|
docker-compose restart unbound-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,4 +31,4 @@ cp helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.over
|
||||||
|
|
||||||
Edit `docker-compose.override.yml` and adjust the IP.
|
Edit `docker-compose.override.yml` and adjust the IP.
|
||||||
|
|
||||||
Run `docker compose down ; docker compose up -d`.
|
Run `docker-compose down ; docker-compose up -d`.
|
|
@ -23,7 +23,7 @@ Beispiel:
|
||||||
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
||||||
```
|
```
|
||||||
|
|
||||||
Um sie anzupassen, fĂĽgen Sie einfach die notwendigen Threshold Variablen (z.B. `MAILQ_THRESHOLD=10`) zu `mailcow.conf` hinzu und fĂĽhren `docker compose up -d` aus.
|
Um sie anzupassen, fĂĽgen Sie einfach die notwendigen Threshold Variablen (z.B. `MAILQ_THRESHOLD=10`) zu `mailcow.conf` hinzu und fĂĽhren `docker-compose up -d` aus.
|
||||||
|
|
||||||
|
|
||||||
### Threshold Beschreibungen
|
### Threshold Beschreibungen
|
||||||
|
|
|
@ -23,7 +23,7 @@ Example:
|
||||||
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
||||||
```
|
```
|
||||||
|
|
||||||
To adjust them just add necessary threshold variables (e.g. `MAILQ_THRESHOLD=10`) to `mailcow.conf` and run `docker compose up -d`.
|
To adjust them just add necessary threshold variables (e.g. `MAILQ_THRESHOLD=10`) to `mailcow.conf` and run `docker-compose up -d`.
|
||||||
|
|
||||||
|
|
||||||
### Thresholds descriptions
|
### Thresholds descriptions
|
||||||
|
|
|
@ -76,7 +76,7 @@ Mit WebAuthn gibt es die Möglichkeit, nur offizielle Fido Security Keys zu verw
|
||||||
|
|
||||||
Dies dient in erster Linie der Sicherheit, da es Administratoren ermöglicht, sicherzustellen, dass nur offizielle Hardware in ihrer Umgebung verwendet werden kann.
|
Dies dient in erster Linie der Sicherheit, da es Administratoren ermöglicht, sicherzustellen, dass nur offizielle Hardware in ihrer Umgebung verwendet werden kann.
|
||||||
|
|
||||||
Um diese Funktion zu aktivieren, ändern Sie den Wert `WEBAUTHN_ONLY_TRUSTED_VENDORS` in mailcow.conf von `n` auf `y` und starten Sie die betroffenen Container mit `docker compose up -d` neu.
|
Um diese Funktion zu aktivieren, ändern Sie den Wert `WEBAUTHN_ONLY_TRUSTED_VENDORS` in mailcow.conf von `n` auf `y` und starten Sie die betroffenen Container mit `docker-compose up -d` neu.
|
||||||
|
|
||||||
Die mailcow wird nun die Vendor-Zertifikate verwenden, die sich in Ihrem mailcow-Verzeichnis unter `data/web/inc/lib/WebAuthn/rootCertificates` befinden.
|
Die mailcow wird nun die Vendor-Zertifikate verwenden, die sich in Ihrem mailcow-Verzeichnis unter `data/web/inc/lib/WebAuthn/rootCertificates` befinden.
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ With WebAuthn there is the possibility to use only official Fido Security Keys (
|
||||||
|
|
||||||
This is primarily for security purposes, as it allows administrators to ensure that only official hardware can be used in their environment.
|
This is primarily for security purposes, as it allows administrators to ensure that only official hardware can be used in their environment.
|
||||||
|
|
||||||
To enable this feature, change the value `WEBAUTHN_ONLY_TRUSTED_VENDORS` in mailcow.conf from `n` to `y` and restart the affected containers with `docker compose up -d`.
|
To enable this feature, change the value `WEBAUTHN_ONLY_TRUSTED_VENDORS` in mailcow.conf from `n` to `y` and restart the affected containers with `docker-compose up -d`.
|
||||||
|
|
||||||
The mailcow will now use the Vendor Certificates located in your mailcow directory under `data/web/inc/lib/WebAuthn/rootCertificates`.
|
The mailcow will now use the Vendor Certificates located in your mailcow directory under `data/web/inc/lib/WebAuthn/rootCertificates`.
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,11 @@ server {
|
||||||
Falls Sie den Parameter HTTP_BIND geändert haben, erstellen Sie den Container neu:
|
Falls Sie den Parameter HTTP_BIND geändert haben, erstellen Sie den Container neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Andernfalls starten Sie Nginx neu:
|
Andernfalls starten Sie Nginx neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart nginx-mailcow
|
docker-compose restart nginx-mailcow
|
||||||
```
|
```
|
|
@ -26,11 +26,11 @@ server {
|
||||||
In case you changed the HTTP_BIND parameter, recreate the container:
|
In case you changed the HTTP_BIND parameter, recreate the container:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Otherwise restart Nginx:
|
Otherwise restart Nginx:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart nginx-mailcow
|
docker-compose restart nginx-mailcow
|
||||||
```
|
```
|
|
@ -20,7 +20,7 @@ ssl_min_protocol = TLSv1
|
||||||
Starten Sie die betroffenen Dienste neu:
|
Starten Sie die betroffenen Dienste neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow dovecot-mailcow
|
docker-compose restart postfix-mailcow dovecot-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Tipp: Sie können TLS 1.2 in Windows 7 aktivieren.
|
Tipp: Sie können TLS 1.2 in Windows 7 aktivieren.
|
|
@ -20,7 +20,7 @@ ssl_min_protocol = TLSv1
|
||||||
Restart the affected services:
|
Restart the affected services:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow dovecot-mailcow
|
docker-compose restart postfix-mailcow dovecot-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Hint: You can enable TLS 1.2 in Windows 7.
|
Hint: You can enable TLS 1.2 in Windows 7.
|
|
@ -46,4 +46,4 @@ Der Wert von `MAILCOW_PASS_SCHEME` wird _immer_ verwendet, um neue Passwörter z
|
||||||
|
|
||||||
> Ich habe die Passwort-Hashes in der SQL-Tabelle "Mailbox" geändert und kann mich nicht anmelden.
|
> Ich habe die Passwort-Hashes in der SQL-Tabelle "Mailbox" geändert und kann mich nicht anmelden.
|
||||||
|
|
||||||
Eine "Ansicht" muss aktualisiert werden. Sie können dies durch einen Neustart von sogo-mailcow auslösen: `docker compose restart sogo-mailcow`
|
Eine "Ansicht" muss aktualisiert werden. Sie können dies durch einen Neustart von sogo-mailcow auslösen: `docker-compose restart sogo-mailcow`
|
|
@ -46,4 +46,4 @@ The value of `MAILCOW_PASS_SCHEME` will _always_ be used to encrypt new password
|
||||||
|
|
||||||
> I changed the password hashes in the "mailbox" SQL table and cannot login.
|
> I changed the password hashes in the "mailbox" SQL table and cannot login.
|
||||||
|
|
||||||
A "view" needs to be updated. You can trigger this by restarting sogo-mailcow: `docker compose restart sogo-mailcow`
|
A "view" needs to be updated. You can trigger this by restarting sogo-mailcow: `docker-compose restart sogo-mailcow`
|
|
@ -46,8 +46,8 @@ services:
|
||||||
Damit diese Änderungen wirksam werden, müssen Sie den Stack vollständig stoppen und dann neu starten, damit Container und Netzwerke neu erstellt werden:
|
Damit diese Änderungen wirksam werden, müssen Sie den Stack vollständig stoppen und dann neu starten, damit Container und Netzwerke neu erstellt werden:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
**3.** Deaktivieren Sie IPv6 in unbound-mailcow
|
**3.** Deaktivieren Sie IPv6 in unbound-mailcow
|
||||||
|
@ -64,7 +64,7 @@ Server:
|
||||||
unbound neu starten:
|
unbound neu starten:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart unbound-mailcow
|
docker-compose restart unbound-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
**4.** Deaktivieren Sie IPv6 in postfix-mailcow
|
**4.** Deaktivieren Sie IPv6 in postfix-mailcow
|
||||||
|
@ -79,7 +79,7 @@ inet_protocols = ipv4
|
||||||
Starten Sie Postfix neu:
|
Starten Sie Postfix neu:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
**5.** Wenn im Docker Daemon IPv6 komplett deaktiviert ist:
|
**5.** Wenn im Docker Daemon IPv6 komplett deaktiviert ist:
|
||||||
|
|
|
@ -46,8 +46,8 @@ services:
|
||||||
For these changes to be effective, you need to fully stop and then restart the stack, so containers and networks are recreated:
|
For these changes to be effective, you need to fully stop and then restart the stack, so containers and networks are recreated:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
**3.** Disable IPv6 in unbound-mailcow
|
**3.** Disable IPv6 in unbound-mailcow
|
||||||
|
@ -64,7 +64,7 @@ server:
|
||||||
Restart Unbound:
|
Restart Unbound:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart unbound-mailcow
|
docker-compose restart unbound-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
**4.** Disable IPv6 in postfix-mailcow
|
**4.** Disable IPv6 in postfix-mailcow
|
||||||
|
@ -79,7 +79,7 @@ inet_protocols = ipv4
|
||||||
Restart Postfix:
|
Restart Postfix:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
**5.** If your docker daemon completly disabled IPv6:
|
**5.** If your docker daemon completly disabled IPv6:
|
||||||
|
|
|
@ -52,7 +52,7 @@ services:
|
||||||
- rspamd-mailcow
|
- rspamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Starte `docker compose up -d`
|
Starte `docker-compose up -d`
|
||||||
|
|
||||||
## Senden Sie eine Kopie der Berichte an sich selbst
|
## Senden Sie eine Kopie der Berichte an sich selbst
|
||||||
|
|
||||||
|
@ -78,32 +78,32 @@ Dies kann nĂĽtzlich sein, wenn Sie...
|
||||||
PrĂĽfen Sie, wann der Berichtsplan zuletzt ausgefĂĽhrt wurde:
|
PrĂĽfen Sie, wann der Berichtsplan zuletzt ausgefĂĽhrt wurde:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
|
docker-compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
|
||||||
```
|
```
|
||||||
|
|
||||||
Sehen Sie sich die letzte Berichtsausgabe an:
|
Sehen Sie sich die letzte Berichtsausgabe an:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
|
docker-compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
|
||||||
```
|
```
|
||||||
|
|
||||||
Manuelles Auslösen eines DMARC-Berichts:
|
Manuelles Auslösen eines DMARC-Berichts:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow rspamadm dmarc_report
|
docker-compose exec rspamd-mailcow rspamadm dmarc_report
|
||||||
```
|
```
|
||||||
|
|
||||||
Bestätigen Sie, dass Rspamd Daten in Redis aufgezeichnet hat:
|
Bestätigen Sie, dass Rspamd Daten in Redis aufgezeichnet hat:
|
||||||
Ă„ndern Sie `20220428` in ein anderes interessantes Datum zum schauen.
|
Ă„ndern Sie `20220428` in ein anderes interessantes Datum zum schauen.
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli SMEMBERS "dmarc_idx;20220428"
|
docker-compose exec redis-mailcow redis-cli SMEMBERS "dmarc_idx;20220428"
|
||||||
```
|
```
|
||||||
|
|
||||||
Nehmen Sie eine der Zeilen aus der Ausgabe, die Sie interessiert, und fordern Sie sie an, z. B.:
|
Nehmen Sie eine der Zeilen aus der Ausgabe, die Sie interessiert, und fordern Sie sie an, z. B.:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli ZRANGE "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
docker-compose exec redis-mailcow redis-cli ZRANGE "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,9 +117,9 @@ Um den Zeitplan zu ändern:
|
||||||
|
|
||||||
1. Bearbeiten Sie `docker-compose.override.yml` und stellen Sie `ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"` auf einen gewĂĽnschten Wert, zum Beispiel auf `"@midnight"`
|
1. Bearbeiten Sie `docker-compose.override.yml` und stellen Sie `ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"` auf einen gewĂĽnschten Wert, zum Beispiel auf `"@midnight"`
|
||||||
|
|
||||||
2. FĂĽhren Sie `docker compose up -d` aus.
|
2. FĂĽhren Sie `docker-compose up -d` aus.
|
||||||
|
|
||||||
3. FĂĽhren Sie `docker compose restart ofelia-mailcow` aus
|
3. FĂĽhren Sie `docker-compose restart ofelia-mailcow` aus
|
||||||
|
|
||||||
## DMARC-Berichterstattung deaktivieren
|
## DMARC-Berichterstattung deaktivieren
|
||||||
|
|
||||||
|
@ -129,4 +129,4 @@ Zum Deaktivieren der Berichterstattung:
|
||||||
|
|
||||||
2. Machen Sie Änderungen in `docker-compose.override.yml` an `rspamd-mailcow` und `ofelia-mailcow` rückgängig
|
2. Machen Sie Änderungen in `docker-compose.override.yml` an `rspamd-mailcow` und `ofelia-mailcow` rückgängig
|
||||||
|
|
||||||
3. FĂĽhren Sie `docker compose up -d` aus
|
3. FĂĽhren Sie `docker-compose up -d` aus
|
||||||
|
|
|
@ -52,7 +52,7 @@ services:
|
||||||
- rspamd-mailcow
|
- rspamd-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d`
|
Run `docker-compose up -d`
|
||||||
|
|
||||||
## Send a copy reports to yourself
|
## Send a copy reports to yourself
|
||||||
|
|
||||||
|
@ -78,30 +78,30 @@ This can be useful if you...
|
||||||
Check when the report schedule last ran:
|
Check when the report schedule last ran:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
|
docker-compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
|
||||||
```
|
```
|
||||||
|
|
||||||
See the latest report output:
|
See the latest report output:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
|
docker-compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
|
||||||
```
|
```
|
||||||
|
|
||||||
Manually trigger a DMARC report:
|
Manually trigger a DMARC report:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec rspamd-mailcow rspamadm dmarc_report
|
docker-compose exec rspamd-mailcow rspamadm dmarc_report
|
||||||
```
|
```
|
||||||
|
|
||||||
Validate that Rspamd has recorded data in Redis:
|
Validate that Rspamd has recorded data in Redis:
|
||||||
Change `20220428` to date which you interested in.
|
Change `20220428` to date which you interested in.
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli SMEMBERS "dmarc_idx;20220428"
|
docker-compose exec redis-mailcow redis-cli SMEMBERS "dmarc_idx;20220428"
|
||||||
```
|
```
|
||||||
Take one of the lines from output you interested in and request it, f.e.:
|
Take one of the lines from output you interested in and request it, f.e.:
|
||||||
```
|
```
|
||||||
docker compose exec redis-mailcow redis-cli ZRANGE "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
docker-compose exec redis-mailcow redis-cli ZRANGE "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
||||||
```
|
```
|
||||||
|
|
||||||
## Change DMARC reporting frequency
|
## Change DMARC reporting frequency
|
||||||
|
@ -114,9 +114,9 @@ To change schedule:
|
||||||
|
|
||||||
1. Edit `docker-compose.override.yml` and a djust `ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"` to a desired value, for example to `"@midnight"`
|
1. Edit `docker-compose.override.yml` and a djust `ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"` to a desired value, for example to `"@midnight"`
|
||||||
|
|
||||||
2. Run `docker compose up -d`
|
2. Run `docker-compose up -d`
|
||||||
|
|
||||||
3. Run `docker compose restart ofelia-mailcow`
|
3. Run `docker-compose restart ofelia-mailcow`
|
||||||
|
|
||||||
## Disable DMARC Reporting
|
## Disable DMARC Reporting
|
||||||
|
|
||||||
|
@ -126,4 +126,4 @@ To disable reporting:
|
||||||
|
|
||||||
2. Revert changes done in `docker-compose.override.yml` to `rspamd-mailcow` and `ofelia-mailcow`
|
2. Revert changes done in `docker-compose.override.yml` to `rspamd-mailcow` and `ofelia-mailcow`
|
||||||
|
|
||||||
3. Run `docker compose up -d`
|
3. Run `docker-compose up -d`
|
||||||
|
|
|
@ -33,7 +33,7 @@ SQL_PORT=127.0.0.1:13306
|
||||||
SOLR_PORT=127.0.0.1:18983
|
SOLR_PORT=127.0.0.1:18983
|
||||||
```
|
```
|
||||||
|
|
||||||
Um Ihre Ă„nderungen zu ĂĽbernehmen, fĂĽhren Sie `docker compose down` gefolgt von `docker compose up -d` aus.
|
Um Ihre Ă„nderungen zu ĂĽbernehmen, fĂĽhren Sie `docker-compose down` gefolgt von `docker-compose up -d` aus.
|
||||||
|
|
||||||
## IPv6-Binding
|
## IPv6-Binding
|
||||||
|
|
||||||
|
@ -69,7 +69,4 @@ services:
|
||||||
- '[2001:db8:dead:beef::123]:443:443'
|
- '[2001:db8:dead:beef::123]:443:443'
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
Um Ihre Ă„nderungen zu ĂĽbernehmen, fĂĽhren Sie `docker-compose down` gefolgt von `docker-compose up -d` aus.
|
||||||
Alternativ kann auch die [::] Schreibweise benutzt werden um den jeweiligen Dienst auf allen IPv6 Interfaces lauschen zu lassen.
|
|
||||||
|
|
||||||
Um Ihre Ă„nderungen zu ĂĽbernehmen, fĂĽhren Sie `docker compose down` gefolgt von `docker compose up -d` aus.
|
|
|
@ -33,7 +33,7 @@ SQL_PORT=127.0.0.1:13306
|
||||||
SOLR_PORT=127.0.0.1:18983
|
SOLR_PORT=127.0.0.1:18983
|
||||||
```
|
```
|
||||||
|
|
||||||
To apply your changes, run `docker compose down` followed by `docker compose up -d`.
|
To apply your changes, run `docker-compose down` followed by `docker-compose up -d`.
|
||||||
|
|
||||||
## IPv6 binding
|
## IPv6 binding
|
||||||
|
|
||||||
|
@ -69,7 +69,4 @@ services:
|
||||||
- '[2001:db8:dead:beef::123]:443:443'
|
- '[2001:db8:dead:beef::123]:443:443'
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
To apply your changes, run `docker-compose down` followed by `docker-compose up -d`.
|
||||||
Alternatively, the [::] notation can be used to let the respective service listen on all IPv6 interfaces.
|
|
||||||
|
|
||||||
To apply your changes, run `docker compose down` followed by `docker compose up -d`.
|
|
|
@ -1,7 +1,7 @@
|
||||||
Das Logging in mailcow: dockerized besteht aus mehreren Stufen, ist aber immerhin wesentlich flexibler und einfacher in einen Logging-Daemon zu integrieren als bisher.
|
Das Logging in mailcow: dockerized besteht aus mehreren Stufen, ist aber immerhin wesentlich flexibler und einfacher in einen Logging-Daemon zu integrieren als bisher.
|
||||||
|
|
||||||
In Docker schreibt die containerisierte Anwendung (PID 1) ihre Ausgabe auf stdout. FĂĽr echte Ein-Anwendungs-Container funktioniert das sehr gut.
|
In Docker schreibt die containerisierte Anwendung (PID 1) ihre Ausgabe auf stdout. FĂĽr echte Ein-Anwendungs-Container funktioniert das sehr gut.
|
||||||
FĂĽhren Sie `docker compose logs --help` aus, um mehr zu erfahren.
|
FĂĽhren Sie `docker-compose logs --help` aus, um mehr zu erfahren.
|
||||||
|
|
||||||
Einige Container protokollieren oder streamen an mehrere Ziele.
|
Einige Container protokollieren oder streamen an mehrere Ziele.
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ FĂĽr Syslog:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Starten Sie den Docker-Daemon neu und fĂĽhren Sie `docker compose down && docker compose up -d` aus, um die Container mit dem neuen Protokollierungstreiber neu zu erstellen.
|
Starten Sie den Docker-Daemon neu und fĂĽhren Sie `docker-compose down && docker-compose up -d` aus, um die Container mit dem neuen Protokollierungstreiber neu zu erstellen.
|
||||||
|
|
||||||
### Log rotation
|
### Log rotation
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Logging in mailcow: dockerized consists of multiple stages, but is, after all, much more flexible and easier to integrate into a logging daemon than before.
|
Logging in mailcow: dockerized consists of multiple stages, but is, after all, much more flexible and easier to integrate into a logging daemon than before.
|
||||||
|
|
||||||
In Docker the containerized application (PID 1) writes its output to stdout. For real one-application containers this works just fine.
|
In Docker the containerized application (PID 1) writes its output to stdout. For real one-application containers this works just fine.
|
||||||
Run `docker compose logs --help` to learn more.
|
Run `docker-compose logs --help` to learn more.
|
||||||
|
|
||||||
Some containers log or stream to multiple destinations.
|
Some containers log or stream to multiple destinations.
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ For Syslog:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart the Docker daemon and run `docker compose down && docker compose up -d` to recreate the containers with the new logging driver.
|
Restart the Docker daemon and run `docker-compose down && docker-compose up -d` to recreate the containers with the new logging driver.
|
||||||
|
|
||||||
### Log rotation
|
### Log rotation
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ Dadurch werden auch die Bindungen innerhalb des Nginx-Containers geändert! Dies
|
||||||
|
|
||||||
**WICHTIG:** Verwenden Sie nicht Port 8081, 9081 oder 65510!
|
**WICHTIG:** Verwenden Sie nicht Port 8081, 9081 oder 65510!
|
||||||
|
|
||||||
Erzeugen Sie die betroffenen Container neu, indem Sie `docker compose up -d` ausfĂĽhren.
|
Erzeugen Sie die betroffenen Container neu, indem Sie `docker-compose up -d` ausfĂĽhren.
|
||||||
|
|
||||||
**Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!**
|
**Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!**
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ backend mailcow
|
||||||
In diesem Abschnitt gehen wir davon aus, dass Sie Ihren Traefik 2 `[certificatesresolvers]` in Ihrer Traefik-Konfigurationsdatei richtig konfiguriert haben und auch acme verwenden. Das folgende Beispiel verwendet Lets Encrypt, aber Sie können es gerne auf Ihren eigenen Zertifikatsresolver ändern. Eine grundlegende Traefik 2 toml-Konfigurationsdatei mit allen oben genannten Elementen, die für dieses Beispiel verwendet werden kann, finden Sie hier [traefik.toml](https://github.com/Frenzoid/TraefikBasicConfig/blob/master/traefik.toml), falls Sie eine solche Datei benötigen oder einen Hinweis, wie Sie Ihre Konfiguration anpassen können.
|
In diesem Abschnitt gehen wir davon aus, dass Sie Ihren Traefik 2 `[certificatesresolvers]` in Ihrer Traefik-Konfigurationsdatei richtig konfiguriert haben und auch acme verwenden. Das folgende Beispiel verwendet Lets Encrypt, aber Sie können es gerne auf Ihren eigenen Zertifikatsresolver ändern. Eine grundlegende Traefik 2 toml-Konfigurationsdatei mit allen oben genannten Elementen, die für dieses Beispiel verwendet werden kann, finden Sie hier [traefik.toml](https://github.com/Frenzoid/TraefikBasicConfig/blob/master/traefik.toml), falls Sie eine solche Datei benötigen oder einen Hinweis, wie Sie Ihre Konfiguration anpassen können.
|
||||||
|
|
||||||
Zuallererst werden wir den acme-mailcow-Container deaktivieren, da wir die von traefik bereitgestellten Zertifikate verwenden werden.
|
Zuallererst werden wir den acme-mailcow-Container deaktivieren, da wir die von traefik bereitgestellten Zertifikate verwenden werden.
|
||||||
Dazu mĂĽssen wir `SKIP_LETS_ENCRYPT=y` in unserer `mailcow.conf` setzen und `docker compose up -d` ausfĂĽhren, um die Ă„nderungen zu ĂĽbernehmen.
|
Dazu mĂĽssen wir `SKIP_LETS_ENCRYPT=y` in unserer `mailcow.conf` setzen und `docker-compose up -d` ausfĂĽhren, um die Ă„nderungen zu ĂĽbernehmen.
|
||||||
|
|
||||||
Dann erstellen wir eine `docker-compose.override.yml` Datei, um die Hauptdatei `docker-compose.yml` zu ĂĽberschreiben, die sich im Mailcow-Stammverzeichnis befindet.
|
Dann erstellen wir eine `docker-compose.override.yml` Datei, um die Hauptdatei `docker-compose.yml` zu ĂĽberschreiben, die sich im Mailcow-Stammverzeichnis befindet.
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ services:
|
||||||
network_mode: none
|
network_mode: none
|
||||||
volumes:
|
volumes:
|
||||||
# mounten Sie den Ordner, der Traefiks `acme.json' Datei enthält
|
# mounten Sie den Ordner, der Traefiks `acme.json' Datei enthält
|
||||||
# in diesem Fall wird Traefik von seinem eigenen docker compose in ../traefik gestartet
|
# in diesem Fall wird Traefik von seinem eigenen docker-compose in ../traefik gestartet
|
||||||
- ../traefik/data:/traefik:ro
|
- ../traefik/data:/traefik:ro
|
||||||
# SSL-Ordner von mailcow einhängen
|
# SSL-Ordner von mailcow einhängen
|
||||||
- ./data/assets/ssl/:/output:rw
|
- ./data/assets/ssl/:/output:rw
|
||||||
|
@ -230,13 +230,13 @@ networks:
|
||||||
external: true
|
external: true
|
||||||
```
|
```
|
||||||
|
|
||||||
Starten Sie die neuen Container mit `docker compose up -d`.
|
Starten Sie die neuen Container mit `docker-compose up -d`.
|
||||||
|
|
||||||
Da Traefik 2 ein acme v2 Format verwendet, um ALLE Lizenzen von allen Domains zu speichern, mĂĽssen wir einen Weg finden, die Zertifikate auszulagern. Zum GlĂĽck haben wir [diesen kleinen Container] (https://hub.docker.com/r/humenius/traefik-certs-dumper), der die Datei `acme.json` ĂĽber ein Volume und eine Variable `DOMAIN=example. org`, und damit wird der Container die `cert.pem` und `key.pem` Dateien ausgeben, dafĂĽr lassen wir einfach den `traefik-certs-dumper` Container laufen, binden das `/traefik` Volume an den Ordner, in dem unsere `acme.json` gespeichert ist, binden das `/output` Volume an unseren mailcow `data/assets/ssl/` Ordner, und setzen die `DOMAIN=example.org` Variable auf die Domain, von der wir die Zertifikate ausgeben wollen.
|
Da Traefik 2 ein acme v2 Format verwendet, um ALLE Lizenzen von allen Domains zu speichern, mĂĽssen wir einen Weg finden, die Zertifikate auszulagern. Zum GlĂĽck haben wir [diesen kleinen Container] (https://hub.docker.com/r/humenius/traefik-certs-dumper), der die Datei `acme.json` ĂĽber ein Volume und eine Variable `DOMAIN=example. org`, und damit wird der Container die `cert.pem` und `key.pem` Dateien ausgeben, dafĂĽr lassen wir einfach den `traefik-certs-dumper` Container laufen, binden das `/traefik` Volume an den Ordner, in dem unsere `acme.json` gespeichert ist, binden das `/output` Volume an unseren mailcow `data/assets/ssl/` Ordner, und setzen die `DOMAIN=example.org` Variable auf die Domain, von der wir die Zertifikate ausgeben wollen.
|
||||||
|
|
||||||
Dieser Container ĂĽberwacht die Datei `acme.json` auf Ă„nderungen und generiert die Dateien `cert.pem` und `key.pem` direkt in `data/assets/ssl/`, wobei der Pfad mit dem `/output`-Pfad des Containers verbunden ist.
|
Dieser Container ĂĽberwacht die Datei `acme.json` auf Ă„nderungen und generiert die Dateien `cert.pem` und `key.pem` direkt in `data/assets/ssl/`, wobei der Pfad mit dem `/output`-Pfad des Containers verbunden ist.
|
||||||
|
|
||||||
Sie können es über die Kommandozeile ausführen oder das [hier] gezeigte docker compose verwenden (https://hub.docker.com/r/humenius/traefik-certs-dumper).
|
Sie können es über die Kommandozeile ausführen oder das [hier] gezeigte docker-compose verwenden (https://hub.docker.com/r/humenius/traefik-certs-dumper).
|
||||||
|
|
||||||
Nachdem wir die Zertifikate ĂĽbertragen haben, mĂĽssen wir die Konfigurationen aus unseren Postfix- und Dovecot-Containern neu laden und die Zertifikate ĂĽberprĂĽfen. Wie das geht, sehen Sie [hier](https://mailcow.github.io/mailcow-dockerized-docs/de/post_installation/firststeps-ssl/#ein-eigenes-zertifikat-verwenden).
|
Nachdem wir die Zertifikate ĂĽbertragen haben, mĂĽssen wir die Konfigurationen aus unseren Postfix- und Dovecot-Containern neu laden und die Zertifikate ĂĽberprĂĽfen. Wie das geht, sehen Sie [hier](https://mailcow.github.io/mailcow-dockerized-docs/de/post_installation/firststeps-ssl/#ein-eigenes-zertifikat-verwenden).
|
||||||
|
|
||||||
|
@ -264,4 +264,4 @@ Wenn Sie vorhaben, einen Servernamen zu verwenden, der nicht `MAILCOW_HOSTNAME`
|
||||||
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` zum Anwenden aus.
|
FĂĽhren Sie `docker-compose up -d` zum Anwenden aus.
|
|
@ -13,7 +13,7 @@ This will also change the bindings inside the Nginx container! This is important
|
||||||
|
|
||||||
**IMPORTANT:** Do not use port 8081, 9081 or 65510!
|
**IMPORTANT:** Do not use port 8081, 9081 or 65510!
|
||||||
|
|
||||||
Recreate affected containers by running `docker compose up -d`.
|
Recreate affected containers by running `docker-compose up -d`.
|
||||||
|
|
||||||
**Important information, please read them carefully!**
|
**Important information, please read them carefully!**
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ For this section we'll assume you have your Traefik 2 `[certificatesresolvers]`
|
||||||
|
|
||||||
|
|
||||||
So, first of all, we are going to disable the acme-mailcow container since we'll use the certs that traefik will provide us.
|
So, first of all, we are going to disable the acme-mailcow container since we'll use the certs that traefik will provide us.
|
||||||
For this we'll have to set `SKIP_LETS_ENCRYPT=y` on our `mailcow.conf`, and run `docker compose up -d` to apply the changes.
|
For this we'll have to set `SKIP_LETS_ENCRYPT=y` on our `mailcow.conf`, and run `docker-compose up -d` to apply the changes.
|
||||||
|
|
||||||
Then we'll create a `docker-compose.override.yml` file in order to override the main `docker-compose.yml` found in your mailcow root folder.
|
Then we'll create a `docker-compose.override.yml` file in order to override the main `docker-compose.yml` found in your mailcow root folder.
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ services:
|
||||||
network_mode: none
|
network_mode: none
|
||||||
volumes:
|
volumes:
|
||||||
# mount the folder which contains Traefik's `acme.json' file
|
# mount the folder which contains Traefik's `acme.json' file
|
||||||
# in this case Traefik is started from its own docker compose in ../traefik
|
# in this case Traefik is started from its own docker-compose in ../traefik
|
||||||
- ../traefik/data:/traefik:ro
|
- ../traefik/data:/traefik:ro
|
||||||
# mount mailcow's SSL folder
|
# mount mailcow's SSL folder
|
||||||
- ./data/assets/ssl/:/output:rw
|
- ./data/assets/ssl/:/output:rw
|
||||||
|
@ -232,14 +232,14 @@ networks:
|
||||||
external: true
|
external: true
|
||||||
```
|
```
|
||||||
|
|
||||||
Start the new containers with `docker compose up -d`.
|
Start the new containers with `docker-compose up -d`.
|
||||||
|
|
||||||
|
|
||||||
Now, there's only one thing left to do, which is setup the certs so that the mail services can use them as well, since Traefik 2 uses an acme v2 format to save ALL the license from all the domains we have, we'll need to find a way to dump the certs, lucky we have [this tiny container](https://hub.docker.com/r/humenius/traefik-certs-dumper) which grabs the `acme.json` file trough a volume, and a variable `DOMAIN=example.org`, and with these, the container will output the `cert.pem` and `key.pem` files, for this we'll simply run the `traefik-certs-dumper` container binding the `/traefik` volume to the folder where our `acme.json` is saved, bind the `/output` volume to our mailcow `data/assets/ssl/` folder, and set up the `DOMAIN=example.org` variable to the domain we want the certs dumped from.
|
Now, there's only one thing left to do, which is setup the certs so that the mail services can use them as well, since Traefik 2 uses an acme v2 format to save ALL the license from all the domains we have, we'll need to find a way to dump the certs, lucky we have [this tiny container](https://hub.docker.com/r/humenius/traefik-certs-dumper) which grabs the `acme.json` file trough a volume, and a variable `DOMAIN=example.org`, and with these, the container will output the `cert.pem` and `key.pem` files, for this we'll simply run the `traefik-certs-dumper` container binding the `/traefik` volume to the folder where our `acme.json` is saved, bind the `/output` volume to our mailcow `data/assets/ssl/` folder, and set up the `DOMAIN=example.org` variable to the domain we want the certs dumped from.
|
||||||
|
|
||||||
This container will watch over the `acme.json` file for any changes, and regenerate the `cert.pem` and `key.pem` files directly into `data/assets/ssl/` being the path binded to the container's `/output` path.
|
This container will watch over the `acme.json` file for any changes, and regenerate the `cert.pem` and `key.pem` files directly into `data/assets/ssl/` being the path binded to the container's `/output` path.
|
||||||
|
|
||||||
You can use the command line to run it, or use the docker compose shown [here](https://hub.docker.com/r/humenius/traefik-certs-dumper).
|
You can use the command line to run it, or use the docker-compose shown [here](https://hub.docker.com/r/humenius/traefik-certs-dumper).
|
||||||
|
|
||||||
After we have the certs dumped, we'll have to reload the configs from our postfix and dovecot containers, and check the certs, you can see how [here](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#how-to-use-your-own-certificate).
|
After we have the certs dumped, we'll have to reload the configs from our postfix and dovecot containers, and check the certs, you can see how [here](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#how-to-use-your-own-certificate).
|
||||||
|
|
||||||
|
@ -268,4 +268,4 @@ If you plan to use a server name that is not `MAILCOW_HOSTNAME` in your reverse
|
||||||
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d` to apply.
|
Run `docker-compose up -d` to apply.
|
|
@ -11,8 +11,8 @@ SNAT_TO_SOURCE=1.2.3.4
|
||||||
SNAT6_TO_SOURCE=dead:beef
|
SNAT6_TO_SOURCE=dead:beef
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus.
|
FĂĽhren Sie `docker-compose up -d` aus.
|
||||||
|
|
||||||
Die Werte werden von netfilter-mailcow gelesen. netfilter-mailcow stellt sicher, dass die Post-Routing-Regeln auf Position 1 in der Netfilter-Tabelle stehen. Es löscht sie automatisch und legt sie neu an, wenn sie an einer anderen Position als 1 gefunden werden.
|
Die Werte werden von netfilter-mailcow gelesen. netfilter-mailcow stellt sicher, dass die Post-Routing-Regeln auf Position 1 in der Netfilter-Tabelle stehen. Es löscht sie automatisch und legt sie neu an, wenn sie an einer anderen Position als 1 gefunden werden.
|
||||||
|
|
||||||
ĂśberprĂĽfen Sie die Ausgabe von `docker compose logs --tail=200 netfilter-mailcow`, um sicherzustellen, dass die SNAT-Einstellungen angewendet wurden.
|
ĂśberprĂĽfen Sie die Ausgabe von `docker-compose logs --tail=200 netfilter-mailcow`, um sicherzustellen, dass die SNAT-Einstellungen angewendet wurden.
|
|
@ -11,8 +11,8 @@ SNAT_TO_SOURCE=1.2.3.4
|
||||||
SNAT6_TO_SOURCE=dead:beef
|
SNAT6_TO_SOURCE=dead:beef
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d`.
|
Run `docker-compose up -d`.
|
||||||
|
|
||||||
The values are read by netfilter-mailcow. netfilter-mailcow will make sure, the post-routing rules are on position 1 in the netfilter table. It does automatically delete and re-create them if they are found on another position than 1.
|
The values are read by netfilter-mailcow. netfilter-mailcow will make sure, the post-routing rules are on position 1 in the netfilter table. It does automatically delete and re-create them if they are found on another position than 1.
|
||||||
|
|
||||||
Check the output of `docker compose logs --tail=200 netfilter-mailcow` to ensure the SNAT settings have been applied.
|
Check the output of `docker-compose logs --tail=200 netfilter-mailcow` to ensure the SNAT settings have been applied.
|
|
@ -13,7 +13,7 @@ Nur Namen, die validiert werden können, werden als SAN hinzugefügt.
|
||||||
|
|
||||||
Für jede Domain, die Sie entfernen, wird das Zertifikat verschoben und ein neues Zertifikat angefordert. Es ist nicht möglich, Domains in einem Zertifikat zu behalten, wenn wir nicht in der Lage sind, die Challenge für diese zu validieren.
|
Für jede Domain, die Sie entfernen, wird das Zertifikat verschoben und ein neues Zertifikat angefordert. Es ist nicht möglich, Domains in einem Zertifikat zu behalten, wenn wir nicht in der Lage sind, die Challenge für diese zu validieren.
|
||||||
|
|
||||||
Wenn Sie den ACME-Client neu starten wollen, verwenden Sie `docker compose restart acme-mailcow` und ĂĽberwachen Sie die Protokolle mit `docker compose logs --tail=200 -f acme-mailcow`.
|
Wenn Sie den ACME-Client neu starten wollen, verwenden Sie `docker-compose restart acme-mailcow` und ĂĽberwachen Sie die Protokolle mit `docker-compose logs --tail=200 -f acme-mailcow`.
|
||||||
|
|
||||||
### Zusätzliche Domain-Namen
|
### Zusätzliche Domain-Namen
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ Jeder Name wird anhand seiner IPv6-Adresse oder - wenn IPv6 in Ihrer Domäne nic
|
||||||
|
|
||||||
Ein Wildcard-Name wie `smtp.*` wird versuchen, ein smtp.DOMAIN_NAME SAN fĂĽr jede zu mailcow hinzugefĂĽgte Domain zu erhalten.
|
Ein Wildcard-Name wie `smtp.*` wird versuchen, ein smtp.DOMAIN_NAME SAN fĂĽr jede zu mailcow hinzugefĂĽgte Domain zu erhalten.
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus, um betroffene Container automatisch neu zu erstellen.
|
FĂĽhren Sie `docker-compose up -d` aus, um betroffene Container automatisch neu zu erstellen.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Die Verwendung anderer Namen als `MAILCOW_HOSTNAME` fĂĽr den Zugriff auf das mailcow UI kann weitere Konfiguration erfordern.
|
Die Verwendung anderer Namen als `MAILCOW_HOSTNAME` fĂĽr den Zugriff auf das mailcow UI kann weitere Konfiguration erfordern.
|
||||||
|
@ -40,7 +40,7 @@ Wenn Sie planen, einen anderen Servernamen als `MAILCOW_HOSTNAME` fĂĽr den Zugri
|
||||||
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus, um es anzuwenden.
|
FĂĽhren Sie `docker-compose up -d` aus, um es anzuwenden.
|
||||||
|
|
||||||
### Erneuerung erzwingen
|
### Erneuerung erzwingen
|
||||||
|
|
||||||
|
@ -49,9 +49,9 @@ Um eine Erneuerung zu erzwingen, mĂĽssen Sie eine Datei namens `force_renew` ers
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
touch data/assets/ssl/force_renew
|
touch data/assets/ssl/force_renew
|
||||||
docker compose restart acme-mailcow
|
docker-compose restart acme-mailcow
|
||||||
# PrĂĽfen Sie nun die Logs auf eine Erneuerung
|
# PrĂĽfen Sie nun die Logs auf eine Erneuerung
|
||||||
docker compose logs --tail=200 -f acme-mailcow
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Die Datei wird automatisch gelöscht.
|
Die Datei wird automatisch gelöscht.
|
||||||
|
@ -60,20 +60,20 @@ Die Datei wird automatisch gelöscht.
|
||||||
|
|
||||||
Sie können die **IP-Überprüfung** überspringen, indem Sie `SKIP_IP_CHECK=y` in mailcow.conf setzen (keine Anführungszeichen). Seien Sie gewarnt, dass eine Fehlkonfiguration dazu führt, dass Sie von Let's Encrypt eingeschränkt werden! Dies ist vor allem für Multi-IP-Setups nützlich, bei denen der IP-Check die falsche Quell-IP-Adresse zurückgeben würde. Aufgrund der Verwendung von dynamischen IPs für acme-mailcow ist Source-NAT bei Neustarts nicht konsistent.
|
Sie können die **IP-Überprüfung** überspringen, indem Sie `SKIP_IP_CHECK=y` in mailcow.conf setzen (keine Anführungszeichen). Seien Sie gewarnt, dass eine Fehlkonfiguration dazu führt, dass Sie von Let's Encrypt eingeschränkt werden! Dies ist vor allem für Multi-IP-Setups nützlich, bei denen der IP-Check die falsche Quell-IP-Adresse zurückgeben würde. Aufgrund der Verwendung von dynamischen IPs für acme-mailcow ist Source-NAT bei Neustarts nicht konsistent.
|
||||||
|
|
||||||
Wenn Sie Probleme mit der "HTTP-Validierung" haben, aber Ihre IP-Adressbestätigung erfolgreich ist, verwenden Sie höchstwahrscheinlich firewalld, ufw oder eine andere Firewall, die Verbindungen von `br-mailcow` zu Ihrem externen Interface verbietet. Sowohl firewalld als auch ufw lassen dies standardmäßig nicht zu. Es reicht oft nicht aus, diese Firewall-Dienste einfach zu stoppen. Sie müssen mailcow stoppen (`docker compose down`), den Firewall-Dienst stoppen, die Ketten flushen und Docker neu starten.
|
Wenn Sie Probleme mit der "HTTP-Validierung" haben, aber Ihre IP-Adressbestätigung erfolgreich ist, verwenden Sie höchstwahrscheinlich firewalld, ufw oder eine andere Firewall, die Verbindungen von `br-mailcow` zu Ihrem externen Interface verbietet. Sowohl firewalld als auch ufw lassen dies standardmäßig nicht zu. Es reicht oft nicht aus, diese Firewall-Dienste einfach zu stoppen. Sie müssen mailcow stoppen (`docker-compose down`), den Firewall-Dienst stoppen, die Ketten flushen und Docker neu starten.
|
||||||
|
|
||||||
Sie können diese Validierungsmethode auch überspringen, indem Sie `SKIP_HTTP_VERIFICATION=y` in "mailcow.conf" setzen. Seien Sie gewarnt, dass dies nicht zu empfehlen ist. In den meisten Fällen wird die HTTP-Überprüfung übersprungen, um unbekannte NAT-Reflection-Probleme zu umgehen, die durch das Ignorieren dieser spezifischen Netzwerk-Fehlkonfiguration nicht gelöst werden. Wenn Sie Probleme haben, TLSA-Einträge in der DNS-Übersicht innerhalb von mailcow zu generieren, haben Sie höchstwahrscheinlich Probleme mit NAT-Reflexion, die Sie beheben sollten.
|
Sie können diese Validierungsmethode auch überspringen, indem Sie `SKIP_HTTP_VERIFICATION=y` in "mailcow.conf" setzen. Seien Sie gewarnt, dass dies nicht zu empfehlen ist. In den meisten Fällen wird die HTTP-Überprüfung übersprungen, um unbekannte NAT-Reflection-Probleme zu umgehen, die durch das Ignorieren dieser spezifischen Netzwerk-Fehlkonfiguration nicht gelöst werden. Wenn Sie Probleme haben, TLSA-Einträge in der DNS-Übersicht innerhalb von mailcow zu generieren, haben Sie höchstwahrscheinlich Probleme mit NAT-Reflexion, die Sie beheben sollten.
|
||||||
|
|
||||||
Wenn du einen SKIP_* Parameter geändert hast, führe `docker compose up -d` aus, um deine Änderungen zu übernehmen.
|
Wenn du einen SKIP_* Parameter geändert hast, führe `docker-compose up -d` aus, um deine Änderungen zu übernehmen.
|
||||||
|
|
||||||
### Deaktivieren Sie Let's Encrypt
|
### Deaktivieren Sie Let's Encrypt
|
||||||
#### Deaktivieren Sie Let's Encrypt vollständig
|
#### Deaktivieren Sie Let's Encrypt vollständig
|
||||||
|
|
||||||
Setzen Sie `SKIP_LETS_ENCRYPT=y` in "mailcow.conf" und erstellen Sie "acme-mailcow" neu, indem Sie `docker compose up -d` ausfĂĽhren.
|
Setzen Sie `SKIP_LETS_ENCRYPT=y` in "mailcow.conf" und erstellen Sie "acme-mailcow" neu, indem Sie `docker-compose up -d` ausfĂĽhren.
|
||||||
|
|
||||||
#### Alle Namen auĂźer ${MAILCOW_HOSTNAME} ĂĽberspringen
|
#### Alle Namen auĂźer ${MAILCOW_HOSTNAME} ĂĽberspringen
|
||||||
|
|
||||||
FĂĽgen Sie `ONLY_MAILCOW_HOSTNAME=y` zu "mailcow.conf" hinzu und erstellen Sie "acme-mailcow" neu, indem Sie `docker compose up -d` ausfĂĽhren.
|
FĂĽgen Sie `ONLY_MAILCOW_HOSTNAME=y` zu "mailcow.conf" hinzu und erstellen Sie "acme-mailcow" neu, indem Sie `docker-compose up -d` ausfĂĽhren.
|
||||||
|
|
||||||
### Das Let's Encrypt subjectAltName-Limit von 100 Domains
|
### Das Let's Encrypt subjectAltName-Limit von 100 Domains
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ Um dies zu lösen, können Sie `ENABLE_SSL_SNI` so konfigurieren, dass es generi
|
||||||
|
|
||||||
Postfix, Dovecot und Nginx werden dann diese Zertifikate mit SNI bedienen.
|
Postfix, Dovecot und Nginx werden dann diese Zertifikate mit SNI bedienen.
|
||||||
|
|
||||||
Setzen Sie `ENABLE_SSL_SNI=y` in "mailcow.conf" und erstellen Sie "acme-mailcow" durch AusfĂĽhren von `docker compose up -d`.
|
Setzen Sie `ENABLE_SSL_SNI=y` in "mailcow.conf" und erstellen Sie "acme-mailcow" durch AusfĂĽhren von `docker-compose up -d`.
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
Nicht alle Clients unterstĂĽtzen SNI, [siehe Dovecot Dokumentation](https://wiki.dovecot.org/SSL/SNIClientSupport) oder [Wikipedia](https://en.wikipedia.org/wiki/Server_Name_Indication#Support).
|
Nicht alle Clients unterstĂĽtzen SNI, [siehe Dovecot Dokumentation](https://wiki.dovecot.org/SSL/SNIClientSupport) oder [Wikipedia](https://en.wikipedia.org/wiki/Server_Name_Indication#Support).
|
||||||
|
@ -131,7 +131,7 @@ Siehe [Post-Hook-Skript fĂĽr Nicht-Mailcow-ACME-Clients](../firststeps-rp#option
|
||||||
|
|
||||||
Bearbeiten Sie `mailcow.conf` und fĂĽgen Sie `LE_STAGING=y` hinzu.
|
Bearbeiten Sie `mailcow.conf` und fĂĽgen Sie `LE_STAGING=y` hinzu.
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus, um Ihre Ă„nderungen zu aktivieren.
|
FĂĽhren Sie `docker-compose up -d` aus, um Ihre Ă„nderungen zu aktivieren.
|
||||||
|
|
||||||
### Benutzerdefinierte Verzeichnis-URL
|
### Benutzerdefinierte Verzeichnis-URL
|
||||||
|
|
||||||
|
@ -143,11 +143,11 @@ DIRECTORY_URL=https://acme-custom-v9000.api.letsencrypt.org/directory
|
||||||
|
|
||||||
Sie können `LE_STAGING` nicht mit `DIRECTORY_URL` verwenden. Wenn beide gesetzt sind, wird nur `LE_STAGING` verwendet.
|
Sie können `LE_STAGING` nicht mit `DIRECTORY_URL` verwenden. Wenn beide gesetzt sind, wird nur `LE_STAGING` verwendet.
|
||||||
|
|
||||||
FĂĽhren Sie `docker compose up -d` aus, um Ihre Ă„nderungen zu aktivieren.
|
FĂĽhren Sie `docker-compose up -d` aus, um Ihre Ă„nderungen zu aktivieren.
|
||||||
|
|
||||||
### ĂśberprĂĽfen Sie Ihre Konfiguration
|
### ĂśberprĂĽfen Sie Ihre Konfiguration
|
||||||
|
|
||||||
Führen Sie `docker compose logs acme-mailcow` aus, um herauszufinden, warum eine Validierung fehlschlägt.
|
Führen Sie `docker-compose logs acme-mailcow` aus, um herauszufinden, warum eine Validierung fehlschlägt.
|
||||||
|
|
||||||
Um zu ĂĽberprĂĽfen, ob nginx das richtige Zertifikat verwendet, benutzen Sie einfach einen Browser Ihrer Wahl und ĂĽberprĂĽfen Sie das angezeigte Zertifikat.
|
Um zu ĂĽberprĂĽfen, ob nginx das richtige Zertifikat verwendet, benutzen Sie einfach einen Browser Ihrer Wahl und ĂĽberprĂĽfen Sie das angezeigte Zertifikat.
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ Only names that can be validated, will be added as SAN.
|
||||||
|
|
||||||
For every domain you remove, the certificate will be moved and a new certificate will be requested. It is not possible to keep domains in a certificate, when we are not able validate the challenge for those.
|
For every domain you remove, the certificate will be moved and a new certificate will be requested. It is not possible to keep domains in a certificate, when we are not able validate the challenge for those.
|
||||||
|
|
||||||
If you want to re-run the ACME client, use `docker compose restart acme-mailcow` and monitor its logs with `docker compose logs --tail=200 -f acme-mailcow`.
|
If you want to re-run the ACME client, use `docker-compose restart acme-mailcow` and monitor its logs with `docker-compose logs --tail=200 -f acme-mailcow`.
|
||||||
|
|
||||||
### Additional domain names
|
### Additional domain names
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ Each name will be validated against its IPv6 address or - if IPv6 is not configu
|
||||||
|
|
||||||
A wildcard name like `smtp.*` will try to obtain a smtp.DOMAIN_NAME SAN for each domain added to mailcow.
|
A wildcard name like `smtp.*` will try to obtain a smtp.DOMAIN_NAME SAN for each domain added to mailcow.
|
||||||
|
|
||||||
Run `docker compose up -d` to recreate affected containers automatically.
|
Run `docker-compose up -d` to recreate affected containers automatically.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Using names other name `MAILCOW_HOSTNAME` to access the mailcow UI may need further configuration.
|
Using names other name `MAILCOW_HOSTNAME` to access the mailcow UI may need further configuration.
|
||||||
|
@ -40,7 +40,7 @@ If you plan to use a server name that is not `MAILCOW_HOSTNAME` to access the ma
|
||||||
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d` to apply.
|
Run `docker-compose up -d` to apply.
|
||||||
|
|
||||||
### Force renewal
|
### Force renewal
|
||||||
|
|
||||||
|
@ -49,9 +49,9 @@ To force a renewal, you need to create a file named `force_renew` and restart th
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
touch data/assets/ssl/force_renew
|
touch data/assets/ssl/force_renew
|
||||||
docker compose restart acme-mailcow
|
docker-compose restart acme-mailcow
|
||||||
# Now check the logs for a renewal
|
# Now check the logs for a renewal
|
||||||
docker compose logs --tail=200 -f acme-mailcow
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
The file will be deleted automatically.
|
The file will be deleted automatically.
|
||||||
|
@ -60,20 +60,20 @@ The file will be deleted automatically.
|
||||||
|
|
||||||
You can skip the **IP verification** by setting `SKIP_IP_CHECK=y` in mailcow.conf (no quotes). Be warned that a misconfiguration will get you ratelimited by Let's Encrypt! This is primarily useful for multi-IP setups where the IP check would return the incorrect source IP address. Due to using dynamic IPs for acme-mailcow, source NAT is not consistent over restarts.
|
You can skip the **IP verification** by setting `SKIP_IP_CHECK=y` in mailcow.conf (no quotes). Be warned that a misconfiguration will get you ratelimited by Let's Encrypt! This is primarily useful for multi-IP setups where the IP check would return the incorrect source IP address. Due to using dynamic IPs for acme-mailcow, source NAT is not consistent over restarts.
|
||||||
|
|
||||||
If you encounter problems with "HTTP validation", but your IP address confirmation succeeds, you are most likely using firewalld, ufw or any other firewall, that disallows connections from `br-mailcow` to your external interface. Both firewalld and ufw disallow this by default. It is often not enough to just stop these firewall services. You'd need to stop mailcow (`docker compose down`), stop the firewall service, flush the chains and restart Docker.
|
If you encounter problems with "HTTP validation", but your IP address confirmation succeeds, you are most likely using firewalld, ufw or any other firewall, that disallows connections from `br-mailcow` to your external interface. Both firewalld and ufw disallow this by default. It is often not enough to just stop these firewall services. You'd need to stop mailcow (`docker-compose down`), stop the firewall service, flush the chains and restart Docker.
|
||||||
|
|
||||||
You can also skip this validation method by setting `SKIP_HTTP_VERIFICATION=y` in "mailcow.conf". Be warned that this is discouraged. In most cases, the HTTP verification is skipped to workaround unknown NAT reflection issues, which are not resolved by ignoring this specific network misconfiguration. If you encounter problems generating TLSA records in the DNS overview within mailcow, you are most likely having issues with NAT reflection you should fix.
|
You can also skip this validation method by setting `SKIP_HTTP_VERIFICATION=y` in "mailcow.conf". Be warned that this is discouraged. In most cases, the HTTP verification is skipped to workaround unknown NAT reflection issues, which are not resolved by ignoring this specific network misconfiguration. If you encounter problems generating TLSA records in the DNS overview within mailcow, you are most likely having issues with NAT reflection you should fix.
|
||||||
|
|
||||||
If you changed a SKIP_* parameter, run `docker compose up -d` to apply your changes.
|
If you changed a SKIP_* parameter, run `docker-compose up -d` to apply your changes.
|
||||||
|
|
||||||
### Disable Let's Encrypt
|
### Disable Let's Encrypt
|
||||||
#### Disable Let's Encrypt completely
|
#### Disable Let's Encrypt completely
|
||||||
|
|
||||||
Set `SKIP_LETS_ENCRYPT=y` in "mailcow.conf" and recreate "acme-mailcow" by running `docker compose up -d`.
|
Set `SKIP_LETS_ENCRYPT=y` in "mailcow.conf" and recreate "acme-mailcow" by running `docker-compose up -d`.
|
||||||
|
|
||||||
#### Skip all names but ${MAILCOW_HOSTNAME}
|
#### Skip all names but ${MAILCOW_HOSTNAME}
|
||||||
|
|
||||||
Add `ONLY_MAILCOW_HOSTNAME=y` to "mailcow.conf" and recreate "acme-mailcow" by running `docker compose up -d`.
|
Add `ONLY_MAILCOW_HOSTNAME=y` to "mailcow.conf" and recreate "acme-mailcow" by running `docker-compose up -d`.
|
||||||
|
|
||||||
### The Let's Encrypt subjectAltName limit of 100 domains
|
### The Let's Encrypt subjectAltName limit of 100 domains
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ To solve this, you can configure `ENABLE_SSL_SNI` to generate:
|
||||||
|
|
||||||
Postfix, Dovecot and Nginx will then serve these certificates with SNI.
|
Postfix, Dovecot and Nginx will then serve these certificates with SNI.
|
||||||
|
|
||||||
Set `ENABLE_SSL_SNI=y` in "mailcow.conf" and recreate "acme-mailcow" by running `docker compose up -d`.
|
Set `ENABLE_SSL_SNI=y` in "mailcow.conf" and recreate "acme-mailcow" by running `docker-compose up -d`.
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
Not all clients support SNI, [see Dovecot documentation](https://wiki.dovecot.org/SSL/SNIClientSupport) or [Wikipedia](https://en.wikipedia.org/wiki/Server_Name_Indication#Support).
|
Not all clients support SNI, [see Dovecot documentation](https://wiki.dovecot.org/SSL/SNIClientSupport) or [Wikipedia](https://en.wikipedia.org/wiki/Server_Name_Indication#Support).
|
||||||
|
@ -131,7 +131,7 @@ See [Post-hook script for non-mailcow ACME clients](../firststeps-rp/#optional-p
|
||||||
|
|
||||||
Edit `mailcow.conf` and add `LE_STAGING=y`.
|
Edit `mailcow.conf` and add `LE_STAGING=y`.
|
||||||
|
|
||||||
Run `docker compose up -d` to activate your changes.
|
Run `docker-compose up -d` to activate your changes.
|
||||||
|
|
||||||
### Custom directory URL
|
### Custom directory URL
|
||||||
|
|
||||||
|
@ -143,11 +143,11 @@ DIRECTORY_URL=https://acme-custom-v9000.api.letsencrypt.org/directory
|
||||||
|
|
||||||
You cannot use `LE_STAGING` with `DIRECTORY_URL`. If both are set, only `LE_STAGING` is used.
|
You cannot use `LE_STAGING` with `DIRECTORY_URL`. If both are set, only `LE_STAGING` is used.
|
||||||
|
|
||||||
Run `docker compose up -d` to activate your changes.
|
Run `docker-compose up -d` to activate your changes.
|
||||||
|
|
||||||
### Check your configuration
|
### Check your configuration
|
||||||
|
|
||||||
Run `docker compose logs acme-mailcow` to find out why a validation fails.
|
Run `docker-compose logs acme-mailcow` to find out why a validation fails.
|
||||||
|
|
||||||
To check if nginx serves the correct certificate, simply use a browser of your choice and check the displayed certificate.
|
To check if nginx serves the correct certificate, simply use a browser of your choice and check the displayed certificate.
|
||||||
|
|
||||||
|
|
16
docs/third_party/third_party-borgmatic.de.md
gevendort
16
docs/third_party/third_party-borgmatic.de.md
gevendort
|
@ -128,7 +128,7 @@ oder OpenSSH wird sich weigern, den SSH-SchlĂĽssel zu benutzen.
|
||||||
Für den nächsten Schritt müssen wir den Container in einem konfigurierten Zustand hochfahren und laufen lassen. Um das zu tun, führen Sie aus:
|
Für den nächsten Schritt müssen wir den Container in einem konfigurierten Zustand hochfahren und laufen lassen. Um das zu tun, führen Sie aus:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
## Wiederherstellung von einem Backup
|
## Wiederherstellung von einem Backup
|
||||||
|
@ -153,7 +153,7 @@ das `ro`-Flag aus dem Volume entfernen.
|
||||||
Dann können Sie den folgenden Befehl verwenden, um das Maildir aus einem Backup wiederherzustellen:
|
Dann können Sie den folgenden Befehl verwenden, um das Maildir aus einem Backup wiederherzustellen:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
docker-compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
|
Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
|
||||||
|
@ -167,7 +167,7 @@ Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archi
|
||||||
Um die MySQL-Datenbank aus dem letzten Archiv wiederherzustellen, verwenden Sie diesen Befehl:
|
Um die MySQL-Datenbank aus dem letzten Archiv wiederherzustellen, verwenden Sie diesen Befehl:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
docker-compose exec borgmatic-mailcow borgmatic restore --archive latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
|
Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
|
||||||
|
@ -181,7 +181,7 @@ ihn wieder zu aktivieren.
|
||||||
Um mailcow neu zu starten, verwenden Sie den folgenden Befehl:
|
Um mailcow neu zu starten, verwenden Sie den folgenden Befehl:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose down && docker compose up -d
|
docker-compose down && docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Wenn Sie SELinux verwenden, werden dadurch auch alle Dateien in Ihrem vmail-Volume neu benannt. Seien Sie geduldig, denn dies kann
|
Wenn Sie SELinux verwenden, werden dadurch auch alle Dateien in Ihrem vmail-Volume neu benannt. Seien Sie geduldig, denn dies kann
|
||||||
|
@ -192,13 +192,13 @@ eine Weile dauern kann, wenn Sie viele Dateien haben.
|
||||||
### Manueller Archivierungslauf (mit Debugging-Ausgabe)
|
### Manueller Archivierungslauf (mit Debugging-Ausgabe)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic -v 2
|
docker-compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Auflistung aller verfĂĽgbaren Archive
|
### Auflistung aller verfĂĽgbaren Archive
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic list
|
docker-compose exec borgmatic-mailcow borgmatic list
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sperre aufheben
|
### Sperre aufheben
|
||||||
|
@ -207,7 +207,7 @@ Wenn borg während eines Archivierungslaufs unterbrochen wird, hinterlässt es e
|
||||||
neue Operationen durchgeführt werden können:
|
neue Operationen durchgeführt werden können:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
docker-compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Wobei `user@rsync.net:mailcow` die URI zu Ihrem Repository ist.
|
Wobei `user@rsync.net:mailcow` die URI zu Ihrem Repository ist.
|
||||||
|
@ -225,7 +225,7 @@ Beachten Sie, dass Sie in beiden Fällen auch die Passphrase haben müssen, um d
|
||||||
Um die `keyfile` zu holen, fĂĽhren Sie aus:
|
Um die `keyfile` zu holen, fĂĽhren Sie aus:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
docker-compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Wobei `user@rsync.net:mailcow` die URI zu Ihrem Repository ist.
|
Wobei `user@rsync.net:mailcow` die URI zu Ihrem Repository ist.
|
20
docs/third_party/third_party-borgmatic.en.md
gevendort
20
docs/third_party/third_party-borgmatic.en.md
gevendort
|
@ -129,7 +129,7 @@ or OpenSSH will refuse to use the SSH key.
|
||||||
For the next step we need the container to be up and running in a configured state. To do that run:
|
For the next step we need the container to be up and running in a configured state. To do that run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Initialize the repository
|
### Initialize the repository
|
||||||
|
@ -140,7 +140,7 @@ initialized.
|
||||||
To initialize the repository run:
|
To initialize the repository run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
docker-compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
||||||
```
|
```
|
||||||
|
|
||||||
You will be asked you to authenticate the SSH host key of your remote repository server. See if it matches and confirm
|
You will be asked you to authenticate the SSH host key of your remote repository server. See if it matches and confirm
|
||||||
|
@ -158,7 +158,7 @@ Now that we finished configuring and initializing the repository restart the con
|
||||||
state:
|
state:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose restart borgmatic-mailcow
|
docker-compose restart borgmatic-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
## Restoring from a backup
|
## Restoring from a backup
|
||||||
|
@ -183,7 +183,7 @@ the `ro` flag from the volume.
|
||||||
Then you can use the following command to restore the maildir from a backup:
|
Then you can use the following command to restore the maildir from a backup:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
docker-compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively you can specify any archive name from the list of archives (see
|
Alternatively you can specify any archive name from the list of archives (see
|
||||||
|
@ -198,7 +198,7 @@ Alternatively you can specify any archive name from the list of archives (see
|
||||||
To restore the MySQL database from the latest archive use this command:
|
To restore the MySQL database from the latest archive use this command:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
docker-compose exec borgmatic-mailcow borgmatic restore --archive latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively you can specify any archive name from the list of archives (see
|
Alternatively you can specify any archive name from the list of archives (see
|
||||||
|
@ -212,7 +212,7 @@ re-enable it.
|
||||||
To restart mailcow use the follwing command:
|
To restart mailcow use the follwing command:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose down && docker compose up -d
|
docker-compose down && docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
If you use SELinux this will also trigger the re-labeling of all files in your vmail volume. Be patient, as this may
|
If you use SELinux this will also trigger the re-labeling of all files in your vmail volume. Be patient, as this may
|
||||||
|
@ -223,13 +223,13 @@ take a while if you have lots of files.
|
||||||
### Manual archiving run (with debugging output)
|
### Manual archiving run (with debugging output)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic -v 2
|
docker-compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Listing all available archives
|
### Listing all available archives
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borgmatic list
|
docker-compose exec borgmatic-mailcow borgmatic list
|
||||||
```
|
```
|
||||||
|
|
||||||
### Break lock
|
### Break lock
|
||||||
|
@ -238,7 +238,7 @@ When borg is interrupted during an archiving run it will leave behind a stale lo
|
||||||
new operations can be performed:
|
new operations can be performed:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
docker-compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Where `user@rsync.net:mailcow` is the URI to your repository.
|
Where `user@rsync.net:mailcow` is the URI to your repository.
|
||||||
|
@ -256,7 +256,7 @@ Note that in either case you also must have the passphrase to decrypt any archiv
|
||||||
To fetch the keyfile run:
|
To fetch the keyfile run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
docker-compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Where `user@rsync.net:mailcow` is the URI to your repository.
|
Where `user@rsync.net:mailcow` is the URI to your repository.
|
6
docs/third_party/third_party-gitea.de.md
gevendort
6
docs/third_party/third_party-gitea.de.md
gevendort
|
@ -31,9 +31,9 @@ location /gitea/ {
|
||||||
GITEA_SSH_PORT=127.0.0.1:4000
|
GITEA_SSH_PORT=127.0.0.1:4000
|
||||||
```
|
```
|
||||||
|
|
||||||
5\. FĂĽhren Sie `docker compose up -d` aus, um den Gitea-Container hochzufahren und fĂĽhren Sie anschlieĂźend `docker compose restart nginx-mailcow` aus.
|
5\. FĂĽhren Sie `docker-compose up -d` aus, um den Gitea-Container hochzufahren und fĂĽhren Sie anschlieĂźend `docker-compose restart nginx-mailcow` aus.
|
||||||
|
|
||||||
6\. Wenn Sie mailcow zu https gezwungen haben, fĂĽhren Sie Schritt 9 aus und starten Sie gitea mit `docker compose restart gitea-mailcow` neu. Fahren Sie mit Schritt 7 fort (Denken Sie daran, https anstelle von http zu verwenden, `https://mx.example.org/gitea/`
|
6\. Wenn Sie mailcow zu https gezwungen haben, fĂĽhren Sie Schritt 9 aus und starten Sie gitea mit `docker-compose restart gitea-mailcow` neu. Fahren Sie mit Schritt 7 fort (Denken Sie daran, https anstelle von http zu verwenden, `https://mx.example.org/gitea/`
|
||||||
|
|
||||||
7\. Ă–ffnen Sie `http://${MAILCOW_HOSTNAME}/gitea/`, zum Beispiel `http://mx.example.org/gitea/`. FĂĽr die Datenbankdetails stellen Sie `mysql` als Datenbankhost ein. Verwenden Sie den in mailcow.conf gefundenen Wert von DBNAME als Datenbankname, DBUSER als Datenbankbenutzer und DBPASS als Datenbankpasswort.
|
7\. Ă–ffnen Sie `http://${MAILCOW_HOSTNAME}/gitea/`, zum Beispiel `http://mx.example.org/gitea/`. FĂĽr die Datenbankdetails stellen Sie `mysql` als Datenbankhost ein. Verwenden Sie den in mailcow.conf gefundenen Wert von DBNAME als Datenbankname, DBUSER als Datenbankbenutzer und DBPASS als Datenbankpasswort.
|
||||||
|
|
||||||
|
@ -51,5 +51,5 @@ SSH_PORT = 4000
|
||||||
ROOT_URL = https://mx.example.org/gitea/
|
ROOT_URL = https://mx.example.org/gitea/
|
||||||
```
|
```
|
||||||
|
|
||||||
10\. Starten Sie gitea neu mit `docker compose restart gitea-mailcow`. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.
|
10\. Starten Sie gitea neu mit `docker-compose restart gitea-mailcow`. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.
|
||||||
|
|
||||||
|
|
6
docs/third_party/third_party-gitea.en.md
gevendort
6
docs/third_party/third_party-gitea.en.md
gevendort
|
@ -31,9 +31,9 @@ location /gitea/ {
|
||||||
GITEA_SSH_PORT=127.0.0.1:4000
|
GITEA_SSH_PORT=127.0.0.1:4000
|
||||||
```
|
```
|
||||||
|
|
||||||
5\. Run `docker compose up -d` to bring up the gitea container and run `docker compose restart nginx-mailcow` afterwards.
|
5\. Run `docker-compose up -d` to bring up the gitea container and run `docker-compose restart nginx-mailcow` afterwards.
|
||||||
|
|
||||||
6\. If you forced mailcow to https, execute step 9 and restart gitea with `docker compose restart gitea-mailcow` . Go head with step 7 (Remember to use https instead of http, `https://mx.example.org/gitea/`
|
6\. If you forced mailcow to https, execute step 9 and restart gitea with `docker-compose restart gitea-mailcow` . Go head with step 7 (Remember to use https instead of http, `https://mx.example.org/gitea/`
|
||||||
|
|
||||||
7\. Open `http://${MAILCOW_HOSTNAME}/gitea/`, for example `http://mx.example.org/gitea/`. For database details set `mysql` as database host. Use the value of DBNAME found in mailcow.conf as database name, DBUSER as database user and DBPASS as database password.
|
7\. Open `http://${MAILCOW_HOSTNAME}/gitea/`, for example `http://mx.example.org/gitea/`. For database details set `mysql` as database host. Use the value of DBNAME found in mailcow.conf as database name, DBUSER as database user and DBPASS as database password.
|
||||||
|
|
||||||
|
@ -51,4 +51,4 @@ SSH_PORT = 4000
|
||||||
ROOT_URL = https://mx.example.org/gitea/
|
ROOT_URL = https://mx.example.org/gitea/
|
||||||
```
|
```
|
||||||
|
|
||||||
10\. Restart gitea with `docker compose restart gitea-mailcow`. Your users should be able to login with mailcow managed accounts.
|
10\. Restart gitea with `docker-compose restart gitea-mailcow`. Your users should be able to login with mailcow managed accounts.
|
4
docs/third_party/third_party-gogs.de.md
gevendort
4
docs/third_party/third_party-gogs.de.md
gevendort
|
@ -31,7 +31,7 @@ location /gogs/ {
|
||||||
GOGS_SSH_PORT=127.0.0.1:4000
|
GOGS_SSH_PORT=127.0.0.1:4000
|
||||||
```
|
```
|
||||||
|
|
||||||
5\. FĂĽhren Sie `docker compose up -d` aus, um den Gogs-Container hochzufahren und fĂĽhren Sie anschlieĂźend `docker compose restart nginx-mailcow` aus.
|
5\. FĂĽhren Sie `docker-compose up -d` aus, um den Gogs-Container hochzufahren und fĂĽhren Sie anschlieĂźend `docker-compose restart nginx-mailcow` aus.
|
||||||
|
|
||||||
6\. Ă–ffnen Sie `http://${MAILCOW_HOSTNAME}/gogs/`, zum Beispiel `http://mx.example.org/gogs/`. FĂĽr Datenbank-Details setzen Sie `mysql` als Datenbank-Host. Verwenden Sie den in mailcow.conf gefundenen Wert von DBNAME als Datenbankname, DBUSER als Datenbankbenutzer und DBPASS als Datenbankpasswort.
|
6\. Ă–ffnen Sie `http://${MAILCOW_HOSTNAME}/gogs/`, zum Beispiel `http://mx.example.org/gogs/`. FĂĽr Datenbank-Details setzen Sie `mysql` als Datenbank-Host. Verwenden Sie den in mailcow.conf gefundenen Wert von DBNAME als Datenbankname, DBUSER als Datenbankbenutzer und DBPASS als Datenbankpasswort.
|
||||||
|
|
||||||
|
@ -49,5 +49,5 @@ SSH_PORT = 4000
|
||||||
ROOT_URL = https://mx.example.org/gogs/
|
ROOT_URL = https://mx.example.org/gogs/
|
||||||
```
|
```
|
||||||
|
|
||||||
9\. Starten Sie Gogs neu mit `docker compose restart gogs-mailcow`. Ihre Benutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten einzuloggen.
|
9\. Starten Sie Gogs neu mit `docker-compose restart gogs-mailcow`. Ihre Benutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten einzuloggen.
|
||||||
|
|
||||||
|
|
4
docs/third_party/third_party-gogs.en.md
gevendort
4
docs/third_party/third_party-gogs.en.md
gevendort
|
@ -31,7 +31,7 @@ location /gogs/ {
|
||||||
GOGS_SSH_PORT=127.0.0.1:4000
|
GOGS_SSH_PORT=127.0.0.1:4000
|
||||||
```
|
```
|
||||||
|
|
||||||
5\. Run `docker compose up -d` to bring up the Gogs container and run `docker compose restart nginx-mailcow` afterwards.
|
5\. Run `docker-compose up -d` to bring up the Gogs container and run `docker-compose restart nginx-mailcow` afterwards.
|
||||||
|
|
||||||
6\. Open `http://${MAILCOW_HOSTNAME}/gogs/`, for example `http://mx.example.org/gogs/`. For database details set `mysql` as database host. Use the value of DBNAME found in mailcow.conf as database name, DBUSER as database user and DBPASS as database password.
|
6\. Open `http://${MAILCOW_HOSTNAME}/gogs/`, for example `http://mx.example.org/gogs/`. For database details set `mysql` as database host. Use the value of DBNAME found in mailcow.conf as database name, DBUSER as database user and DBPASS as database password.
|
||||||
|
|
||||||
|
@ -49,4 +49,4 @@ SSH_PORT = 4000
|
||||||
ROOT_URL = https://mx.example.org/gogs/
|
ROOT_URL = https://mx.example.org/gogs/
|
||||||
```
|
```
|
||||||
|
|
||||||
9\. Restart Gogs with `docker compose restart gogs-mailcow`. Your users should be able to login with mailcow managed accounts.
|
9\. Restart Gogs with `docker-compose restart gogs-mailcow`. Your users should be able to login with mailcow managed accounts.
|
12
docs/third_party/third_party-mailman3.de.md
gevendort
12
docs/third_party/third_party-mailman3.de.md
gevendort
|
@ -90,7 +90,7 @@ certbot certonly -d MAILMAN_DOMAIN
|
||||||
|
|
||||||
#### Installieren Sie mailcow
|
#### Installieren Sie mailcow
|
||||||
|
|
||||||
Folgen Sie der [mailcow installation](../i_u_m/i_u_m_install.md). **Schritt 5 auslassen und nicht mit `docker compose` starten!**
|
Folgen Sie der [mailcow installation](../i_u_m/i_u_m_install.md). **Schritt 5 auslassen und nicht mit `docker-compose` starten!**
|
||||||
|
|
||||||
#### Mailcow konfigurieren
|
#### Mailcow konfigurieren
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ Erstellen Sie ein langes Passwort fĂĽr die Datenbank, z. B. mit dem Linux-Befehl
|
||||||
|
|
||||||
Erstellen Sie einen langen SchlĂĽssel fĂĽr *Django*, z. B. mit dem Linux-Befehl `cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c30; echo`. Speichern Sie diesen SchlĂĽssel fĂĽr einen Moment als DJANGO_KEY.
|
Erstellen Sie einen langen SchlĂĽssel fĂĽr *Django*, z. B. mit dem Linux-Befehl `cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c30; echo`. Speichern Sie diesen SchlĂĽssel fĂĽr einen Moment als DJANGO_KEY.
|
||||||
|
|
||||||
Erstellen Sie die Datei `/opt/docker-mailman/docker compose.override.yaml` und ersetzen Sie `HYPERKITTY_KEY`, `DBPASS` und `DJANGO_KEY` durch die generierten Werte:
|
Erstellen Sie die Datei `/opt/docker-mailman/docker-compose.override.yaml` und ersetzen Sie `HYPERKITTY_KEY`, `DBPASS` und `DJANGO_KEY` durch die generierten Werte:
|
||||||
|
|
||||||
```
|
```
|
||||||
version: '2'
|
version: '2'
|
||||||
|
@ -278,11 +278,11 @@ a2ensite mailman.conf
|
||||||
systemctl restart apache2
|
systemctl restart apache2
|
||||||
|
|
||||||
cd /opt/docker-mailman
|
cd /opt/docker-mailman
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
|
|
||||||
cd /opt/mailcow-dockerized/
|
cd /opt/mailcow-dockerized/
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
./renew-ssl.sh
|
./renew-ssl.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ Wenn man eine neue Liste anlegt und versucht, sofort eine E-Mail zu versenden, a
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
12
docs/third_party/third_party-mailman3.en.md
gevendort
12
docs/third_party/third_party-mailman3.en.md
gevendort
|
@ -91,7 +91,7 @@ certbot certonly -d MAILMAN_DOMAIN
|
||||||
|
|
||||||
#### Install mailcow
|
#### Install mailcow
|
||||||
|
|
||||||
Follow the [mailcow installation](../i_u_m/i_u_m_install.md). **Omit step 5 and do not pull and up with `docker compose`!**
|
Follow the [mailcow installation](../i_u_m/i_u_m_install.md). **Omit step 5 and do not pull and up with `docker-compose`!**
|
||||||
|
|
||||||
#### Configure mailcow
|
#### Configure mailcow
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ Create a long password for the database, e.g. with the linux command `cat /dev/u
|
||||||
|
|
||||||
Create a long key for *Django*, e.g. with the linux command `cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c30; echo`. Save this key for a moment as DJANGO_KEY.
|
Create a long key for *Django*, e.g. with the linux command `cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c30; echo`. Save this key for a moment as DJANGO_KEY.
|
||||||
|
|
||||||
Create the file `/opt/docker-mailman/docker compose.override.yaml` and replace `HYPERKITTY_KEY`, `DBPASS` and `DJANGO_KEY` with the generated values:
|
Create the file `/opt/docker-mailman/docker-compose.override.yaml` and replace `HYPERKITTY_KEY`, `DBPASS` and `DJANGO_KEY` with the generated values:
|
||||||
|
|
||||||
```
|
```
|
||||||
version: '2'
|
version: '2'
|
||||||
|
@ -279,11 +279,11 @@ a2ensite mailman.conf
|
||||||
systemctl restart apache2
|
systemctl restart apache2
|
||||||
|
|
||||||
cd /opt/docker-mailman
|
cd /opt/docker-mailman
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
|
|
||||||
cd /opt/mailcow-dockerized/
|
cd /opt/mailcow-dockerized/
|
||||||
docker compose pull
|
docker-compose pull
|
||||||
./renew-ssl.sh
|
./renew-ssl.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ When you create a new list and try to immediately send an e-mail, *postfix* resp
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
docker compose restart postfix-mailcow
|
docker-compose restart postfix-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
14
docs/third_party/third_party-nextcloud.de.md
gevendort
14
docs/third_party/third_party-nextcloud.de.md
gevendort
|
@ -6,7 +6,7 @@ Nextcloud kann mit dem [helper script](https://github.com/mailcow/mailcow-docker
|
||||||
|
|
||||||
Für den Fall, dass Sie das Passwort (z.B. für admin) vergessen haben und kein neues anfordern können [über den Passwort-Reset-Link auf dem Login-Bildschirm] (https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset), können Sie durch den Aufruf des Helper-Skripts mit `-r` als Parameter ein neues Passwort setzen. Verwenden Sie diese Option nur, wenn Ihre Nextcloud nicht so konfiguriert ist, dass Sie mailcow zur Authentifizierung verwendet, wie im nächsten Abschnitt beschrieben.
|
Für den Fall, dass Sie das Passwort (z.B. für admin) vergessen haben und kein neues anfordern können [über den Passwort-Reset-Link auf dem Login-Bildschirm] (https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset), können Sie durch den Aufruf des Helper-Skripts mit `-r` als Parameter ein neues Passwort setzen. Verwenden Sie diese Option nur, wenn Ihre Nextcloud nicht so konfiguriert ist, dass Sie mailcow zur Authentifizierung verwendet, wie im nächsten Abschnitt beschrieben.
|
||||||
|
|
||||||
Damit mailcow ein Zertifikat für die Nextcloud Domain generieren kann, muss die Domain unter welcher die Nextcloud später erreichbar sein soll als ADDITIONAL_SAN in die mailcow.conf hinzufügt werden und `docker compose up -d` zur Übernahme ausgeführt werden. Für weitere Informationen siehe: [Erweitertes SSL](../post_installation/firststeps-ssl.md).
|
Damit mailcow ein Zertifikat für die Nextcloud Domain generieren kann, muss die Domain unter welcher die Nextcloud später erreichbar sein soll als ADDITIONAL_SAN in die mailcow.conf hinzufügt werden und `docker-compose up -d` zur Übernahme ausgeführt werden. Für weitere Informationen siehe: [Erweitertes SSL](../post_installation/firststeps-ssl.md).
|
||||||
|
|
||||||
## Hintergrund-Aufgaben
|
## Hintergrund-Aufgaben
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@ services:
|
||||||
ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\""
|
ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\""
|
||||||
```
|
```
|
||||||
|
|
||||||
Nachdem diese Zeilen hinzugefĂĽgt wurden muss `docker compose up -d` ausgefĂĽhrt werden, um das Docker Image mit den entsprechenden Labels zu versehen. Danach muss
|
Nachdem diese Zeilen hinzugefĂĽgt wurden muss `docker-compose up -d` ausgefĂĽhrt werden, um das Docker Image mit den entsprechenden Labels zu versehen. Danach muss
|
||||||
zudem der docker scheduler neu gestartet werden, um den neuen Job zu registrieren. Dazu wird `docker compose restart ofelia-mailcow` ausgefĂĽhrt. Zur
|
zudem der docker scheduler neu gestartet werden, um den neuen Job zu registrieren. Dazu wird `docker-compose restart ofelia-mailcow` ausgefĂĽhrt. Zur
|
||||||
ĂśberprĂĽfung, ob die `ofelia` Konfiguration korrekt ist geladen wurde, kann mittels `docker compose logs ofelia-mailcow` nach einer Zeile mit dem Inhalt
|
ĂśberprĂĽfung, ob die `ofelia` Konfiguration korrekt ist geladen wurde, kann mittels `docker-compose logs ofelia-mailcow` nach einer Zeile mit dem Inhalt
|
||||||
`New job registered "nextcloud-cron" - ...` gesucht werden.
|
`New job registered "nextcloud-cron" - ...` gesucht werden.
|
||||||
|
|
||||||
Hierdurch wird alle 5 Minuten die Hintergrundverarbeitung gestartet. Da die AusfĂĽhrung selbst keine Ausgabe liefert, kann die korrekte Funktionsweise in den
|
Hierdurch wird alle 5 Minuten die Hintergrundverarbeitung gestartet. Da die AusfĂĽhrung selbst keine Ausgabe liefert, kann die korrekte Funktionsweise in den
|
||||||
|
@ -86,7 +86,7 @@ Klicken Sie auf die Schaltfläche _Speichern_ ganz unten auf der Seite.
|
||||||
Wenn Sie bisher Nextcloud mit mailcow-Authentifizierung über user\_external/IMAP verwendet haben, müssen Sie einige zusätzliche Schritte durchführen, um Ihre bestehenden Benutzerkonten mit OAuth2 zu verknüpfen.
|
Wenn Sie bisher Nextcloud mit mailcow-Authentifizierung über user\_external/IMAP verwendet haben, müssen Sie einige zusätzliche Schritte durchführen, um Ihre bestehenden Benutzerkonten mit OAuth2 zu verknüpfen.
|
||||||
|
|
||||||
1\. Klicken Sie auf die Schaltfläche in der oberen rechten Ecke und wählen Sie _Apps_. Scrollen Sie nach unten zur App _Externe Benutzerauthentifizierung_ und klicken Sie daneben auf _Entfernen_.
|
1\. Klicken Sie auf die Schaltfläche in der oberen rechten Ecke und wählen Sie _Apps_. Scrollen Sie nach unten zur App _Externe Benutzerauthentifizierung_ und klicken Sie daneben auf _Entfernen_.
|
||||||
2\. Führen Sie die folgenden Abfragen in Ihrer Nextcloud-Datenbank aus (wenn Sie Nextcloud mit dem Skript von mailcow einrichten, können Sie `source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME` ausführen):
|
2\. Führen Sie die folgenden Abfragen in Ihrer Nextcloud-Datenbank aus (wenn Sie Nextcloud mit dem Skript von mailcow einrichten, können Sie `source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME` ausführen):
|
||||||
```
|
```
|
||||||
INSERT INTO nc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM nc_users_external;
|
INSERT INTO nc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM nc_users_external;
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users_external;
|
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users_external;
|
||||||
|
@ -96,7 +96,7 @@ INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT
|
||||||
|
|
||||||
Wenn Sie Nextcloud bisher ohne mailcow-Authentifizierung, aber mit den gleichen Benutzernamen wie mailcow genutzt haben, können Sie Ihre bestehenden Benutzerkonten auch mit OAuth2 verknüpfen.
|
Wenn Sie Nextcloud bisher ohne mailcow-Authentifizierung, aber mit den gleichen Benutzernamen wie mailcow genutzt haben, können Sie Ihre bestehenden Benutzerkonten auch mit OAuth2 verknüpfen.
|
||||||
|
|
||||||
1\. Führen Sie die folgenden Abfragen in Ihrer Nextcloud-Datenbank aus (wenn Sie Nextcloud mit dem Skript von mailcow einrichten, können Sie `source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME` ausführen):
|
1\. Führen Sie die folgenden Abfragen in Ihrer Nextcloud-Datenbank aus (wenn Sie Nextcloud mit dem Skript von mailcow einrichten, können Sie `source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME` ausführen):
|
||||||
```
|
```
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
||||||
```
|
```
|
||||||
|
@ -127,4 +127,4 @@ Es kann vorkommen, dass Sie die Nextcloud-Instanz von Ihrem Netzwerk aus nicht e
|
||||||
```
|
```
|
||||||
|
|
||||||
Nachdem die Ă„nderungen vorgenommen wurden, muss der nginx-Container neu gestartet werden.
|
Nachdem die Ă„nderungen vorgenommen wurden, muss der nginx-Container neu gestartet werden.
|
||||||
`docker compose restart nginx-mailcow`
|
`docker-compose restart nginx-mailcow`
|
14
docs/third_party/third_party-nextcloud.en.md
gevendort
14
docs/third_party/third_party-nextcloud.en.md
gevendort
|
@ -6,7 +6,7 @@ Nextcloud can be set up (parameter `-i`) and removed (parameter `-p`) with the [
|
||||||
|
|
||||||
In case you have forgotten the password (e.g. for admin) and can't request a new one [via the password reset link on the login screen](https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset) calling the helper script with `-r` as parameter allows you to set a new password. Only use this option if your Nextcloud isn't configured to use mailcow for authentication as described in the next section.
|
In case you have forgotten the password (e.g. for admin) and can't request a new one [via the password reset link on the login screen](https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset) calling the helper script with `-r` as parameter allows you to set a new password. Only use this option if your Nextcloud isn't configured to use mailcow for authentication as described in the next section.
|
||||||
|
|
||||||
In order for mailcow to generate a a certificate for the nextcloud domain you need to add "nextcloud.domain.tld" to ADDITIONAL_SAN in mailcow.conf and run `docker compose up -d` to apply. For more informaton refer to: [Advanced SSL](../post_installation/firststeps-ssl.md).
|
In order for mailcow to generate a a certificate for the nextcloud domain you need to add "nextcloud.domain.tld" to ADDITIONAL_SAN in mailcow.conf and run `docker-compose up -d` to apply. For more informaton refer to: [Advanced SSL](../post_installation/firststeps-ssl.md).
|
||||||
|
|
||||||
## Background jobs
|
## Background jobs
|
||||||
|
|
||||||
|
@ -22,9 +22,9 @@ services:
|
||||||
ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\""
|
ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\""
|
||||||
```
|
```
|
||||||
|
|
||||||
After adding these lines the `docker compose up -d` command must be executed to update the docker image and also the docker scheduler image must be restarted to
|
After adding these lines the `docker-compose up -d` command must be executed to update the docker image and also the docker scheduler image must be restarted to
|
||||||
pick up the new job definition by executing `docker compose restart ofelia-mailcow`. To check if the job was successfully picked up by `ofelia` the command
|
pick up the new job definition by executing `docker-compose restart ofelia-mailcow`. To check if the job was successfully picked up by `ofelia` the command
|
||||||
`docker compose logs ofelia-mailcow` will contain a line similar to `New job registered "nextcloud-cron" - ...`.
|
`docker-compose logs ofelia-mailcow` will contain a line similar to `New job registered "nextcloud-cron" - ...`.
|
||||||
|
|
||||||
By adding these lines the background jobs will be executed every 5 minutes. To verify that the execution works correctly, the only way is to see it in the basic
|
By adding these lines the background jobs will be executed every 5 minutes. To verify that the execution works correctly, the only way is to see it in the basic
|
||||||
settings when logged in as an admin in Nextcloud. If everything is correct the first scheduled execution will change the background jobs processing setting to
|
settings when logged in as an admin in Nextcloud. If everything is correct the first scheduled execution will change the background jobs processing setting to
|
||||||
|
@ -84,7 +84,7 @@ Click the _Save_ button at the very bottom of the page.
|
||||||
If you have previously used Nextcloud with mailcow authentication via user\_external/IMAP, you need to perform some additional steps to link your existing user accounts with OAuth2.
|
If you have previously used Nextcloud with mailcow authentication via user\_external/IMAP, you need to perform some additional steps to link your existing user accounts with OAuth2.
|
||||||
|
|
||||||
1\. Click the button in the top right corner and select _Apps_. Scroll down to the _External user authentication_ app and click _Remove_ next to it.
|
1\. Click the button in the top right corner and select _Apps_. Scroll down to the _External user authentication_ app and click _Remove_ next to it.
|
||||||
2\. Run the following queries in your Nextcloud database (if you set up Nextcloud using mailcow's script, you can run `source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME`):
|
2\. Run the following queries in your Nextcloud database (if you set up Nextcloud using mailcow's script, you can run `source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME`):
|
||||||
```
|
```
|
||||||
INSERT INTO nc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM nc_users_external;
|
INSERT INTO nc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM nc_users_external;
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users_external;
|
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users_external;
|
||||||
|
@ -94,7 +94,7 @@ INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT
|
||||||
|
|
||||||
If you have previously used Nextcloud without mailcow authentication, but with the same usernames as mailcow, you can also link your existing user accounts with OAuth2.
|
If you have previously used Nextcloud without mailcow authentication, but with the same usernames as mailcow, you can also link your existing user accounts with OAuth2.
|
||||||
|
|
||||||
1\. Run the following queries in your Nextcloud database (if you set up Nextcloud using mailcow's script, you can run `source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME`):
|
1\. Run the following queries in your Nextcloud database (if you set up Nextcloud using mailcow's script, you can run `source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME`):
|
||||||
```
|
```
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
||||||
```
|
```
|
||||||
|
@ -125,4 +125,4 @@ It may happen that you cannot reach the Nextcloud instance from your network. Th
|
||||||
```
|
```
|
||||||
|
|
||||||
After the changes have been made, the nginx container must be restarted.
|
After the changes have been made, the nginx container must be restarted.
|
||||||
`docker compose restart nginx-mailcow`
|
`docker-compose restart nginx-mailcow`
|
2
docs/third_party/third_party-portainer.de.md
gevendort
2
docs/third_party/third_party-portainer.de.md
gevendort
|
@ -55,7 +55,7 @@ map $http_upgrade $connection_upgrade {
|
||||||
|
|
||||||
3\. Ăśbernehmen Sie Ihre Ă„nderungen:
|
3\. Ăśbernehmen Sie Ihre Ă„nderungen:
|
||||||
```
|
```
|
||||||
docker compose up -d && docker compose restart nginx-mailcow
|
docker-compose up -d && docker-compose restart nginx-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Nun können Sie einfach zu https://${MAILCOW_HOSTNAME}/portainer/ navigieren, um Ihre Portainer-Container-Überwachungsseite anzuzeigen. Sie werden dann aufgefordert, ein neues Passwort für den **admin** Account anzugeben. Nachdem Sie Ihr Passwort eingegeben haben, können Sie sich mit der Portainer UI verbinden.
|
Nun können Sie einfach zu https://${MAILCOW_HOSTNAME}/portainer/ navigieren, um Ihre Portainer-Container-Überwachungsseite anzuzeigen. Sie werden dann aufgefordert, ein neues Passwort für den **admin** Account anzugeben. Nachdem Sie Ihr Passwort eingegeben haben, können Sie sich mit der Portainer UI verbinden.
|
||||||
|
|
2
docs/third_party/third_party-portainer.en.md
gevendort
2
docs/third_party/third_party-portainer.en.md
gevendort
|
@ -55,7 +55,7 @@ map $http_upgrade $connection_upgrade {
|
||||||
|
|
||||||
3\. Apply your changes:
|
3\. Apply your changes:
|
||||||
```
|
```
|
||||||
docker compose up -d && docker compose restart nginx-mailcow
|
docker-compose up -d && docker-compose restart nginx-mailcow
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you can simply navigate to https://${MAILCOW_HOSTNAME}/portainer/ to view your Portainer container monitoring page. You’ll then be prompted to specify a new password for the **admin** account. After specifying your password, you’ll then be able to connect to the Portainer UI.
|
Now you can simply navigate to https://${MAILCOW_HOSTNAME}/portainer/ to view your Portainer container monitoring page. You’ll then be prompted to specify a new password for the **admin** account. After specifying your password, you’ll then be able to connect to the Portainer UI.
|
4
docs/third_party/third_party-roundcube.de.md
gevendort
4
docs/third_party/third_party-roundcube.de.md
gevendort
|
@ -246,8 +246,8 @@ Kopieren Sie den Inhalt der folgenden Dateien aus diesem [Snippet](https://gitla
|
||||||
Starten Sie schlieĂźlich mailcow neu
|
Starten Sie schlieĂźlich mailcow neu
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
4
docs/third_party/third_party-roundcube.en.md
gevendort
4
docs/third_party/third_party-roundcube.en.md
gevendort
|
@ -246,6 +246,6 @@ Copy the contents of the following files from this [Snippet](https://gitlab.com/
|
||||||
Finally, restart mailcow
|
Finally, restart mailcow
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose down
|
docker-compose down
|
||||||
docker compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen
Laden …
In neuem Issue referenzieren