Finalized Compose Switch
Dieser Commit ist enthalten in:
Ursprung
9e69d091b5
Commit
ff66db2ee7
65 geänderte Dateien mit 2328 neuen und 480 gelöschten Zeilen
|
@ -6,7 +6,7 @@ Wenn Sie Ihren Fehler innerhalb von ein paar Stunden bemerken, können Sie die D
|
||||||
|
|
||||||
Wir erstellen automatisch tägliche Backups (24 Stunden Intervall ab dem Hochfahren -d) in `/var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/`.
|
Wir erstellen automatisch tägliche Backups (24 Stunden Intervall ab dem Hochfahren -d) in `/var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/`.
|
||||||
|
|
||||||
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem Mailcow-Backend existiert**. Legen Sie diesen neu an, falls nicht mehr existent.
|
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem mailcow-Backend existiert**. Legen Sie diesen neu an, falls nicht mehr existent.
|
||||||
|
|
||||||
Kopieren Sie die Datei mit dem Namen des Benutzers, den Sie wiederherstellen wollen, nach `__MAILCOW_DIRECTORY__/data/conf/sogo`.
|
Kopieren Sie die Datei mit dem Namen des Benutzers, den Sie wiederherstellen wollen, nach `__MAILCOW_DIRECTORY__/data/conf/sogo`.
|
||||||
|
|
||||||
|
@ -52,9 +52,9 @@ Eine gelöschte Mailbox wird in ihrer verschlüsselten Form nach `/var/lib/docke
|
||||||
|
|
||||||
Der Ordner innerhalb von `_garbage` folgt der Struktur `[timestamp]_[domain_sanitized][user_sanitized]`, zum Beispiel `1629109708_exampleorgtest` im Falle von test@example.org, das am 1629109708 gelöscht wurde.
|
Der Ordner innerhalb von `_garbage` folgt der Struktur `[timestamp]_[domain_sanitized][user_sanitized]`, zum Beispiel `1629109708_exampleorgtest` im Falle von test@example.org, das am 1629109708 gelöscht wurde.
|
||||||
|
|
||||||
Um die Mailbox wiederherzustellen, stellen Sie sicher, dass Sie tatsächlich auf die gleiche Mailcow wiederherstellen, von der sie gelöscht wurde, oder Sie die gleichen Verschlüsselungsschlüssel in `crypt-vol-1` verwenden.
|
Um die Mailbox wiederherzustellen, stellen Sie sicher, dass Sie tatsächlich auf die gleiche mailcow wiederherstellen, von der sie gelöscht wurde, oder Sie die gleichen Verschlüsselungsschlüssel in `crypt-vol-1` verwenden.
|
||||||
|
|
||||||
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrer Mailcow existiert**. Legen Sie diesen neu an, wenn der Benutzer fehlt.
|
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrer mailcow existiert**. Legen Sie diesen neu an, wenn der Benutzer fehlt.
|
||||||
|
|
||||||
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:
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ Das bereitgestellte Skript funktioniert auf Standardinstallationen.
|
||||||
|
|
||||||
Es kann versagen, wenn Sie nicht unterstĂĽtzte Volume Overrides verwenden. Wir unterstĂĽtzen das nicht und wir werden keine Hacks einbauen, die das unterstĂĽtzen. Bitte erstellen und pflegen Sie einen Fork, wenn Sie Ihre Ă„nderungen beibehalten wollen.
|
Es kann versagen, wenn Sie nicht unterstĂĽtzte Volume Overrides verwenden. Wir unterstĂĽtzen das nicht und wir werden keine Hacks einbauen, die das unterstĂĽtzen. Bitte erstellen und pflegen Sie einen Fork, wenn Sie Ihre Ă„nderungen beibehalten wollen.
|
||||||
|
|
||||||
Das Skript wird **die gleichen Pfade** wie Ihre Standard-Mailcow-Installation verwenden. Das ist das mailcow-Basisverzeichnis - fĂĽr die meisten Nutzer `/opt/mailcow-dockerized` - sowie die Mountpoints.
|
Das Skript wird **die gleichen Pfade** wie Ihre Standard-mailcow-Installation verwenden. Das ist das mailcow-Basisverzeichnis - fĂĽr die meisten Nutzer `/opt/mailcow-dockerized` - sowie die Mountpoints.
|
||||||
|
|
||||||
Um die Pfade Ihrer Quellvolumes zu finden, verwenden wir `docker inspect` und lesen das Zielverzeichnis jedes Volumes, das mit Ihrem mailcow compose Projekt verbunden ist. Das bedeutet, dass wir auch Volumes übertragen, die Sie in einer Override-Datei hinzugefügt haben. Lokale Bind-Mounts können funktionieren, müssen aber nicht.
|
Um die Pfade Ihrer Quellvolumes zu finden, verwenden wir `docker inspect` und lesen das Zielverzeichnis jedes Volumes, das mit Ihrem mailcow compose Projekt verbunden ist. Das bedeutet, dass wir auch Volumes übertragen, die Sie in einer Override-Datei hinzugefügt haben. Lokale Bind-Mounts können funktionieren, müssen aber nicht.
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Wenn Sie auf diese Seite zugreifen, indem Sie sich bei Ihrem mailcow-Server anme
|
||||||
<div class="client_variables_available" markdown="1">
|
<div class="client_variables_available" markdown="1">
|
||||||
<div class="admonition success">
|
<div class="admonition success">
|
||||||
<p class="admonition-title">Erfolgreich</p>
|
<p class="admonition-title">Erfolgreich</p>
|
||||||
Da Sie diese Seite aufgerufen haben, nachdem Sie sich in Ihren Mailcow-Server eingeloggt haben, wurden alle Anleitungen mit Ihrer E-Mail-Adresse und Ihrem Servernamen personalisiert.
|
Da Sie diese Seite aufgerufen haben, nachdem Sie sich in Ihren mailcow-Server eingeloggt haben, wurden alle Anleitungen mit Ihrer E-Mail-Adresse und Ihrem Servernamen personalisiert.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Diese Anleitung geht davon aus, dass Sie beabsichtigen, einen bestehenden Mailcow-Server (Quelle) auf einen brandneuen, leeren Server (Ziel) zu migrieren. Sie kümmert sich nicht um die Erhaltung bestehender Daten auf dem Zielserver und löscht alles innerhalb von `/var/lib/docker/volumes` und somit alle Docker-Volumes, die Sie bereits eingerichtet haben.
|
Diese Anleitung geht davon aus, dass Sie beabsichtigen, einen bestehenden mailcow-Server (Quelle) auf einen brandneuen, leeren Server (Ziel) zu migrieren. Sie kümmert sich nicht um die Erhaltung bestehender Daten auf dem Zielserver und löscht alles innerhalb von `/var/lib/docker/volumes` und somit alle Docker-Volumes, die Sie bereits eingerichtet haben.
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
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.
|
||||||
|
|
|
@ -103,7 +103,7 @@ Um einen Cronjob zu erstellen, können Sie `crontab -e` ausführen und etwas wie
|
||||||
|
|
||||||
### ĂĽber Docker Job Scheduler
|
### ĂĽber Docker Job Scheduler
|
||||||
|
|
||||||
Um dies mit einem Docker-Job-Scheduler zu archivieren, verwenden Sie diese docker-compose.override.yml mit Ihrer Mailcow:
|
Um dies mit einem Docker-Job-Scheduler zu archivieren, verwenden Sie diese docker-compose.override.yml mit Ihrer mailcow:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -15,7 +15,7 @@ imap_idle_notify_interval = 5 mins
|
||||||
|
|
||||||
29 Minuten ist der maximale Wert, den der [entsprechende RFC](https://tools.ietf.org/html/rfc2177) erlaubt.
|
29 Minuten ist der maximale Wert, den der [entsprechende RFC](https://tools.ietf.org/html/rfc2177) erlaubt.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Dies ist keine Standardeinstellung in mailcow, da wir nicht wissen, wie diese Einstellung das Verhalten anderer Clients verändert. Seien Sie vorsichtig, wenn Sie dies ändern und ein anderes Verhalten beobachten.
|
Dies ist keine Standardeinstellung in mailcow, da wir nicht wissen, wie diese Einstellung das Verhalten anderer Clients verändert. Seien Sie vorsichtig, wenn Sie dies ändern und ein anderes Verhalten beobachten.
|
||||||
|
|
||||||
### Dovecot neu laden
|
### Dovecot neu laden
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
## Der "neue" Weg
|
## Der "neue" Weg
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
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, `/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, `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data` zu entfernen und einen neuen Link zu Ihrem entfernten Dateisystem zu erstellen, zum Beispiel:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
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
|
||||||
ln -s /mnt/volume-xy/vmail_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
|
ln -s /mnt/volume-xy/vmail_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
|
||||||
```
|
```
|
||||||
|
@ -18,7 +18,7 @@ Starten Sie anschlieĂźend mailcow.
|
||||||
|
|
||||||
Wenn man einen anderen Ordner für das vmail-Volume verwenden möchte, kann man eine `docker-compose.override.yml` Datei erstellen und den folgenden Inhalt hinzufügen:
|
Wenn man einen anderen Ordner für das vmail-Volume verwenden möchte, kann man eine `docker-compose.override.yml` Datei erstellen und den folgenden Inhalt hinzufügen:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
volumes:
|
volumes:
|
||||||
vmail-vol-1:
|
vmail-vol-1:
|
||||||
|
@ -51,8 +51,30 @@ 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 des kommenden Befehls aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`):
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
- 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 des folgenden Befehls aus Ihrem mailcow-Stammverzeichnis (z.B. `/opt/mailcow-dockerized`):
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,29 @@ 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 the following command from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`):
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
- 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 the following command from within your mailcow root folder (e.g. `/opt/mailcow-dockerized`):
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
|
@ -15,6 +15,7 @@ SHELL=/bin/bash
|
||||||
|
|
||||||
Um zu funktionieren muss ein lokaler Postfix auf dem Server installiert werden, welcher an den Postfix der mailcow relayed.
|
Um zu funktionieren muss ein lokaler Postfix auf dem Server installiert werden, welcher an den Postfix der mailcow relayed.
|
||||||
|
|
||||||
Genauere Informationen lassen sich unter Sektion [Post-Installationsaufgaben -> Lokaler MTA auf Dockerhost](https://mailcow.github.io/mailcow-dockerized-docs/de/post_installation/firststeps-local_mta/) finden.
|
!!! question "Frage"
|
||||||
|
Genauere Informationen lassen sich unter Sektion [Post-Installationsaufgaben -> Lokaler MTA auf Dockerhost](../../post_installation/firststeps-local_mta.de.md) finden.
|
||||||
|
|
||||||
Basierend auf den Postfix-Logs der letzten 24 Stunden sendet dieses Beispiel dann jeden Tag um 23:59:00 Uhr einen pflogsumm-Bericht an postmaster@example.net.
|
Basierend auf den Postfix-Logs der letzten 24 Stunden sendet dieses Beispiel dann jeden Tag um 23:59:00 Uhr einen pflogsumm-Bericht an postmaster@example.net.
|
||||||
|
|
|
@ -15,6 +15,7 @@ SHELL=/bin/bash
|
||||||
|
|
||||||
To work, a local postfix must be installed on the server, which relays to the mailcow postfix.
|
To work, a local postfix must be installed on the server, which relays to the mailcow postfix.
|
||||||
|
|
||||||
More detailed information can be found in section [Post installation tasks -> Local MTA on Dockerhost](https://mailcow.github.io/mailcow-dockerized-docs/post_installation/firststeps-local_mta/).
|
!!! question
|
||||||
|
More detailed information can be found in section [Post installation tasks -> Local MTA on Dockerhost](../../post_installation/firststeps-local_mta.en.md).
|
||||||
|
|
||||||
Based on the postfix logs of the last 24 hours, this example then sends a pflogsumm report to postmaster@example.net every day at 23:59:00.
|
Based on the postfix logs of the last 24 hours, this example then sends a pflogsumm report to postmaster@example.net every day at 23:59:00.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
IPs können in der Datei `data/conf/postfix/custom_postscreen_whitelist.cidr` aus dem Postscreen und damit _auch_ aus den RBL-Prüfungen entfernt werden.
|
IPs können in der Datei `data/conf/postfix/custom_postscreen_whitelist.cidr` aus dem Postscreen und damit _auch_ aus den RBL-Prüfungen entfernt werden.
|
||||||
|
|
||||||
Postscreen führt mehrere Prüfungen durch, um bösartige Absender zu identifizieren. In den meisten Fällen möchten Sie eine IP-Adresse auf die Whitelist setzen, um sie von der Suche nach einer schwarzen Liste auszuschließen.
|
Postscreen führt mehrere Prüfungen durch, um bösartige Absender zu identifizieren. In den meisten Fällen möchten Sie eine IP-Adresse auf die Whitelist setzen, um sie von der Suche nach einer Blacklist auszuschließen.
|
||||||
|
|
||||||
Das Format der Datei ist wie folgt
|
Das Format der Datei ist wie folgt
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Beispiel:
|
||||||
|
|
||||||
```
|
```
|
||||||
# Regeln werden in der angegebenen Reihenfolge ausgewertet.
|
# Regeln werden in der angegebenen Reihenfolge ausgewertet.
|
||||||
# Schwarze Liste 192.168.* auĂźer 192.168.0.1.
|
# Blacklist 192.168.* auĂźer 192.168.0.1.
|
||||||
192.168.0.1 permit
|
192.168.0.1 permit
|
||||||
192.168.0.0/16 reject
|
192.168.0.0/16 reject
|
||||||
```
|
```
|
||||||
|
|
|
@ -6,7 +6,7 @@ Wenn Sie sich entscheiden, `mynetworks` zu setzen, ignoriert Postfix die mynetwo
|
||||||
|
|
||||||
## Unauthentifiziertes Relaying
|
## Unauthentifiziertes Relaying
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Eine falsche Einstellung von `mynetworks` erlaubt es Ihrem Server, als offenes Relay verwendet zu werden. Wenn dies missbraucht wird, **beeinträchtigt** dies Ihre Fähigkeit, E-Mails zu versenden, und es kann einige Zeit dauern, bis dies behoben ist.
|
Eine falsche Einstellung von `mynetworks` erlaubt es Ihrem Server, als offenes Relay verwendet zu werden. Wenn dies missbraucht wird, **beeinträchtigt** dies Ihre Fähigkeit, E-Mails zu versenden, und es kann einige Zeit dauern, bis dies behoben ist.
|
||||||
|
|
||||||
### IPv4-Hosts/Subnetze
|
### IPv4-Hosts/Subnetze
|
||||||
|
@ -19,7 +19,19 @@ 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 folgenden Befehl aus aus, um Ihre neuen Einstellungen zu ĂĽbernehmen:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### IPv6-Hosts/Subnets
|
### IPv6-Hosts/Subnets
|
||||||
|
|
||||||
|
@ -33,7 +45,19 @@ 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 folgenden Befehl aus, um Ihre neuen Einstellungen zu ĂĽbernehmen:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
!!! 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,19 @@ 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 the following command to apply your new settings:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### IPv6 hosts/subnets
|
### IPv6 hosts/subnets
|
||||||
|
|
||||||
|
@ -33,7 +45,19 @@ 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 the following command to apply your new settings:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
!!! 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).
|
|
@ -1,4 +1,4 @@
|
||||||
SOGo wird verwendet, um ĂĽber einen Webbrowser auf Ihre Mails zuzugreifen und Ihre Kontakte oder Kalender hinzuzufĂĽgen und zu teilen. FĂĽr eine ausfĂĽhrlichere Dokumentation zu SOGo besuchen Sie bitte die [eigene Dokumentation] (http://wiki.sogo.nu/).
|
SOGo wird verwendet, um ĂĽber einen Webbrowser auf Ihre Mails zuzugreifen und Ihre Kontakte oder Kalender hinzuzufĂĽgen und zu teilen. FĂĽr eine ausfĂĽhrlichere Dokumentation zu SOGo besuchen Sie bitte die [Dokumentation von SOGo](http://wiki.sogo.nu/).
|
||||||
|
|
||||||
## Benutzerdefiniertes SOGo-Thema (CSS) anwenden
|
## Benutzerdefiniertes SOGo-Thema (CSS) anwenden
|
||||||
mailcow-Builds nach dem 28. Januar 2021 können das CSS-Thema von SOGo ändern, indem sie `data/conf/sogo/custom-theme.js` bearbeiten.
|
mailcow-Builds nach dem 28. Januar 2021 können das CSS-Thema von SOGo ändern, indem sie `data/conf/sogo/custom-theme.js` bearbeiten.
|
||||||
|
@ -7,12 +7,29 @@ Bitte schauen Sie sich die AngularJS Material [intro](https://material.angularjs
|
||||||
Sie können die mitgelieferte `custom-theme.js` als Beispiel verwenden, indem Sie die Kommentare entfernen.
|
Sie können die mitgelieferte `custom-theme.js` als Beispiel verwenden, indem Sie die Kommentare entfernen.
|
||||||
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.
|
|
||||||
3. SOGo im Browser öffnen
|
2\. SOGo und Memcached Container neu starten, indem man folgenden Befehl ausfĂĽhrt:
|
||||||
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
|
=== "docker compose (Plugin)"
|
||||||
6. fĂĽgen Sie den Java-Script-Schnipsel in die Entwicklungskonsole ein:
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
3\. SOGo im Browser öffnen
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
6\. fĂĽgen Sie den Java-Script-Schnipsel in die Entwicklungskonsole ein:
|
||||||
```
|
```
|
||||||
copy([].slice.call(document.styleSheets)
|
copy([].slice.call(document.styleSheets)
|
||||||
.map(e => e.ownerNode)
|
.map(e => e.ownerNode)
|
||||||
|
@ -21,10 +38,13 @@ copy([].slice.call(document.styleSheets)
|
||||||
.join('\n')
|
.join('\n')
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
7. Ă–ffnen Sie den Texteditor und fĂĽgen Sie die Daten aus der Zwischenablage ein (Strg+V), Sie sollten ein minimiertes CSS erhalten, speichern Sie es
|
7\. Ă–ffnen Sie den Texteditor und fĂĽgen Sie die Daten aus der Zwischenablage ein (Strg+V), Sie sollten ein minimiertes CSS erhalten, speichern Sie es
|
||||||
8. kopieren Sie die CSS-Datei auf den Mailcow-Server `data/conf/sogo/custom-theme.css`
|
|
||||||
9. editiere `data/conf/sogo/sogo.conf` und setze `SOGoUIxDebugEnabled = NO;`
|
8\. kopieren Sie die CSS-Datei auf den mailcow-Server `data/conf/sogo/custom-theme.css`
|
||||||
10. Anhängen/Erstellen von `docker-compose.override.yml` mit:
|
|
||||||
|
9\. editiere `data/conf/sogo/sogo.conf` und setze `SOGoUIxDebugEnabled = NO;`
|
||||||
|
|
||||||
|
10\. Anhängen/Erstellen von `docker-compose.override.yml` mit:
|
||||||
```
|
```
|
||||||
Version: '2.1'
|
Version: '2.1'
|
||||||
|
|
||||||
|
@ -33,8 +53,30 @@ 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 folgenden Befehl aus:
|
||||||
12. AusfĂĽhren von `docker compose restart memcached-mailcow`
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
12\. Neustarten des memcached Containers mit:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 +106,65 @@ 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 folgenden Befehl aus:
|
||||||
5. Starten Sie `docker compose restart memcached-mailcow`.
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
5. Starten Sie memcached neu mit:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 folgenden Befehl ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## 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 folgendes ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## Domains verbinden (untereinander sichtbar machen)
|
## Domains verbinden (untereinander sichtbar machen)
|
||||||
Domains sind normalerweise voneinander isoliert.
|
Domains sind normalerweise voneinander isoliert.
|
||||||
|
@ -97,15 +186,51 @@ Suche...
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
SOGo neu starten: `docker compose restart sogo-mailcow`
|
SOGo neu starten:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 folgenden Befehl aus, um die Ă„nderungen zu aktivieren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## 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 folgenden Befehl aus dem mailcow Verzeichnis aus:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'
|
||||||
|
```
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,28 @@ Please check the AngularJS Material [intro](https://material.angularjs.org/lates
|
||||||
You can use the provided `custom-theme.js` as an example starting point by removing the comments.
|
You can use the provided `custom-theme.js` as an example starting point by removing the comments.
|
||||||
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`.
|
|
||||||
3. open SOGo in browser
|
2\. restart SOGo and Memcached containers by executing the command:
|
||||||
4. open browser developer console, usually shortcut is F12
|
=== "docker compose (Plugin)"
|
||||||
5. only if you use Firefox: write by hands in dev console `allow pasting` and press enter
|
|
||||||
6. paste java script snipet in dev console:
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
3\. open SOGo in browser
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
6\. paste java script snipet in dev console:
|
||||||
```
|
```
|
||||||
copy([].slice.call(document.styleSheets)
|
copy([].slice.call(document.styleSheets)
|
||||||
.map(e => e.ownerNode)
|
.map(e => e.ownerNode)
|
||||||
|
@ -21,10 +37,14 @@ copy([].slice.call(document.styleSheets)
|
||||||
.join('\n')
|
.join('\n')
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
7. open text editor and paste data from clipboard (Ctrl+V), you should get minified CSS, save it
|
|
||||||
8. copy CSS file to mailcow server `data/conf/sogo/custom-theme.css`
|
7\. open text editor and paste data from clipboard (Ctrl+V), you should get minified CSS, save it
|
||||||
9. edit `data/conf/sogo/sogo.conf` and set `SOGoUIxDebugEnabled = NO;`
|
|
||||||
10. append/create `docker-compose.override.yml` with:
|
8\. copy CSS file to mailcow server `data/conf/sogo/custom-theme.css`
|
||||||
|
|
||||||
|
9\. edit `data/conf/sogo/sogo.conf` and set `SOGoUIxDebugEnabled = NO;`
|
||||||
|
|
||||||
|
10\. append/create `docker-compose.override.yml` with:
|
||||||
```
|
```
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
|
|
||||||
|
@ -33,12 +53,37 @@ 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`
|
|
||||||
12. run `docker compose restart memcached-mailcow`
|
11\. Run:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
12\. Run:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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`
|
||||||
2. find in `data/conf/sogo/custom-theme.js`:
|
|
||||||
|
2\. find in `data/conf/sogo/custom-theme.js`:
|
||||||
```
|
```
|
||||||
// Apply new palettes to the default theme, remap some of the hues
|
// Apply new palettes to the default theme, remap some of the hues
|
||||||
$mdThemingProvider.theme('default')
|
$mdThemingProvider.theme('default')
|
||||||
|
@ -60,22 +105,71 @@ and replace it with:
|
||||||
```
|
```
|
||||||
$mdThemingProvider.theme('default');
|
$mdThemingProvider.theme('default');
|
||||||
```
|
```
|
||||||
3. remove from `docker-compose.override.yml` volume mount in `sogo-mailcow`:
|
|
||||||
|
3\. remove from `docker-compose.override.yml` volume mount in `sogo-mailcow`:
|
||||||
```
|
```
|
||||||
- ./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`
|
|
||||||
5. run `docker compose restart memcached-mailcow`
|
4\. Run:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
5\. Run:
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 +191,50 @@ Search...
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart SOGo: `docker compose restart sogo-mailcow`
|
Restart SOGo:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 this command to activate the changes:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart memcached-mailcow sogo-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## 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 the following command from within the mailcow directory:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'
|
||||||
|
```
|
||||||
|
|
|
@ -23,7 +23,19 @@ 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 Sie den folgenden Befehl aus:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Threshold Beschreibungen
|
### Threshold Beschreibungen
|
||||||
|
|
|
@ -23,7 +23,19 @@ 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 the following command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Thresholds descriptions
|
### Thresholds descriptions
|
||||||
|
|
|
@ -6,7 +6,7 @@ Das UV-Flag (wie in "user verification") erzwingt, dass WebAuthn den Benutzer ve
|
||||||
|
|
||||||
mailcow verwendet **Client-seitige SchlĂĽsselverarbeitung**. Wir bitten den Authentifikator (d.h. YubiKey), die Registrierung in seinem Speicher zu speichern.
|
mailcow verwendet **Client-seitige SchlĂĽsselverarbeitung**. Wir bitten den Authentifikator (d.h. YubiKey), die Registrierung in seinem Speicher zu speichern.
|
||||||
|
|
||||||
Ein Benutzer muss keinen Benutzernamen eingeben. Die verfügbaren Anmeldedaten - falls vorhanden - werden dem Nutzer angezeigt, wenn er den "Schlüssel-Login" über das Mailcow UI Login auswählt.
|
Ein Benutzer muss keinen Benutzernamen eingeben. Die verfügbaren Anmeldedaten - falls vorhanden - werden dem Nutzer angezeigt, wenn er den "Schlüssel-Login" über das mailcow UI Login auswählt.
|
||||||
|
|
||||||
Beim Aufruf des Login-Prozesses werden dem Authentifikator keine Credential-IDs ĂĽbergeben. Dies wird ihn dazu zwingen, die Anmeldeinformationen in seinem eigenen Speicher zu suchen.
|
Beim Aufruf des Login-Prozesses werden dem Authentifikator keine Credential-IDs ĂĽbergeben. Dies wird ihn dazu zwingen, die Anmeldeinformationen in seinem eigenen Speicher zu suchen.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Ein Mailbox-Nutzer kann den Spam-Filter und die Black-/Whitelist-Einstellungen für seine Mailbox individuell anpassen, indem er zum Reiter **Spam-Filter** in der Mailcow-Benutzeroberfläche navigiert.
|
Ein Mailbox-Nutzer kann den Spam-Filter und die Black-/Whitelist-Einstellungen für seine Mailbox individuell anpassen, indem er zum Reiter **Spam-Filter** in der mailcow-Benutzeroberfläche navigiert.
|
||||||
|
|
||||||
![Wo man die Spam-, Black- und Whitelist-Einstellungen des Benutzers anpasst](../../assets/images/manual-guides/mailcow-spamfilter.png)
|
![Wo man die Spam-, Black- und Whitelist-Einstellungen des Benutzers anpasst](../../assets/images/manual-guides/mailcow-spamfilter.png)
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ Herzlichen Glückwunsch! Sie können sich nun mit Ihrem YubiKey in die mailcow U
|
||||||
---
|
---
|
||||||
|
|
||||||
## WebAuthn (U2F, Ersatz)
|
## WebAuthn (U2F, Ersatz)
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
**Seit Februar 2022 hat Google Chrome die UnterstĂĽtzung fĂĽr U2F aufgegeben und die Verwendung von WebAuthn standardisiert.<br>**
|
**Seit Februar 2022 hat Google Chrome die UnterstĂĽtzung fĂĽr U2F aufgegeben und die Verwendung von WebAuthn standardisiert.<br>**
|
||||||
*Die WebAuthn API (der Ersatz fĂĽr U2F) ist seit dem 21. Januar 2022 Teil von mailcow, wenn Sie also den Key ĂĽber Februar 2022 hinaus nutzen wollen, sollten Sie ein Update mit der `update.sh`* in Betracht ziehen.
|
*Die WebAuthn API (der Ersatz fĂĽr U2F) ist seit dem 21. Januar 2022 Teil von mailcow, wenn Sie also den Key ĂĽber Februar 2022 hinaus nutzen wollen, sollten Sie ein Update mit der `update.sh`* in Betracht ziehen.
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ Quellen: [caniuse.com](https://caniuse.com/webauthn), [blog.mozilla.org](https:/
|
||||||
WebAuthn funktioniert auch ohne Internetverbindung.
|
WebAuthn funktioniert auch ohne Internetverbindung.
|
||||||
|
|
||||||
### Was passiert mit meinem registrierten Fido Security Key nach dem Update von U2F auf WebAuthn?
|
### Was passiert mit meinem registrierten Fido Security Key nach dem Update von U2F auf WebAuthn?
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Mit dem neuen U2F-Ersatz (WebAuthn) müssen Sie Ihren Fido Security Key neu registrieren, zum Glück ist WebAuthn abwärtskompatibel und unterstützt das U2F-Protokoll.
|
Mit dem neuen U2F-Ersatz (WebAuthn) müssen Sie Ihren Fido Security Key neu registrieren, zum Glück ist WebAuthn abwärtskompatibel und unterstützt das U2F-Protokoll.
|
||||||
|
|
||||||
Im Idealfall sollten Sie beim nächsten Einloggen (mit dem Schlüssel) ein Textfeld erhalten, das besagt, dass Ihr Fido Security Key aufgrund des Updates auf WebAuthn entfernt und als 2-Faktor-Authentifikator gelöscht wurde.
|
Im Idealfall sollten Sie beim nächsten Einloggen (mit dem Schlüssel) ein Textfeld erhalten, das besagt, dass Ihr Fido Security Key aufgrund des Updates auf WebAuthn entfernt und als 2-Faktor-Authentifikator gelöscht wurde.
|
||||||
|
@ -76,28 +76,41 @@ 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 dem folgenden Befehl neu:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
##### Beispiel:
|
!!! abstract "Beispiel"
|
||||||
Wenn Sie die offiziellen Hersteller-Geräte nur auf Apple beschränken wollen, brauchen Sie nur das Apple Hersteller-Zertifikat im `data/web/inc/lib/WebAuthn/rootCertificates`.
|
Wenn Sie die offiziellen Hersteller-Geräte nur auf Apple beschränken wollen, brauchen Sie nur das Apple Hersteller-Zertifikat im `data/web/inc/lib/WebAuthn/rootCertificates`.
|
||||||
Nachdem Sie alle anderen Zertifikate gelöscht haben, können Sie WebAuthn 2FA nur noch mit Apple-Geräten aktivieren.
|
Nachdem Sie alle anderen Zertifikate gelöscht haben, können Sie WebAuthn 2FA nur noch mit Apple-Geräten aktivieren.
|
||||||
|
|
||||||
Das ist für jeden Hersteller gleich, also wählen Sie aus, was Ihnen gefällt (wenn Sie es wollen).
|
Das ist für jeden Hersteller gleich, also wählen Sie aus, was Ihnen gefällt (wenn Sie wollen).
|
||||||
|
|
||||||
#### Eigene Zertifikate fĂĽr WebAuthn verwenden
|
### Eigene Zertifikate fĂĽr WebAuthn verwenden
|
||||||
Wenn du ein gĂĽltiges Zertifikat vom Hersteller deines SchlĂĽssels hast, kannst du es auch zu deiner Mailcow hinzufĂĽgen!
|
Wenn Sie ein gültiges Zertifikat vom Hersteller eines Schlüssels haben, können Sie es auch zu ihrer mailcow hinzufügen!
|
||||||
|
|
||||||
Kopieren Sie einfach das Zertifikat in den `data/web/inc/lib/WebAuthn/rootCertificates` Ordner und starten Sie Ihre Mailcow neu.
|
Kopieren Sie einfach das Zertifikat in den `data/web/inc/lib/WebAuthn/rootCertificates` Ordner und starten Sie Ihre mailcow neu.
|
||||||
|
|
||||||
Nun sollten Sie in der Lage sein, auch dieses Gerät zu registrieren, obwohl die Überprüfung für die Herstellerzertifikate aktiviert ist, da Sie das Zertifikat manuell hinzugefügt haben.
|
Nun sollten Sie in der Lage sein, auch dieses Gerät zu registrieren, obwohl die Überprüfung für die Herstellerzertifikate aktiviert ist, da Sie das Zertifikat manuell hinzugefügt haben.
|
||||||
|
|
||||||
#### Ist es gefährlich, den Vendor Check deaktiviert zu lassen?
|
### Ist es gefährlich, den Vendor Check deaktiviert zu lassen?
|
||||||
Nein, das ist es nicht!
|
Nein, das ist es nicht!
|
||||||
Diese Herstellerzertifikate werden nur zur ĂśberprĂĽfung der Originalhardware verwendet, nicht zur Absicherung des Registrierungsprozesses.
|
Diese Herstellerzertifikate werden nur zur ĂśberprĂĽfung der Originalhardware verwendet, nicht zur Absicherung des Registrierungsprozesses.
|
||||||
|
|
||||||
Wie Sie in diesen Artikeln lesen können, hat die Deaktivierung nichts mit der Software-Sicherheit zu tun:
|
Wie Sie in diesen Artikeln lesen können, hat die Deaktivierung nichts mit der Software-Sicherheit zu tun:
|
||||||
|
|
||||||
- [https://developers.yubico.com/U2F/Attestation_and_Metadata/](https://developers.yubico.com/U2F/Attestation_and_Metadata/)
|
- [https://developers.yubico.com/U2F/Attestation_and_Metadata/](https://developers.yubico.com/U2F/Attestation_and_Metadata/)
|
||||||
- [https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651](https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651)
|
- [https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651](https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651)
|
||||||
- [https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01](https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01)
|
- [https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01](https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01)
|
||||||
|
|
|
@ -78,28 +78,41 @@ 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 the following command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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`.
|
||||||
|
|
||||||
##### Example:
|
!!! abstract "Example"
|
||||||
If you want to limit the official Vendor devices to Apple only you only need the Apple Vendor Certificate inside the `data/web/inc/lib/WebAuthn/rootCertificates`.
|
If you want to limit the official Vendor devices to Apple only you only need the Apple Vendor Certificate inside the `data/web/inc/lib/WebAuthn/rootCertificates`.
|
||||||
After you deleted all other certs you now only can activate WebAuthn 2FA with Apple devices.
|
After you deleted all other certs you now only can activate WebAuthn 2FA with Apple devices.
|
||||||
|
|
||||||
That´s for every vendor the same, so choose what you like (if you want to).
|
Every vendor (listed there) behaves the same, so choose what you like (if you want to).
|
||||||
|
|
||||||
#### Use own certificates for WebAuthn
|
### Use own certificates for WebAuthn
|
||||||
If you have a valid certificate from the vendor of your key you can also add it to your mailcow!
|
If you have a valid certificate from the vendor of your key you can also add it to your mailcow!
|
||||||
|
|
||||||
Just copy the certificate into the `data/web/inc/lib/WebAuthn/rootCertificates` folder and restart your mailcow.
|
Just copy the certificate into the `data/web/inc/lib/WebAuthn/rootCertificates` folder and restart your mailcow.
|
||||||
|
|
||||||
Now you should be able to register this device as well, even though the verification for the vendor certificates is enabled, since you just added the certificate manually.
|
Now you should be able to register this device as well, even though the verification for the vendor certificates is enabled, since you just added the certificate manually.
|
||||||
|
|
||||||
#### Is it dangerous to keep the Vendor Check disabled?
|
### Is it dangerous to keep the Vendor Check disabled?
|
||||||
No, it isn´t!
|
No, it isn´t!
|
||||||
These vendor certificates are only used to verify original hardware, not to secure the registration process.
|
These vendor certificates are only used to verify original hardware, not to secure the registration process.
|
||||||
|
|
||||||
As you can read in these articles, the deactivation is not software security related:
|
As you can read in these articles, the deactivation is not software security related:
|
||||||
|
|
||||||
- [https://developers.yubico.com/U2F/Attestation_and_Metadata/](https://developers.yubico.com/U2F/Attestation_and_Metadata/)
|
- [https://developers.yubico.com/U2F/Attestation_and_Metadata/](https://developers.yubico.com/U2F/Attestation_and_Metadata/)
|
||||||
- [https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651](https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651)
|
- [https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651](https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651)
|
||||||
- [https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01](https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01)
|
- [https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01](https://medium.com/webauthnworks/sorting-fido-ctap-webauthn-terminology-7d32067c0b01)
|
||||||
|
|
|
@ -25,12 +25,28 @@ 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 (Plugin)"
|
||||||
docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
Andernfalls starten Sie Nginx neu:
|
Andernfalls starten Sie Nginx neu:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose restart nginx-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart
|
||||||
|
```
|
|
@ -25,12 +25,28 @@ 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 (Plugin)"
|
||||||
docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
Otherwise restart Nginx:
|
Otherwise restart Nginx:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose restart nginx-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart
|
||||||
|
```
|
|
@ -19,8 +19,16 @@ ssl_min_protocol = TLSv1
|
||||||
|
|
||||||
Starten Sie die betroffenen Dienste neu:
|
Starten Sie die betroffenen Dienste neu:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose restart postfix-mailcow dovecot-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow dovecot-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
|
@ -19,8 +19,16 @@ ssl_min_protocol = TLSv1
|
||||||
|
|
||||||
Restart the affected services:
|
Restart the affected services:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose restart postfix-mailcow dovecot-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose restart postfix-mailcow dovecot-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
|
@ -1,6 +1,6 @@
|
||||||
Es ist möglich, Pre- und Post-Update-Hooks zum `update.sh` Skript hinzuzufügen, das Ihre gesamte mailcow-Installation aktualisiert.
|
Es ist möglich, Pre- und Post-Update-Hooks zum `update.sh` Skript hinzuzufügen, das Ihre gesamte mailcow-Installation aktualisiert.
|
||||||
|
|
||||||
Um dies zu tun, fĂĽgen Sie einfach das entsprechende Bash-Skript in Ihr Mailcow-Root-Verzeichnis ein:
|
Um dies zu tun, fĂĽgen Sie einfach das entsprechende Bash-Skript in Ihr mailcow-Root-Verzeichnis ein:
|
||||||
|
|
||||||
* `pre_update_hook.sh` fĂĽr Befehle, die vor dem Update laufen sollen
|
* `pre_update_hook.sh` fĂĽr Befehle, die vor dem Update laufen sollen
|
||||||
* `post_update_hook.sh` fĂĽr Befehle, die nach dem Update ausgefĂĽhrt werden sollen
|
* `post_update_hook.sh` fĂĽr Befehle, die nach dem Update ausgefĂĽhrt werden sollen
|
||||||
|
|
|
@ -13,18 +13,30 @@ 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 den folgenden Befehl ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
**Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!**
|
**Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!**
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Wenn Sie planen, einen Reverse-Proxy zu verwenden und einen anderen Servernamen als **MAILCOW_HOSTNAME** verwenden wollen, müssen Sie **Zusätzliche Servernamen für mailcow UI** am Ende dieser Seite hinzufügen.
|
Wenn Sie planen, einen Reverse-Proxy zu verwenden und einen anderen Servernamen als **MAILCOW_HOSTNAME** verwenden wollen, müssen Sie **Zusätzliche Servernamen für mailcow UI** am Ende dieser Seite hinzufügen.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Stellen Sie sicher, dass Sie `generate_config.sh` ausfĂĽhren, bevor Sie die untenstehenden Konfigurationsbeispiele aktivieren.
|
Stellen Sie sicher, dass Sie `generate_config.sh` ausfĂĽhren, bevor Sie die untenstehenden Konfigurationsbeispiele aktivieren.
|
||||||
Das Skript `generate_config.sh` kopiert die Snake-oil Zertifikate an den richtigen Ort, so dass die Dienste nicht aufgrund fehlender Dateien nicht starten können.
|
Das Skript `generate_config.sh` kopiert die Snake-oil Zertifikate an den richtigen Ort, so dass die Dienste nicht aufgrund fehlender Dateien nicht starten können.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Wenn Sie TLS SNI aktivieren (`ENABLE_TLS_SNI` in mailcow.conf), **mĂĽssen** die Zertifikatspfade in Ihrem Reverse-Proxy mit den korrekten Pfaden in data/assets/ssl/{hostname} ĂĽbereinstimmen. Die Zertifikate werden in `data/assets/ssl/{hostname1,hostname2,etc}` aufgeteilt und werden daher nicht funktionieren, wenn Sie die Beispiele von unten kopieren, die auf `data/assets/ssl/cert.pem` etc. zeigen.
|
Wenn Sie TLS SNI aktivieren (`ENABLE_TLS_SNI` in mailcow.conf), **mĂĽssen** die Zertifikatspfade in Ihrem Reverse-Proxy mit den korrekten Pfaden in data/assets/ssl/{hostname} ĂĽbereinstimmen. Die Zertifikate werden in `data/assets/ssl/{hostname1,hostname2,etc}` aufgeteilt und werden daher nicht funktionieren, wenn Sie die Beispiele von unten kopieren, die auf `data/assets/ssl/cert.pem` etc. zeigen.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
@ -180,9 +192,21 @@ 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 den folgenden Befehl 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.
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Dann erstellen wir eine `docker-compose.override.yml` Datei, um die Hauptdatei `docker-compose.yml` zu ĂĽberschreiben, die sich im mailcow-Stammverzeichnis befindet.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
|
@ -223,7 +247,7 @@ services:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Ă„ndern Sie dies nur, wenn Sie eine andere Domain fĂĽr Mailcows Web-Frontend verwenden als in der Standard-Konfiguration
|
# Ă„ndern Sie dies nur, wenn Sie eine andere Domain fĂĽr mailcows Web-Frontend verwenden als in der Standard-Konfiguration
|
||||||
- DOMAIN=${MAILCOW_HOSTNAME}
|
- DOMAIN=${MAILCOW_HOSTNAME}
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
|
@ -239,13 +263,25 @@ volumes:
|
||||||
name: traefik_acme
|
name: traefik_acme
|
||||||
```
|
```
|
||||||
|
|
||||||
Starten Sie die neuen Container mit `docker compose up -d`.
|
Starten Sie die neuen Container mit:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
Da Traefik 2 ein acme v2 Format verwendet, um ALLE Zertifikaten 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 Zertifikaten 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](https://hub.docker.com/r/humenius/traefik-certs-dumper) gezeigte docker-compose.yml 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).
|
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).
|
||||||
|
|
||||||
|
@ -339,4 +375,16 @@ 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 zum Anwenden folgendes aus:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
|
@ -13,7 +13,19 @@ 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 the command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
**Important information, please read them carefully!**
|
**Important information, please read them carefully!**
|
||||||
|
|
||||||
|
@ -182,7 +194,19 @@ 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 the following command to apply the changes:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -242,14 +266,26 @@ volumes:
|
||||||
name: traefik_acme
|
name: traefik_acme
|
||||||
```
|
```
|
||||||
|
|
||||||
Start the new containers with `docker compose up -d`.
|
Start the new containers with:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.yml 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).
|
||||||
|
|
||||||
|
@ -342,4 +378,16 @@ 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 the following command to apply:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
|
@ -11,8 +11,32 @@ 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 folgendes aus:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
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 mit hilfe des folgendem Befehles um sicherzustellen, dass die SNAT-Einstellungen angewendet wurden:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 netfilter-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 netfilter-mailcow
|
||||||
|
```
|
|
@ -11,8 +11,32 @@ SNAT_TO_SOURCE=1.2.3.4
|
||||||
SNAT6_TO_SOURCE=dead:beef
|
SNAT6_TO_SOURCE=dead:beef
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `docker compose up -d`.
|
Run the command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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 with the following command to ensure the SNAT settings have been applied:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 netfilter-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 netfilter-mailcow
|
||||||
|
```
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Der "acme-mailcow" Container wird versuchen, ein LE-Zertifikat fĂĽr `${MAILCOW_HOSTNAME}`, `autodiscover.ADDED_MAIL_DOMAIN` und `autoconfig.ADDED_MAIL_DOMAIN` zu erhalten.
|
Der "acme-mailcow" Container wird versuchen, ein LE-Zertifikat fĂĽr `${MAILCOW_HOSTNAME}`, `autodiscover.ADDED_MAIL_DOMAIN` und `autoconfig.ADDED_MAIL_DOMAIN` zu erhalten.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
mailcow **muss** auf Port 80 verfügbar sein, damit der acme-Client funktioniert. Unsere Reverse Proxy Beispielkonfigurationen decken das ab. Sie können auch jeden externen ACME-Client (z.B. certbot) verwenden, um Zertifikate zu erhalten, aber Sie müssen sicherstellen, dass sie an den richtigen Ort kopiert werden und ein Post-Hook die betroffenen Container neu lädt. Weitere Informationen finden Sie in der Reverse Proxy-Dokumentation.
|
mailcow **muss** auf Port 80 verfügbar sein, damit der acme-Client funktioniert. Unsere Reverse Proxy Beispielkonfigurationen decken das ab. Sie können auch jeden externen ACME-Client (z.B. certbot) verwenden, um Zertifikate zu erhalten, aber Sie müssen sicherstellen, dass sie an den richtigen Ort kopiert werden und ein Post-Hook die betroffenen Container neu lädt. Weitere Informationen finden Sie in der Reverse Proxy-Dokumentation.
|
||||||
|
|
||||||
Standardmäßig, d.h. **0 Domains** sind zu mailcow hinzugefügt, wird es versuchen, ein Zertifikat für `${MAILCOW_HOSTNAME}` zu erhalten.
|
Standardmäßig, d.h. **0 Domains** sind zu mailcow hinzugefügt, wird es versuchen, ein Zertifikat für `${MAILCOW_HOSTNAME}` zu erhalten.
|
||||||
|
@ -13,7 +13,33 @@ 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 den folgenden Befehl:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
Ăśberwachen Sie die Logs mit:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### Zusätzliche Domain-Namen
|
### Zusätzliche Domain-Namen
|
||||||
|
|
||||||
|
@ -29,7 +55,19 @@ 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 den folgenden Befehl aus, um betroffene Container automatisch neu zu erstellen:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
!!! 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,19 +78,43 @@ 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 den folgenden Befehl aus, um es anzuwenden:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Erneuerung erzwingen
|
### Erneuerung erzwingen
|
||||||
|
|
||||||
Um eine Erneuerung zu erzwingen, mĂĽssen Sie eine Datei namens `force_renew` erstellen und den `acme-mailcow` Container neu starten:
|
Um eine Erneuerung zu erzwingen, mĂĽssen Sie eine Datei namens `force_renew` erstellen und den `acme-mailcow` Container neu starten:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
cd /opt/mailcow-dockerized
|
|
||||||
touch data/assets/ssl/force_renew
|
``` bash
|
||||||
docker compose restart acme-mailcow
|
cd /opt/mailcow-dockerized
|
||||||
# PrĂĽfen Sie nun die Logs auf eine Erneuerung
|
touch data/assets/ssl/force_renew
|
||||||
docker compose logs --tail=200 -f acme-mailcow
|
docker compose restart acme-mailcow
|
||||||
```
|
# PrĂĽfen Sie nun die Logs auf eine Erneuerung
|
||||||
|
docker compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
cd /opt/mailcow-dockerized
|
||||||
|
touch data/assets/ssl/force_renew
|
||||||
|
docker-compose restart acme-mailcow
|
||||||
|
# PrĂĽfen Sie nun die Logs auf eine Erneuerung
|
||||||
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
Die Datei wird automatisch gelöscht.
|
Die Datei wird automatisch gelöscht.
|
||||||
|
|
||||||
|
@ -60,20 +122,56 @@ 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, den Firewall-Dienst stoppen, die Chains 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 Sie einen SKIP_* Parameter geändert haben, führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 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, mit dem folgenden Befehl:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
#### 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, mit dem folgenden Befehl:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Das Let's Encrypt subjectAltName-Limit von 100 Domains
|
### Das Let's Encrypt subjectAltName-Limit von 100 Domains
|
||||||
|
|
||||||
|
@ -81,7 +179,7 @@ Let's Encrypt hat derzeit [ein Limit von 100 Domainnamen pro Zertifikat](https:/
|
||||||
|
|
||||||
Standardmäßig erstellt "acme-mailcow" ein einzelnes SAN-Zertifikat für alle validierten Domains
|
Standardmäßig erstellt "acme-mailcow" ein einzelnes SAN-Zertifikat für alle validierten Domains
|
||||||
(siehe den [ersten Abschnitt](#lets-encrypt-wird-mitgeliefert) und [Zusätzliche Domainnamen](#zusatzliche-domain-namen)).
|
(siehe den [ersten Abschnitt](#lets-encrypt-wird-mitgeliefert) und [Zusätzliche Domainnamen](#zusatzliche-domain-namen)).
|
||||||
Dies bietet beste Kompatibilität, bedeutet aber, dass das Let's Encrypt-Limit überschritten wird, wenn Sie zu viele Domains zu einer einzelnen Mailcow-Installation hinzufügen.
|
Dies bietet beste Kompatibilität, bedeutet aber, dass das Let's Encrypt-Limit überschritten wird, wenn Sie zu viele Domains zu einer einzelnen mailcow-Installation hinzufügen.
|
||||||
|
|
||||||
Um dies zu lösen, können Sie `ENABLE_SSL_SNI` so konfigurieren, dass es generiert wird:
|
Um dies zu lösen, können Sie `ENABLE_SSL_SNI` so konfigurieren, dass es generiert wird:
|
||||||
|
|
||||||
|
@ -91,9 +189,21 @@ 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" mit dem folgenden Befehl neu:
|
||||||
|
|
||||||
!!! warning
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! warning "Warnung"
|
||||||
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).
|
||||||
Sie sollten sicherstellen, dass diese Clients den `MAILCOW_HOSTNAME` fĂĽr sichere Verbindungen verwenden, wenn Sie diese Funktion aktivieren.
|
Sie sollten sicherstellen, dass diese Clients den `MAILCOW_HOSTNAME` fĂĽr sichere Verbindungen verwenden, wenn Sie diese Funktion aktivieren.
|
||||||
|
|
||||||
|
@ -101,7 +211,7 @@ Hier ist ein Beispiel:
|
||||||
|
|
||||||
- `MAILCOW_HOSTNAME=server.email.tld`
|
- `MAILCOW_HOSTNAME=server.email.tld`
|
||||||
- `ADDITIONAL_SAN=webmail.email.tld,mail.*`
|
- `ADDITIONAL_SAN=webmail.email.tld,mail.*`
|
||||||
- Mailcow E-Mail-Domänen: "domain1.tld" und "domain2.tld"
|
- mailcow E-Mail-Domänen: "domain1.tld" und "domain2.tld"
|
||||||
|
|
||||||
Die folgenden Zertifikate werden generiert:
|
Die folgenden Zertifikate werden generiert:
|
||||||
|
|
||||||
|
@ -125,13 +235,25 @@ docker restart $(docker ps -qaf name=nginx-mailcow)
|
||||||
docker restart $(docker ps -qaf name=dovecot-mailcow)
|
docker restart $(docker ps -qaf name=dovecot-mailcow)
|
||||||
```
|
```
|
||||||
|
|
||||||
Siehe [Post-Hook-Skript für Nicht-Mailcow-ACME-Clients](../firststeps-rp#optional-post-hook-skript-fur-nicht-mailcow-acme-clients) für ein vollständiges Beispielskript.
|
Siehe [Post-Hook-Skript für Nicht-mailcow-ACME-Clients](../firststeps-rp#optional-post-hook-skript-fur-nicht-mailcow-acme-clients) für ein vollständiges Beispielskript.
|
||||||
|
|
||||||
### Test gegen das ACME-Verzeichnis
|
### Test gegen das ACME-Verzeichnis
|
||||||
|
|
||||||
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 den folgenden Befehl aus, um Ihre Ă„nderungen zu aktivieren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Benutzerdefinierte Verzeichnis-URL
|
### Benutzerdefinierte Verzeichnis-URL
|
||||||
|
|
||||||
|
@ -143,11 +265,35 @@ 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 den folgenden Befehl aus, um Ihre Ă„nderungen zu aktivieren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Ăś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 den folgenden Befehl aus, um herauszufinden, warum eine Validierung fehlschlägt:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -164,7 +310,7 @@ echo "Q" | openssl s_client -connect mx.mailcow.email:443
|
||||||
|
|
||||||
Um die von openssl zurückgegebenen Verfallsdaten gegen MAILCOW_HOSTNAME zu validieren, können Sie unser Hilfsskript verwenden:
|
Um die von openssl zurückgegebenen Verfallsdaten gegen MAILCOW_HOSTNAME zu validieren, können Sie unser Hilfsskript verwenden:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
bash helper-scripts/expiry-dates.sh
|
bash helper-scripts/expiry-dates.sh
|
||||||
```
|
```
|
||||||
|
|
|
@ -13,7 +13,33 @@ 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 the following command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
Monitor its logs with:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### Additional domain names
|
### Additional domain names
|
||||||
|
|
||||||
|
@ -29,7 +55,19 @@ 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 the following command to recreate affected containers automatically:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
!!! 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,19 +78,43 @@ 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 the command below to apply:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Force renewal
|
### Force renewal
|
||||||
|
|
||||||
To force a renewal, you need to create a file named `force_renew` and restart the `acme-mailcow` container:
|
To force a renewal, you need to create a file named `force_renew` and restart the `acme-mailcow` container:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
cd /opt/mailcow-dockerized
|
|
||||||
touch data/assets/ssl/force_renew
|
``` bash
|
||||||
docker compose restart acme-mailcow
|
cd /opt/mailcow-dockerized
|
||||||
# Now check the logs for a renewal
|
touch data/assets/ssl/force_renew
|
||||||
docker compose logs --tail=200 -f acme-mailcow
|
docker compose restart acme-mailcow
|
||||||
```
|
# Now check the logs for a renewal
|
||||||
|
docker compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
cd /opt/mailcow-dockerized
|
||||||
|
touch data/assets/ssl/force_renew
|
||||||
|
docker-compose restart acme-mailcow
|
||||||
|
# Now check the logs for a renewal
|
||||||
|
docker-compose logs --tail=200 -f acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
The file will be deleted automatically.
|
The file will be deleted automatically.
|
||||||
|
|
||||||
|
@ -60,20 +122,56 @@ 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, 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 the command below to apply your changes:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 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" with:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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" with:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### The Let's Encrypt subjectAltName limit of 100 domains
|
### The Let's Encrypt subjectAltName limit of 100 domains
|
||||||
|
|
||||||
|
@ -91,7 +189,19 @@ 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" with:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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).
|
||||||
|
@ -101,7 +211,7 @@ Here is an example:
|
||||||
|
|
||||||
- `MAILCOW_HOSTNAME=server.email.tld`
|
- `MAILCOW_HOSTNAME=server.email.tld`
|
||||||
- `ADDITIONAL_SAN=webmail.email.tld,mail.*`
|
- `ADDITIONAL_SAN=webmail.email.tld,mail.*`
|
||||||
- Mailcow email domains: "domain1.tld" and "domain2.tld"
|
- mailcow email domains: "domain1.tld" and "domain2.tld"
|
||||||
|
|
||||||
The following certificates will be generated:
|
The following certificates will be generated:
|
||||||
|
|
||||||
|
@ -131,7 +241,19 @@ 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 the command below to activate your changes:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Custom directory URL
|
### Custom directory URL
|
||||||
|
|
||||||
|
@ -143,11 +265,35 @@ 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 the command below to activate your changes:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Check your configuration
|
### Check your configuration
|
||||||
|
|
||||||
Run `docker compose logs acme-mailcow` to find out why a validation fails.
|
Run the command below to find out why a validation fails:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs --tail=200 acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs --tail=200 acme-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -164,7 +310,7 @@ echo "Q" | openssl s_client -connect mx.mailcow.email:443
|
||||||
|
|
||||||
To validate the expiry dates as returned by openssl against MAILCOW_HOSTNAME, you are able to use our helper script:
|
To validate the expiry dates as returned by openssl against MAILCOW_HOSTNAME, you are able to use our helper script:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cd /opt/mailcow-dockerized
|
cd /opt/mailcow-dockerized
|
||||||
bash helper-scripts/expiry-dates.sh
|
bash helper-scripts/expiry-dates.sh
|
||||||
```
|
```
|
||||||
|
|
166
docs/third_party/borgmatic/third_party-borgmatic.de.md
gevendort
166
docs/third_party/borgmatic/third_party-borgmatic.de.md
gevendort
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## EinfĂĽhrung
|
## EinfĂĽhrung
|
||||||
|
|
||||||
Borgmatic ist ein groĂźartiger Weg, um Backups auf Ihrem Mailcow-Setup durchzufĂĽhren, da es Ihre Daten sicher verschlĂĽsselt und extrem einfach zu
|
Borgmatic ist ein groĂźartiger Weg, um Backups auf Ihrem mailcow-Setup durchzufĂĽhren, da es Ihre Daten sicher verschlĂĽsselt und extrem einfach zu
|
||||||
einzurichten.
|
einzurichten.
|
||||||
|
|
||||||
Aufgrund seiner Deduplizierungsfähigkeiten können Sie eine große Anzahl von Backups speichern, ohne große Mengen an Speicherplatz zu verschwenden.
|
Aufgrund seiner Deduplizierungsfähigkeiten können Sie eine große Anzahl von Backups speichern, ohne große Mengen an Speicherplatz zu verschwenden.
|
||||||
|
@ -127,9 +127,61 @@ 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
|
=== "docker compose (Plugin)"
|
||||||
docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Das Backup Repository initialisieren
|
||||||
|
|
||||||
|
Zwar ist Ihr borgmatic-Container jetzt betriebsbereit, aber die Backups schlagen derzeit fehl, da das Repository nicht
|
||||||
|
initialisiert wurde.
|
||||||
|
|
||||||
|
Um das Repository zu initialisieren, fĂĽhren Sie folgenden Befehl aus:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
||||||
|
```
|
||||||
|
|
||||||
|
Sie werden aufgefordert, den SSH-Hostschlüssel Ihres entfernten Repository-Servers zu authentifizieren. Prüfen Sie, ob er übereinstimmt und bestätigen
|
||||||
|
und bestätigen Sie die Aufforderung mit `yes`. Das Repository wird mit der Passphrase initialisiert, die Sie zuvor in der Umgebungsvariable `BORG_PASSPHRASE` gesetzt haben.
|
||||||
|
|
||||||
|
Bei Verwendung einer der `repokey`-VerschlĂĽsselungsmethoden wird der VerschlĂĽsselungsschlĂĽssel im Repository selbst gespeichert und nicht auf dem
|
||||||
|
dem Client, so dass in dieser Hinsicht keine weiteren MaĂźnahmen erforderlich sind. Wenn Sie sich fĂĽr die Verwendung einer `keyfile` anstelle von
|
||||||
|
`repokey` entscheiden, stellen Sie sicher, dass Sie den SchlĂĽssel exportieren und separat sichern. Lesen Sie den Abschnitt [Exportieren von SchlĂĽsseln](#exportieren-von-schlusseln)
|
||||||
|
um zu erfahren, wie Sie den Schlüssel abrufen können.
|
||||||
|
|
||||||
|
### Container neustarten
|
||||||
|
|
||||||
|
Nachdem wir nun die Konfiguration und Initialisierung des Repositorys abgeschlossen haben, starten wir den Container neu, um sicherzustellen, dass er sich in einem definierten
|
||||||
|
Zustand befindet:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart borgmatic-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart borgmatic-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## Wiederherstellung von einem Backup
|
## Wiederherstellung von einem Backup
|
||||||
|
|
||||||
|
@ -138,13 +190,13 @@ keine benutzerdefinierten Daten in ihrem maildir oder ihrer mailcow Datenbank.
|
||||||
|
|
||||||
### Wiederherstellen von maildir
|
### Wiederherstellen von maildir
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Dies wird Dateien in Ihrem maildir überschreiben! Führen Sie dies nicht aus, es sei denn, Sie beabsichtigen tatsächlich, Mail
|
Dies wird Dateien in Ihrem maildir überschreiben! Führen Sie dies nicht aus, es sei denn, Sie beabsichtigen tatsächlich, Mail
|
||||||
Dateien von einem Backup wiederherzustellen.
|
Dateien von einem Backup wiederherzustellen.
|
||||||
|
|
||||||
!!! note "Wenn Sie SELinux im Erzwingungsmodus verwenden"
|
!!! note "Wenn Sie SELinux im Erzwingungsmodus verwenden"
|
||||||
Wenn Sie mailcow auf einem Host mit SELinux im Enforcing-Modus verwenden, müssen Sie es vorübergehend deaktivieren während
|
Wenn Sie mailcow auf einem Host mit SELinux im Enforcing-Modus verwenden, müssen Sie es vorübergehend deaktivieren während
|
||||||
während der Extraktion des Archivs vorübergehend deaktivieren, da das Mailcow-Setup das vmail-Volumen als privat kennzeichnet, das ausschließlich dem Dovecot-Container
|
während der Extraktion des Archivs vorübergehend deaktivieren, da das mailcow-Setup das vmail-Volumen als privat kennzeichnet, das ausschließlich dem Dovecot-Container
|
||||||
ausschlieĂźlich. SELinux wird (berechtigterweise) jeden anderen Container, wie z.B. den borgmatic Container, daran hindern, auf
|
ausschlieĂźlich. SELinux wird (berechtigterweise) jeden anderen Container, wie z.B. den borgmatic Container, daran hindern, auf
|
||||||
dieses Volume zu schreiben.
|
dieses Volume zu schreiben.
|
||||||
|
|
||||||
|
@ -152,37 +204,61 @@ Bevor Sie eine Wiederherstellung durchfĂĽhren, mĂĽssen Sie das vmail-Volume in `
|
||||||
das `ro`-Flag aus dem Volume entfernen.
|
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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
[Auflistung aller verfĂĽgbaren Archive](#auflistung-aller-verfugbaren-archive))
|
[Auflistung aller verfĂĽgbaren Archive](#auflistung-aller-verfugbaren-archive))
|
||||||
|
|
||||||
### MySQL wiederherstellen
|
### MySQL wiederherstellen
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Die Ausführung dieses Befehls löscht und erstellt die mailcow-Datenbank neu! Führen sie diesen Befehl nicht aus, es sei denn sie beabsichtigen, die mailcow-Datenbank von einem Backup wiederherzustellen.
|
Die Ausführung dieses Befehls löscht und erstellt die mailcow-Datenbank neu! Führen sie diesen Befehl nicht aus, es sei denn sie beabsichtigen, die mailcow-Datenbank von einem Backup wiederherzustellen.
|
||||||
|
|
||||||
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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
[Auflistung aller verfĂĽgbaren Archive](#auflistung-aller-verfugbaren-archive))
|
[Auflistung aller verfĂĽgbaren Archive](#auflistung-aller-verfugbaren-archive))
|
||||||
|
|
||||||
### Nach der Wiederherstellung
|
### Nach der Wiederherstellung
|
||||||
|
|
||||||
Nach der Wiederherstellung müssen Sie mailcow neu starten. Wenn Sie den SELinux-Erzwingungsmodus deaktiviert haben, wäre jetzt ein guter Zeitpunkt, um
|
Nach der Wiederherstellung müssen Sie mailcow neu starten. Wenn Sie SELinux "Erzwingen" deaktiviert haben, wäre jetzt ein guter Zeitpunkt, um
|
||||||
ihn wieder zu aktivieren.
|
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
|
=== "docker compose (Plugin)"
|
||||||
docker compose down && docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose down && docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
eine Weile dauern kann, wenn Sie viele Dateien haben.
|
eine Weile dauern kann, wenn Sie viele Dateien haben.
|
||||||
|
@ -191,24 +267,48 @@ eine Weile dauern kann, wenn Sie viele Dateien haben.
|
||||||
|
|
||||||
### Manueller Archivierungslauf (mit Debugging-Ausgabe)
|
### Manueller Archivierungslauf (mit Debugging-Ausgabe)
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic -v 2
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
|
```
|
||||||
|
|
||||||
### Auflistung aller verfĂĽgbaren Archive
|
### Auflistung aller verfĂĽgbaren Archive
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic list
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic list
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec borgmatic-mailcow borgmatic list
|
||||||
|
```
|
||||||
|
|
||||||
### Sperre aufheben
|
### Sperre aufheben
|
||||||
|
|
||||||
Wenn borg während eines Archivierungslaufs unterbrochen wird, hinterlässt es eine veraltete Sperre, die gelöscht werden muss, bevor
|
Wenn borg während eines Archivierungslaufs unterbrochen wird, hinterlässt es eine veraltete Sperre, die gelöscht werden muss, bevor
|
||||||
neue Operationen durchgeführt werden können:
|
neue Operationen durchgeführt werden können:
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -224,8 +324,16 @@ 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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
142
docs/third_party/borgmatic/third_party-borgmatic.en.md
gevendort
142
docs/third_party/borgmatic/third_party-borgmatic.en.md
gevendort
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Borgmatic is a great way to run backups on your Mailcow setup as it securely encrypts your data and is extremely easy to
|
Borgmatic is a great way to run backups on your mailcow setup as it securely encrypts your data and is extremely easy to
|
||||||
set up.
|
set up.
|
||||||
|
|
||||||
Due to it's deduplication capabilities you can store a great number of backups without wasting large amounts of disk
|
Due to it's deduplication capabilities you can store a great number of backups without wasting large amounts of disk
|
||||||
|
@ -128,9 +128,17 @@ 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
|
=== "docker compose (Plugin)"
|
||||||
docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Initialize the repository
|
### Initialize the repository
|
||||||
|
|
||||||
|
@ -139,9 +147,17 @@ initialized.
|
||||||
|
|
||||||
To initialize the repository run:
|
To initialize the repository run:
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
the prompt by entering `yes`. The repository will be initialized with the passphrase you set in the `BORG_PASSPHRASE`
|
the prompt by entering `yes`. The repository will be initialized with the passphrase you set in the `BORG_PASSPHRASE`
|
||||||
|
@ -157,9 +173,17 @@ for how to retrieve the key.
|
||||||
Now that we finished configuring and initializing the repository restart the container to ensure it is in a defined
|
Now that we finished configuring and initializing the repository restart the container to ensure it is in a defined
|
||||||
state:
|
state:
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose restart borgmatic-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose restart borgmatic-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart borgmatic-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## Restoring from a backup
|
## Restoring from a backup
|
||||||
|
|
||||||
|
@ -182,9 +206,17 @@ Before running a restore you must make the vmail volume writeable in `docker-com
|
||||||
the `ro` flag from the volume.
|
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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
[Listing all available archives](#listing-all-available-archives))
|
[Listing all available archives](#listing-all-available-archives))
|
||||||
|
@ -197,9 +229,17 @@ 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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic restore --archive latest
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
[Listing all available archives](#listing-all-available-archives))
|
[Listing all available archives](#listing-all-available-archives))
|
||||||
|
@ -211,9 +251,17 @@ re-enable it.
|
||||||
|
|
||||||
To restart mailcow use the follwing command:
|
To restart mailcow use the follwing command:
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose down && docker compose up -d
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose down && docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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
|
||||||
take a while if you have lots of files.
|
take a while if you have lots of files.
|
||||||
|
@ -222,24 +270,48 @@ take a while if you have lots of files.
|
||||||
|
|
||||||
### Manual archiving run (with debugging output)
|
### Manual archiving run (with debugging output)
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic -v 2
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec borgmatic-mailcow borgmatic -v 2
|
||||||
|
```
|
||||||
|
|
||||||
### Listing all available archives
|
### Listing all available archives
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borgmatic list
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borgmatic list
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec borgmatic-mailcow borgmatic list
|
||||||
|
```
|
||||||
|
|
||||||
### Break lock
|
### Break lock
|
||||||
|
|
||||||
When borg is interrupted during an archiving run it will leave behind a stale lock that needs to be cleared before any
|
When borg is interrupted during an archiving run it will leave behind a stale lock that needs to be cleared before any
|
||||||
new operations can be performed:
|
new operations can be performed:
|
||||||
|
|
||||||
```shell
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borg break-lock user@rsync.net:mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -255,8 +327,16 @@ 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
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec borgmatic-mailcow borg key export --paper user@rsync.net:mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
2
docs/third_party/checkmk/u_e-checkmk.de.md
gevendort
2
docs/third_party/checkmk/u_e-checkmk.de.md
gevendort
|
@ -1,4 +1,4 @@
|
||||||
Mailcow bietet mittels dem eigenen Update-Script die Möglichkeit zu prüfen ob Updates vorhanden sind.
|
mailcow bietet mittels dem eigenen Update-Script die Möglichkeit zu prüfen ob Updates vorhanden sind.
|
||||||
|
|
||||||
Sofern mailcow-Updates mittels checkmk abgefragt werden soll, kann man im `local`-Verzeichnis des checkmk-Agents (normalerweise `/usr/lib/check_mk_agent/local/`) eine ausfĂĽhrbare Datei mit dem Namen `mailcow_update` und nachfolgendem Inhalt erstellen:
|
Sofern mailcow-Updates mittels checkmk abgefragt werden soll, kann man im `local`-Verzeichnis des checkmk-Agents (normalerweise `/usr/lib/check_mk_agent/local/`) eine ausfĂĽhrbare Datei mit dem Namen `mailcow_update` und nachfolgendem Inhalt erstellen:
|
||||||
|
|
||||||
|
|
2
docs/third_party/checkmk/u_e-checkmk.en.md
gevendort
2
docs/third_party/checkmk/u_e-checkmk.en.md
gevendort
|
@ -1,4 +1,4 @@
|
||||||
Mailcow provides the ability to check for updates using its own update script.
|
mailcow provides the ability to check for updates using its own update script.
|
||||||
|
|
||||||
If you want to check for mailcow updates using checkmk, you can create an executable file in the `local` directory of the checkmk agent (typically `/usr/lib/check_mk_agent/local/`) with the name `mailcow_update` and the following content:
|
If you want to check for mailcow updates using checkmk, you can create an executable file in the `local` directory of the checkmk agent (typically `/usr/lib/check_mk_agent/local/`) with the name `mailcow_update` and the following content:
|
||||||
|
|
||||||
|
|
|
@ -12,31 +12,31 @@ Dieses Setup ist sehr praktisch, wenn Sie die [Office 365 Sicherheitsvorgaben](h
|
||||||
3. Wählen Sie die Domäne aus und schalten Sie sie von "autorisiert" auf "internes Relais" um.
|
3. Wählen Sie die Domäne aus und schalten Sie sie von "autorisiert" auf "internes Relais" um.
|
||||||
|
|
||||||
|
|
||||||
## Einrichten der Mailcow
|
## Einrichten der mailcow
|
||||||
Ihre Mailcow muss alle Mails an Ihren personalisierten Exchange Host weiterleiten. Es ist die gleiche Host-Adresse, die wir bereits fĂĽr den mx Record gesucht haben.
|
Ihre mailcow muss alle Mails an Ihren personalisierten Exchange Host weiterleiten. Es ist die gleiche Host-Adresse, die wir bereits fĂĽr den mx Record gesucht haben.
|
||||||
|
|
||||||
1. FĂĽgen Sie die Domain zu Ihrer Mailcow hinzu
|
1. FĂĽgen Sie die Domain zu Ihrer mailcow hinzu
|
||||||
2. [FĂĽgen Sie Ihre personalisierte Exchange Host Adresse als relayhost hinzu](../../manual-guides/Postfix/u_e-postfix-relayhost.de.md)
|
2. [FĂĽgen Sie Ihre personalisierte Exchange Host Adresse als relayhost hinzu](../../manual-guides/Postfix/u_e-postfix-relayhost.de.md)
|
||||||
3. FĂĽgen Sie Ihre personalisierte Exchange Host Adresse als Weiterleitungshost hinzu, um alle weitergeleiteten Mails von Exchange bedingungslos zu akzeptieren. (Admin > Konfiguration & Details > Konfigurations-Dropdown > Weiterleitungshosts)
|
3. FĂĽgen Sie Ihre personalisierte Exchange Host Adresse als Weiterleitungshost hinzu, um alle weitergeleiteten Mails von Exchange bedingungslos zu akzeptieren. (Admin > Konfiguration & Details > Konfigurations-Dropdown > Weiterleitungshosts)
|
||||||
4. Gehen Sie zu den Domäneneinstellungen und wählen Sie den neu hinzugefügten Host in der Dropdown-Liste "Absenderabhängige Transporte" aus. Aktivieren Sie die Weiterleitung, indem Sie die Kontrollkästchen "Diese Domäne weiterleiten", "Alle Empfänger weiterleiten" und "Nur nicht vorhandene Postfächer weiterleiten" aktivieren.
|
4. Gehen Sie zu den Domäneneinstellungen und wählen Sie den neu hinzugefügten Host in der Dropdown-Liste "Absenderabhängige Transporte" aus. Aktivieren Sie die Weiterleitung, indem Sie die Kontrollkästchen "Diese Domäne weiterleiten", "Alle Empfänger weiterleiten" und "Nur nicht vorhandene Postfächer weiterleiten" aktivieren.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Von nun an wird Ihre Mailcow alle Mails akzeptieren, die von Exchange weitergeleitet werden. Die **Eingangsfilterung und damit das neuronale Lernen Ihrer Kuh wird nicht mehr funktionieren**. Da alle Mails ĂĽber Exchange geroutet werden, wird der [Filterungsprozess dort abgewickelt](https://docs.microsoft.com/exchange/antispam-and-antimalware/antispam-and-antimalware?view=exchserver-2019).
|
Von nun an wird Ihre mailcow alle Mails akzeptieren, die von Exchange weitergeleitet werden. Die **Eingangsfilterung und damit das neuronale Lernen Ihrer Kuh wird nicht mehr funktionieren**. Da alle Mails ĂĽber Exchange geroutet werden, wird der [Filterungsprozess dort abgewickelt](https://docs.microsoft.com/exchange/antispam-and-antimalware/antispam-and-antimalware?view=exchserver-2019).
|
||||||
|
|
||||||
|
|
||||||
## Connectors in Exchange einrichten
|
## Connectors in Exchange einrichten
|
||||||
Der gesamte Mailverkehr läuft nun über Exchange. Zu diesem Zeitpunkt filtert der Exchange Online-Schutz bereits alle ein- und ausgehenden Mails. Jetzt müssen wir zwei Konnektoren einrichten, um eingehende Mails von unserem Exchange Service an die Mailcow weiterzuleiten und einen weiteren, um Mails zuzulassen, die von der Mailcow an unseren Exchange Service weitergeleitet werden. Sie können der [offiziellen Anleitung von Microsoft] folgen (https://docs.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail#2-set-up-a-connector-from-microsoft-365-or-office-365-to-your-email-server).
|
Der gesamte Mailverkehr läuft nun über Exchange. Zu diesem Zeitpunkt filtert der Exchange Online-Schutz bereits alle ein- und ausgehenden Mails. Jetzt müssen wir zwei Konnektoren einrichten, um eingehende Mails von unserem Exchange Service an die mailcow weiterzuleiten und einen weiteren, um Mails zuzulassen, die von der mailcow an unseren Exchange Service weitergeleitet werden. Sie können der [offiziellen Anleitung von Microsoft] folgen (https://docs.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail#2-set-up-a-connector-from-microsoft-365-or-office-365-to-your-email-server).
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Für den Connector, der die Mails von Ihrer Mailcow zu Exchange weiterleitet, bietet Microsoft zwei Möglichkeiten der Authentifizierung an. Der empfohlene Weg ist die Verwendung eines tls-Zertifikats, das mit einem Subject-Namen konfiguriert ist, der mit einer akzeptierten Domäne in Exchange übereinstimmt. Andernfalls müssen Sie die Authentifizierung mit der statischen IP-Adresse Ihrer Mailcow wählen.
|
Für den Connector, der die Mails von Ihrer mailcow zu Exchange weiterleitet, bietet Microsoft zwei Möglichkeiten der Authentifizierung an. Der empfohlene Weg ist die Verwendung eines tls-Zertifikats, das mit einem Subject-Namen konfiguriert ist, der mit einer akzeptierten Domäne in Exchange übereinstimmt. Andernfalls müssen Sie die Authentifizierung mit der statischen IP-Adresse Ihrer mailcow wählen.
|
||||||
|
|
||||||
## Validierung
|
## Validierung
|
||||||
Der einfachste Weg, die hybride Einrichtung zu ĂĽberprĂĽfen, ist das Senden einer Mail aus dem Internet an eine Mailbox, die nur auf der Mailcow existiert und andersherum.
|
Der einfachste Weg, die hybride Einrichtung zu ĂĽberprĂĽfen, ist das Senden einer Mail aus dem Internet an eine Mailbox, die nur auf der mailcow existiert und andersherum.
|
||||||
|
|
||||||
### Allgemeine Probleme
|
### Allgemeine Probleme
|
||||||
- Die Validierung des Connectors von Exchange zu Ihrer Mailcow schlug fehl mit `550 5.1.10 RESOLVER.ADR.RecipientNotFound; Recipient test@contoso.com not found by SMTP address lookup`
|
- Die Validierung des Connectors von Exchange zu Ihrer mailcow schlug fehl mit `550 5.1.10 RESOLVER.ADR.RecipientNotFound; Recipient test@contoso.com not found by SMTP address lookup`
|
||||||
**Mögliche Lösung:** Ihre Domäne ist nicht als "internes Relay" eingerichtet. Exchange kann daher den Empfänger nicht finden.
|
**Mögliche Lösung:** Ihre Domäne ist nicht als "internes Relay" eingerichtet. Exchange kann daher den Empfänger nicht finden.
|
||||||
- Mails, die von der Mailcow an eine Mailbox im Internet gesendet werden, können nicht zugestellt werden. Non Delivery Report mit Fehler `550 5.7.64 TenantAttribution; Relay Access Denied`
|
- Mails, die von der mailcow an eine Mailbox im Internet gesendet werden, können nicht zugestellt werden. Non Delivery Report mit Fehler `550 5.7.64 TenantAttribution; Relay Access Denied`
|
||||||
**Mögliche Lösung:** Die Authentifizierungsmethode ist fehlgeschlagen. Stellen Sie sicher, dass der Betreff des Zertifikats mit einer akzeptierten Domäne in Exchange übereinstimmt. Versuchen Sie stattdessen die Authentifizierung über eine statische IP.
|
**Mögliche Lösung:** Die Authentifizierungsmethode ist fehlgeschlagen. Stellen Sie sicher, dass der Betreff des Zertifikats mit einer akzeptierten Domäne in Exchange übereinstimmt. Versuchen Sie stattdessen die Authentifizierung über eine statische IP.
|
||||||
|
|
||||||
Microsoft-Anleitung für die Einrichtung des Connectors und zusätzliche Anforderungen: https://docs.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail#prerequisites-for-your-on-premises-email-environment
|
Microsoft-Anleitung für die Einrichtung des Connectors und zusätzliche Anforderungen: https://docs.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail#prerequisites-for-your-on-premises-email-environment
|
||||||
|
|
49
docs/third_party/gitea/third_party-gitea.de.md
gevendort
49
docs/third_party/gitea/third_party-gitea.de.md
gevendort
|
@ -2,7 +2,7 @@ Mit der Fähigkeit von Gitea, sich über SMTP zu authentifizieren, ist es trivia
|
||||||
|
|
||||||
1\. Ă–ffnen Sie `docker-compose.override.yml` und fĂĽgen Sie Gitea hinzu:
|
1\. Ă–ffnen Sie `docker-compose.override.yml` und fĂĽgen Sie Gitea hinzu:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
@ -31,9 +31,36 @@ 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 folgenden Befehl aus, um den Gitea-Container hochzufahren und fĂĽhren Sie anschlieĂźend einen Neustart von NGINX mit dem zweiten Befehl durch:
|
||||||
|
|
||||||
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/`
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
6\. Wenn Sie mailcow zu https gezwungen haben, fĂĽhren Sie Schritt 9 aus und starten Sie gitea mit dem folgenden Befehl neu.
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -41,7 +68,7 @@ GITEA_SSH_PORT=127.0.0.1:4000
|
||||||
|
|
||||||
9\. Erstellen Sie `data/gitea/gitea/conf/app.ini` und setzen Sie die folgenden Werte. Sie können [gitea cheat sheet, leider bisher nur in Englisch verfügbar](https://docs.gitea.io/en-us/config-cheat-sheet/) für deren Bedeutung und andere mögliche Werte konsultieren.
|
9\. Erstellen Sie `data/gitea/gitea/conf/app.ini` und setzen Sie die folgenden Werte. Sie können [gitea cheat sheet, leider bisher nur in Englisch verfügbar](https://docs.gitea.io/en-us/config-cheat-sheet/) für deren Bedeutung und andere mögliche Werte konsultieren.
|
||||||
|
|
||||||
```
|
```ini
|
||||||
[server]
|
[server]
|
||||||
SSH_LISTEN_PORT = 22
|
SSH_LISTEN_PORT = 22
|
||||||
# FĂĽr GITEA_SSH_PORT=127.0.0.1:4000 in mailcow.conf, setzen:
|
# FĂĽr GITEA_SSH_PORT=127.0.0.1:4000 in mailcow.conf, setzen:
|
||||||
|
@ -51,5 +78,17 @@ 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 dem kommenden Befehl. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
|
50
docs/third_party/gitea/third_party-gitea.en.md
gevendort
50
docs/third_party/gitea/third_party-gitea.en.md
gevendort
|
@ -2,7 +2,7 @@ With Gitea' ability to authenticate over SMTP it is trivial to integrate it with
|
||||||
|
|
||||||
1\. Open `docker-compose.override.yml` and add gitea:
|
1\. Open `docker-compose.override.yml` and add gitea:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
@ -31,9 +31,37 @@ 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 the commands to bring up the gitea container and restart the nginx-mailcow container 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/`
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
6\. If you forced mailcow to https, execute step 9 and restart gitea with the following command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -41,7 +69,7 @@ GITEA_SSH_PORT=127.0.0.1:4000
|
||||||
|
|
||||||
9\. Create `data/gitea/gitea/conf/app.ini` and set following values. You can consult [gitea cheat sheet](https://docs.gitea.io/en-us/config-cheat-sheet/) for their meaning and other possible values.
|
9\. Create `data/gitea/gitea/conf/app.ini` and set following values. You can consult [gitea cheat sheet](https://docs.gitea.io/en-us/config-cheat-sheet/) for their meaning and other possible values.
|
||||||
|
|
||||||
```
|
```ini
|
||||||
[server]
|
[server]
|
||||||
SSH_LISTEN_PORT = 22
|
SSH_LISTEN_PORT = 22
|
||||||
# For GITEA_SSH_PORT=127.0.0.1:4000 in mailcow.conf, set:
|
# For GITEA_SSH_PORT=127.0.0.1:4000 in mailcow.conf, set:
|
||||||
|
@ -51,4 +79,16 @@ 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 the following command. Your users should be able to login with mailcow managed accounts.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gitea-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart gitea-mailcow
|
||||||
|
```
|
34
docs/third_party/gogs/third_party-gogs.de.md
gevendort
34
docs/third_party/gogs/third_party-gogs.de.md
gevendort
|
@ -2,7 +2,7 @@ Mit Gogs' Fähigkeit, sich über SMTP zu authentifizieren, ist es einfach, es mi
|
||||||
|
|
||||||
1\. Ă–ffne `docker-compose.override.yml` und fĂĽge Gogs hinzu:
|
1\. Ă–ffne `docker-compose.override.yml` und fĂĽge Gogs hinzu:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
@ -31,7 +31,21 @@ 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 folgenden Befehl aus, um den Gogs-Container hochzufahren und fĂĽhren Sie anschlieĂźend einen Neustart von NGINX mit dem zweiten Befehl durch:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -39,7 +53,7 @@ GOGS_SSH_PORT=127.0.0.1:4000
|
||||||
|
|
||||||
8\. Erstellen Sie `data/gogs/gogs/conf/app.ini` und setzen Sie die folgenden Werte. Sie können [Gogs cheat sheet](https://gogs.io/docs/advanced/configuration_cheat_sheet) für ihre Bedeutung und andere mögliche Werte konsultieren.
|
8\. Erstellen Sie `data/gogs/gogs/conf/app.ini` und setzen Sie die folgenden Werte. Sie können [Gogs cheat sheet](https://gogs.io/docs/advanced/configuration_cheat_sheet) für ihre Bedeutung und andere mögliche Werte konsultieren.
|
||||||
|
|
||||||
```
|
```ini
|
||||||
[server]
|
[server]
|
||||||
SSH_LISTEN_PORT = 22
|
SSH_LISTEN_PORT = 22
|
||||||
# FĂĽr GOGS_SSH_PORT=127.0.0.1:4000 in mailcow.conf, setzen:
|
# FĂĽr GOGS_SSH_PORT=127.0.0.1:4000 in mailcow.conf, setzen:
|
||||||
|
@ -49,5 +63,17 @@ 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 dem kommenden Befehl. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gogs-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart gogs-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
|
34
docs/third_party/gogs/third_party-gogs.en.md
gevendort
34
docs/third_party/gogs/third_party-gogs.en.md
gevendort
|
@ -2,7 +2,7 @@ With Gogs' ability to authenticate over SMTP it is trivial to integrate it with
|
||||||
|
|
||||||
1\. Open `docker-compose.override.yml` and add Gogs:
|
1\. Open `docker-compose.override.yml` and add Gogs:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
@ -31,7 +31,21 @@ 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 the commands to bring up the Gogs container and restart the nginx-mailcow container afterwards:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -39,7 +53,7 @@ GOGS_SSH_PORT=127.0.0.1:4000
|
||||||
|
|
||||||
8\. Create `data/gogs/gogs/conf/app.ini` and set following values. You can consult [Gogs cheat sheet](https://gogs.io/docs/advanced/configuration_cheat_sheet) for their meaning and other possible values.
|
8\. Create `data/gogs/gogs/conf/app.ini` and set following values. You can consult [Gogs cheat sheet](https://gogs.io/docs/advanced/configuration_cheat_sheet) for their meaning and other possible values.
|
||||||
|
|
||||||
```
|
```ini
|
||||||
[server]
|
[server]
|
||||||
SSH_LISTEN_PORT = 22
|
SSH_LISTEN_PORT = 22
|
||||||
# For GOGS_SSH_PORT=127.0.0.1:4000 in mailcow.conf, set:
|
# For GOGS_SSH_PORT=127.0.0.1:4000 in mailcow.conf, set:
|
||||||
|
@ -49,4 +63,16 @@ 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 the following command. Your users should be able to login with mailcow managed accounts.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart gogs-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart gogs-mailcow
|
||||||
|
```
|
63
docs/third_party/mailman3/third_party-mailman3.de.md
gevendort
63
docs/third_party/mailman3/third_party-mailman3.de.md
gevendort
|
@ -3,7 +3,7 @@
|
||||||
!!! info
|
!!! info
|
||||||
Diese Anleitung ist eine Kopie von [dockerized-mailcow-mailman](https://github.com/g4rf/dockerized-mailcow-mailman). Bitte posten Sie Probleme, Fragen und Verbesserungen in den [issue tracker](https://github.com/g4rf/dockerized-mailcow-mailman/issues) dort.
|
Diese Anleitung ist eine Kopie von [dockerized-mailcow-mailman](https://github.com/g4rf/dockerized-mailcow-mailman). Bitte posten Sie Probleme, Fragen und Verbesserungen in den [issue tracker](https://github.com/g4rf/dockerized-mailcow-mailman/issues) dort.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
mailcow ist nicht verantwortlich für Datenverlust, Hardwareschäden oder kaputte Tastaturen. Diese Anleitung kommt ohne jegliche Garantie. Macht Backups bevor ihr anfangt, **Kein Backup kein Mitleid!**
|
mailcow ist nicht verantwortlich für Datenverlust, Hardwareschäden oder kaputte Tastaturen. Diese Anleitung kommt ohne jegliche Garantie. Macht Backups bevor ihr anfangt, **Kein Backup kein Mitleid!**
|
||||||
|
|
||||||
## Einleitung
|
## Einleitung
|
||||||
|
@ -90,9 +90,9 @@ certbot certonly -d MAILMAN_DOMAIN
|
||||||
|
|
||||||
#### Installieren Sie mailcow
|
#### Installieren Sie mailcow
|
||||||
|
|
||||||
Folgen Sie der [mailcow installation](../../i_u_m/i_u_m_install.de.md). **Schritt 5 auslassen und nicht mit `docker compose` starten!**
|
Folgen Sie der [mailcow installation](../../i_u_m/i_u_m_install.de.md). **Schritt 5 auslassen und nicht mit starten!**
|
||||||
|
|
||||||
#### Mailcow konfigurieren
|
#### mailcow konfigurieren
|
||||||
|
|
||||||
Dies ist auch **Schritt 4** in der offiziellen *mailcow-Installation* (`nano mailcow.conf`). Passen Sie also Ihre Bedürfnisse an und ändern Sie die folgenden Variablen:
|
Dies ist auch **Schritt 4** in der offiziellen *mailcow-Installation* (`nano mailcow.conf`). Passen Sie also Ihre Bedürfnisse an und ändern Sie die folgenden Variablen:
|
||||||
|
|
||||||
|
@ -272,19 +272,37 @@ Sie können `LANGUAGE_CODE` und `SOCIALACCOUNT_PROVIDERS` an Ihre Bedürfnisse a
|
||||||
|
|
||||||
AusfĂĽhren (als *root* oder *sudo*)
|
AusfĂĽhren (als *root* oder *sudo*)
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
a2ensite mailcow.conf
|
|
||||||
a2ensite mailman.conf
|
|
||||||
systemctl restart apache2
|
|
||||||
|
|
||||||
cd /opt/docker-mailman
|
``` bash
|
||||||
docker compose pull
|
a2ensite mailcow.conf
|
||||||
docker compose up -d
|
a2ensite mailman.conf
|
||||||
|
systemctl restart apache2
|
||||||
|
|
||||||
cd /opt/mailcow-dockerized/
|
cd /opt/docker-mailman
|
||||||
docker compose pull
|
docker compose pull
|
||||||
./renew-ssl.sh
|
docker compose up -d
|
||||||
```
|
|
||||||
|
cd /opt/mailcow-dockerized/
|
||||||
|
docker compose pull
|
||||||
|
./renew-ssl.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
a2ensite mailcow.conf
|
||||||
|
a2ensite mailman.conf
|
||||||
|
systemctl restart apache2
|
||||||
|
|
||||||
|
cd /opt/docker-mailman
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
cd /opt/mailcow-dockerized/
|
||||||
|
docker-compose pull
|
||||||
|
./renew-ssl.sh
|
||||||
|
```
|
||||||
|
|
||||||
**Warten Sie ein paar Minuten!** Die Container mĂĽssen ihre Datenbanken und Konfigurationsdateien erstellen. Dies kann bis zu 1 Minute und mehr dauern.
|
**Warten Sie ein paar Minuten!** Die Container mĂĽssen ihre Datenbanken und Konfigurationsdateien erstellen. Dies kann bis zu 1 Minute und mehr dauern.
|
||||||
|
|
||||||
|
@ -294,10 +312,19 @@ docker compose pull
|
||||||
|
|
||||||
Wenn man eine neue Liste anlegt und versucht, sofort eine E-Mail zu versenden, antwortet *postfix* mit `Benutzer existiert nicht`, weil *postfix* die Liste noch nicht an *Mailman* übergeben hat. Die Konfiguration unter `/opt/mailman/core/var/data/postfix_lmtp` wird nicht sofort aktualisiert. Wenn Sie die Liste sofort benötigen, starten Sie *postifx* manuell neu:
|
Wenn man eine neue Liste anlegt und versucht, sofort eine E-Mail zu versenden, antwortet *postfix* mit `Benutzer existiert nicht`, weil *postfix* die Liste noch nicht an *Mailman* übergeben hat. Die Konfiguration unter `/opt/mailman/core/var/data/postfix_lmtp` wird nicht sofort aktualisiert. Wenn Sie die Liste sofort benötigen, starten Sie *postifx* manuell neu:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
cd /opt/mailcow-dockerized
|
|
||||||
docker compose restart postfix-mailcow
|
``` bash
|
||||||
```
|
cd /opt/mailcow-dockerized
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
cd /opt/mailcow-dockerized
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
||||||
|
|
59
docs/third_party/mailman3/third_party-mailman3.en.md
gevendort
59
docs/third_party/mailman3/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.en.md). **Omit step 5 and do not pull and up with `docker compose`!**
|
Follow the [mailcow installation](../../i_u_m/i_u_m_install.en.md). **Omit step 5 and do not pull and start!**
|
||||||
|
|
||||||
#### Configure mailcow
|
#### Configure mailcow
|
||||||
|
|
||||||
|
@ -273,19 +273,37 @@ You can change `LANGUAGE_CODE` and `SOCIALACCOUNT_PROVIDERS` to your needs.
|
||||||
|
|
||||||
Run (as *root* or *sudo*)
|
Run (as *root* or *sudo*)
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
a2ensite mailcow.conf
|
|
||||||
a2ensite mailman.conf
|
|
||||||
systemctl restart apache2
|
|
||||||
|
|
||||||
cd /opt/docker-mailman
|
``` bash
|
||||||
docker compose pull
|
a2ensite mailcow.conf
|
||||||
docker compose up -d
|
a2ensite mailman.conf
|
||||||
|
systemctl restart apache2
|
||||||
|
|
||||||
cd /opt/mailcow-dockerized/
|
cd /opt/docker-mailman
|
||||||
docker compose pull
|
docker compose pull
|
||||||
./renew-ssl.sh
|
docker compose up -d
|
||||||
```
|
|
||||||
|
cd /opt/mailcow-dockerized/
|
||||||
|
docker compose pull
|
||||||
|
./renew-ssl.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
a2ensite mailcow.conf
|
||||||
|
a2ensite mailman.conf
|
||||||
|
systemctl restart apache2
|
||||||
|
|
||||||
|
cd /opt/docker-mailman
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
cd /opt/mailcow-dockerized/
|
||||||
|
docker-compose pull
|
||||||
|
./renew-ssl.sh
|
||||||
|
```
|
||||||
|
|
||||||
**Wait a few minutes!** The containers have to create there databases and config files. This can last up to 1 minute and more.
|
**Wait a few minutes!** The containers have to create there databases and config files. This can last up to 1 minute and more.
|
||||||
|
|
||||||
|
@ -295,10 +313,19 @@ docker compose pull
|
||||||
|
|
||||||
When you create a new list and try to immediately send an e-mail, *postfix* responses with `User doesn't exist`, because *postfix* won't deliver it to *Mailman* yet. The configuration at `/opt/mailman/core/var/data/postfix_lmtp` is not instantly updated. If you need the list instantly, restart *postifx* manually:
|
When you create a new list and try to immediately send an e-mail, *postfix* responses with `User doesn't exist`, because *postfix* won't deliver it to *Mailman* yet. The configuration at `/opt/mailman/core/var/data/postfix_lmtp` is not instantly updated. If you need the list instantly, restart *postifx* manually:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
cd /opt/mailcow-dockerized
|
|
||||||
docker compose restart postfix-mailcow
|
``` bash
|
||||||
```
|
cd /opt/mailcow-dockerized
|
||||||
|
docker compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
cd /opt/mailcow-dockerized
|
||||||
|
docker-compose restart postfix-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ Hinweis: Die Dateipfade können je nach Einrichtung variieren.
|
||||||
- Eine funktionierende mailpiler Instanz ([Sie finden eine Installationsanleitung hier](https://patrik.kernstock.net/2020/08/mailpiler-installation-guide/), [ĂĽberprĂĽfen Sie unterstĂĽtzte Versionen hier](https://github.com/patschi/mailpiler-mailcow-integration#piler))
|
- Eine funktionierende mailpiler Instanz ([Sie finden eine Installationsanleitung hier](https://patrik.kernstock.net/2020/08/mailpiler-installation-guide/), [ĂĽberprĂĽfen Sie unterstĂĽtzte Versionen hier](https://github.com/patschi/mailpiler-mailcow-integration#piler))
|
||||||
- Ein mailcow API-SchlĂĽssel (Nur-Lesen funktioniert): `Konfiguration & Details - Zugang - Nur-Lesen-Zugang`. Vergessen Sie nicht, den API-Zugang von Ihrer mailpiler IP zu erlauben.
|
- Ein mailcow API-SchlĂĽssel (Nur-Lesen funktioniert): `Konfiguration & Details - Zugang - Nur-Lesen-Zugang`. Vergessen Sie nicht, den API-Zugang von Ihrer mailpiler IP zu erlauben.
|
||||||
|
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Da mailpiler sich gegenüber mailcow, unserem IMAP-Server, authentifiziert, können fehlgeschlagene Logins von Nutzern oder Bots eine Sperre für Ihre mailpiler-Instanz auslösen. Daher sollten Sie in Erwägung ziehen, die IP-Adresse der mailpiler-Instanz innerhalb von mailcow auf eine Whitelist zu setzen: `Konfiguration & Details - Konfiguration - Fail2ban-Parameter - Whitelisted networks/hosts`.
|
Da mailpiler sich gegenüber mailcow, unserem IMAP-Server, authentifiziert, können fehlgeschlagene Logins von Nutzern oder Bots eine Sperre für Ihre mailpiler-Instanz auslösen. Daher sollten Sie in Erwägung ziehen, die IP-Adresse der mailpiler-Instanz innerhalb von mailcow auf eine Whitelist zu setzen: `Konfiguration & Details - Konfiguration - Fail2ban-Parameter - Whitelisted networks/hosts`.
|
||||||
|
|
||||||
### Einrichtung
|
### Einrichtung
|
||||||
|
|
134
docs/third_party/nextcloud/third_party-nextcloud.de.md
gevendort
134
docs/third_party/nextcloud/third_party-nextcloud.de.md
gevendort
|
@ -6,14 +6,28 @@ 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.de.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 folgender Befehl zur Übernahme ausgeführt werden.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
FĂĽr weitere Informationen siehe: [Erweitertes SSL](../../post_installation/firststeps-ssl.de.md).
|
||||||
|
|
||||||
## Hintergrund-Aufgaben
|
## Hintergrund-Aufgaben
|
||||||
|
|
||||||
Zur Verwendung der empfohlenen Einstellung (Cron) zur Verarbeitung der Hintergrund-Aufgaben mĂĽssen in der `docker-compose.override.yml` folgende Zeilen
|
Zur Verwendung der empfohlenen Einstellung (Cron) zur Verarbeitung der Hintergrund-Aufgaben mĂĽssen in der `docker-compose.override.yml` folgende Zeilen
|
||||||
hinzugefĂĽgt werden:
|
hinzugefĂĽgt werden:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
php-fpm-mailcow:
|
php-fpm-mailcow:
|
||||||
|
@ -23,10 +37,48 @@ 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 der folgende Befehl ausgefĂĽhrt werden, um das Docker Image mit den entsprechenden Labels zu versehen.
|
||||||
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
|
=== "docker compose (Plugin)"
|
||||||
`New job registered "nextcloud-cron" - ...` gesucht werden.
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Danach muss zudem der docker scheduler neu gestartet werden, um den neuen Job zu registrieren. Dazu wird der folgende Befehl ausgefĂĽhrt.
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
Zur ĂśberprĂĽfung, ob die `ofelia` Konfiguration korrekt ist geladen wurde, kann mittels dem untenstehenden Befehl nach einer Zeile mit dem Inhalt
|
||||||
|
`New job registered "nextcloud-cron" - ...` gesucht werden:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
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
|
||||||
Grundeinstellungen von Nextcloud ĂĽberprĂĽft werden. Hier wird automatisch mit der ersten AusfĂĽhrung die Hintergrund-Aufgaben Verarbeitung auf `(X) Cron` gesetzt
|
Grundeinstellungen von Nextcloud ĂĽberprĂĽft werden. Hier wird automatisch mit der ersten AusfĂĽhrung die Hintergrund-Aufgaben Verarbeitung auf `(X) Cron` gesetzt
|
||||||
|
@ -38,10 +90,14 @@ Im Folgenden wird beschrieben, wie die Authentifizierung ĂĽber mailcow unter Ver
|
||||||
|
|
||||||
1\. Melden Sie sich bei mailcow als Administrator an.
|
1\. Melden Sie sich bei mailcow als Administrator an.
|
||||||
|
|
||||||
2\. Scrollen Sie nach unten zu _OAuth2 Apps_ und klicken Sie auf die Schaltfläche _Hinzufügen_. Geben Sie die Redirect URI als `https://cloud.example.com/index.php/apps/sociallogin/custom_oauth2/Mailcow` an und klicken Sie auf _Hinzufügen_. Speichern Sie die Client-ID und das Geheimnis für später.
|
2\. Klicken Sie im Dropdown MenĂĽ (oben rechts) auf Konfiguration.
|
||||||
|
|
||||||
|
3\. Wählen Sie dann im Reiter "Zugang" den Dropdown Punkt OAuth2 aus.
|
||||||
|
|
||||||
|
4\. Scrollen Sie nach unten und klicken Sie auf die Schaltfläche _Füge OAuth2 Client hinzu_. Geben Sie die Redirect URI als `https://cloud.example.com/index.php/apps/sociallogin/custom_oauth2/mailcow` an und klicken Sie auf _Hinzufügen_. Speichern Sie die Client-ID und das Geheimnis für später.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Einige Installationen, einschlieĂźlich derer, die mit dem Helper-Skript von mailcow eingerichtet wurden, mĂĽssen index.php/ aus der URL entfernen, um einen erfolgreichen Redirect zu erhalten: `https://cloud.example.com/apps/sociallogin/custom_oauth2/Mailcow`
|
Einige Installationen, einschlieĂźlich derer, die mit dem Helper-Skript von mailcow eingerichtet wurden, mĂĽssen index.php/ aus der URL entfernen, um einen erfolgreichen Redirect zu erhalten: `https://cloud.example.com/apps/sociallogin/custom_oauth2/mailcow`
|
||||||
|
|
||||||
3\. Melden Sie sich bei Nextcloud als Administrator an.
|
3\. Melden Sie sich bei Nextcloud als Administrator an.
|
||||||
|
|
||||||
|
@ -68,8 +124,8 @@ Klicken Sie auf die Schaltfläche _Speichern_.
|
||||||
8\. Scrollen Sie nach unten zu _Custom OAuth2_ und klicken Sie auf die Schaltfläche _+_.
|
8\. Scrollen Sie nach unten zu _Custom OAuth2_ und klicken Sie auf die Schaltfläche _+_.
|
||||||
9\. Konfigurieren Sie die Parameter wie folgt:
|
9\. Konfigurieren Sie die Parameter wie folgt:
|
||||||
|
|
||||||
- Interner Name: `Mailcow`
|
- Interner Name: `mailcow`
|
||||||
- Titel: `Mailcow`
|
- Titel: `mailcow`
|
||||||
- API Basis-URL: `https://mail.example.com`
|
- API Basis-URL: `https://mail.example.com`
|
||||||
- Autorisierungs-URL: `https://mail.example.com/oauth/authorize`
|
- Autorisierungs-URL: `https://mail.example.com/oauth/authorize`
|
||||||
- Token-URL: `https://mail.example.com/oauth/token`
|
- Token-URL: `https://mail.example.com/oauth/token`
|
||||||
|
@ -86,19 +142,46 @@ 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 folgenden Befehl nutzen um in den Container zu gelangen)
|
||||||
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;
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
INSERT INTO oc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM oc_users_external;
|
||||||
|
INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("mailcow-", uid) FROM oc_users_external;
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
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 folgenden Befehl nutzen um in den Container zu gelangen):
|
||||||
```
|
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("mailcow-", uid) FROM oc_users;
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -108,7 +191,8 @@ INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT
|
||||||
Die Nextcloud-Instanz kann einfach mit dem Web-Update-Mechanismus aktualisiert werden. Bei größeren Updates können nach dem Update weitere Änderungen vorgenommen werden. Nachdem die Nextcloud-Instanz geprüft wurde, werden Probleme angezeigt. Dies können z.B. fehlende Indizes in der DB oder ähnliches sein.
|
Die Nextcloud-Instanz kann einfach mit dem Web-Update-Mechanismus aktualisiert werden. Bei größeren Updates können nach dem Update weitere Änderungen vorgenommen werden. Nachdem die Nextcloud-Instanz geprüft wurde, werden Probleme angezeigt. Dies können z.B. fehlende Indizes in der DB oder ähnliches sein.
|
||||||
Es wird angezeigt, welche Befehle ausgefĂĽhrt werden mĂĽssen, diese mĂĽssen im php-fpm-mailcow Container platziert werden.
|
Es wird angezeigt, welche Befehle ausgefĂĽhrt werden mĂĽssen, diese mĂĽssen im php-fpm-mailcow Container platziert werden.
|
||||||
|
|
||||||
FĂĽhren Sie z.B. folgenden Befehl aus, um die fehlenden Indizes hinzuzufĂĽgen
|
FĂĽhren Sie z.B. folgenden Befehl aus, um die fehlenden Indizes hinzuzufĂĽgen:
|
||||||
|
|
||||||
`docker exec -it -u www-data $(docker ps -f name=php-fpm-mailcow -q) bash -c "php /web/nextcloud/occ db:add-missing-indices"`
|
`docker exec -it -u www-data $(docker ps -f name=php-fpm-mailcow -q) bash -c "php /web/nextcloud/occ db:add-missing-indices"`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -117,7 +201,7 @@ FĂĽhren Sie z.B. folgenden Befehl aus, um die fehlenden Indizes hinzuzufĂĽgen
|
||||||
|
|
||||||
Es kann vorkommen, dass Sie die Nextcloud-Instanz von Ihrem Netzwerk aus nicht erreichen können. Dies kann daran liegen, dass der Eintrag Ihres Subnetzes im Array 'trusted_proxies' fehlt. Sie können Änderungen in der Nextcloud config.php in `data/web/nextcloud/config/*` vornehmen.
|
Es kann vorkommen, dass Sie die Nextcloud-Instanz von Ihrem Netzwerk aus nicht erreichen können. Dies kann daran liegen, dass der Eintrag Ihres Subnetzes im Array 'trusted_proxies' fehlt. Sie können Änderungen in der Nextcloud config.php in `data/web/nextcloud/config/*` vornehmen.
|
||||||
|
|
||||||
```
|
```php
|
||||||
'trusted_proxies' =>
|
'trusted_proxies' =>
|
||||||
array (
|
array (
|
||||||
0 => 'fd4d:6169:6c63:6f77::/64',
|
0 => 'fd4d:6169:6c63:6f77::/64',
|
||||||
|
@ -127,4 +211,14 @@ 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 (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
135
docs/third_party/nextcloud/third_party-nextcloud.en.md
gevendort
135
docs/third_party/nextcloud/third_party-nextcloud.en.md
gevendort
|
@ -6,13 +6,27 @@ 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.en.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 runthe following to apply:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
For more informaton refer to: [Advanced SSL](../../post_installation/firststeps-ssl.en.md).
|
||||||
|
|
||||||
## Background jobs
|
## Background jobs
|
||||||
|
|
||||||
To use the recommended setting (cron) to execute the background jobs following lines need to be added to the `docker-compose.override.yml`:
|
To use the recommended setting (cron) to execute the background jobs following lines need to be added to the `docker-compose.override.yml`:
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
php-fpm-mailcow:
|
php-fpm-mailcow:
|
||||||
|
@ -22,9 +36,49 @@ 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 following command must be executed to update the docker image:
|
||||||
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 (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
And also the docker scheduler image must be restarted to pick up the new job definition by executing:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
To check if the job was successfully picked up by `ofelia` the command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs ofelia-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
It should 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
|
||||||
|
@ -36,18 +90,22 @@ The following describes how set up authentication via mailcow using the OAuth2 p
|
||||||
|
|
||||||
1\. Log into mailcow as administrator.
|
1\. Log into mailcow as administrator.
|
||||||
|
|
||||||
2\. Scroll down to _OAuth2 Apps_ and click the _Add_ button. Specify the redirect URI as `https://cloud.example.com/index.php/apps/sociallogin/custom_oauth2/Mailcow` and click _Add_. Save the client ID and secret for later.
|
2\. Click Configuration in the drop-down menu (top right).
|
||||||
|
|
||||||
|
3\. Then, in the "Access" tab, select the OAuth2 drop-down item.
|
||||||
|
|
||||||
|
4\. Scroll down and click the _Add OAuth2 client_ button. Specify the redirect URI as `https://cloud.example.com/index.php/apps/sociallogin/custom_oauth2/mailcow` and click _Add_. Save the client ID and secret for later.
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Some installations, including those setup using the helper script of mailcow, need to remove index.php/ from the URL to get a successful redirect: `https://cloud.example.com/apps/sociallogin/custom_oauth2/Mailcow`
|
Some installations, including those setup using the helper script of mailcow, need to remove index.php/ from the URL to get a successful redirect: `https://cloud.example.com/apps/sociallogin/custom_oauth2/mailcow`
|
||||||
|
|
||||||
3\. Log into Nextcloud as administrator.
|
5\. Log into Nextcloud as administrator.
|
||||||
|
|
||||||
4\. Click the button in the top right corner and select _Apps_. Click the search button in the toolbar, search for the [_Social Login_](https://apps.nextcloud.com/apps/sociallogin) plugin and click _Download and enable_ next to it.
|
6\. Click the button in the top right corner and select _Apps_. Click the search button in the toolbar, search for the [_Social Login_](https://apps.nextcloud.com/apps/sociallogin) plugin and click _Download and enable_ next to it.
|
||||||
|
|
||||||
5\. Click the button in the top right corner and select _Settings_. Scroll down to the _Administration_ section on the left and click _Social login_.
|
7\. Click the button in the top right corner and select _Settings_. Scroll down to the _Administration_ section on the left and click _Social login_.
|
||||||
|
|
||||||
6\. Uncheck the following items:
|
8\. Uncheck the following items:
|
||||||
|
|
||||||
- "Disable auto create new users"
|
- "Disable auto create new users"
|
||||||
- "Allow users to connect social logins with their accounts"
|
- "Allow users to connect social logins with their accounts"
|
||||||
|
@ -66,8 +124,8 @@ Click the _Save_ button.
|
||||||
8\. Scroll down to _Custom OAuth2_ and click the _+_ button.
|
8\. Scroll down to _Custom OAuth2_ and click the _+_ button.
|
||||||
9\. Configure the parameters as follows:
|
9\. Configure the parameters as follows:
|
||||||
|
|
||||||
- Internal name: `Mailcow`
|
- Internal name: `mailcow`
|
||||||
- Title: `Mailcow`
|
- Title: `mailcow`
|
||||||
- API Base URL: `https://mail.example.com`
|
- API Base URL: `https://mail.example.com`
|
||||||
- Authorize URL: `https://mail.example.com/oauth/authorize`
|
- Authorize URL: `https://mail.example.com/oauth/authorize`
|
||||||
- Token URL: `https://mail.example.com/oauth/token`
|
- Token URL: `https://mail.example.com/oauth/token`
|
||||||
|
@ -84,19 +142,44 @@ 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 with the script from mailcow, you can use the following command to get into the container):
|
||||||
```
|
|
||||||
INSERT INTO nc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM nc_users_external;
|
=== "docker compose (Plugin)"
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users_external;
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
INSERT INTO oc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM oc_users_external;
|
||||||
|
INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("mailcow-", uid) FROM oc_users_external;
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
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 with the script from mailcow, you can use the following command to get into the container):
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
INSERT INTO nc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("Mailcow-", uid) FROM nc_users;
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf && docker-compose exec mysql-mailcow mysql -u$DBUSER -p$DBPASS $DBNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("mailcow-", uid) FROM oc_users;
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -125,4 +208,14 @@ 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 (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart nginx-mailcow
|
||||||
|
```
|
|
@ -1,7 +1,7 @@
|
||||||
Um Portainer zu aktivieren, müssen die docker-compose.yml und site.conf für Nginx geändert werden.
|
Um Portainer zu aktivieren, müssen die docker-compose.yml und site.conf für Nginx geändert werden.
|
||||||
|
|
||||||
1\. Erstellen Sie eine neue Datei `docker-compose.override.yml` im mailcow-dockerized Stammverzeichnis und fĂĽgen Sie die folgende Konfiguration ein
|
1\. Erstellen Sie eine neue Datei `docker-compose.override.yml` im mailcow-dockerized Stammverzeichnis und fĂĽgen Sie die folgende Konfiguration ein
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
portainer-mailcow:
|
portainer-mailcow:
|
||||||
|
@ -19,7 +19,7 @@ services:
|
||||||
- portainer
|
- portainer
|
||||||
```
|
```
|
||||||
2a\. Erstelle `data/conf/nginx/portainer.conf`:
|
2a\. Erstelle `data/conf/nginx/portainer.conf`:
|
||||||
```
|
```conf
|
||||||
upstream portainer {
|
upstream portainer {
|
||||||
server portainer-mailcow:9000;
|
server portainer-mailcow:9000;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ map $http_upgrade $connection_upgrade {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
2b\. FĂĽgen Sie einen neuen Standort fĂĽr die Standard-Mailcow-Site ein, indem Sie die Datei `data/conf/nginx/site.portainer.custom` erstellen:
|
2b\. FĂĽgen Sie einen neuen Standort fĂĽr die Standard-mailcow-Site ein, indem Sie die Datei `data/conf/nginx/site.portainer.custom` erstellen:
|
||||||
```
|
```
|
||||||
location /portainer/ {
|
location /portainer/ {
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
|
@ -54,9 +54,17 @@ map $http_upgrade $connection_upgrade {
|
||||||
```
|
```
|
||||||
|
|
||||||
3\. Ăśbernehmen Sie Ihre Ă„nderungen:
|
3\. Ăśbernehmen Sie Ihre Ă„nderungen:
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose up -d && docker compose restart nginx-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d && docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
In order to enable Portainer, the docker-compose.yml and site.conf for Nginx must be modified.
|
In order to enable Portainer, the docker-compose.yml and site.conf for Nginx must be modified.
|
||||||
|
|
||||||
1\. Create a new file `docker-compose.override.yml` in the mailcow-dockerized root folder and insert the following configuration
|
1\. Create a new file `docker-compose.override.yml` in the mailcow-dockerized root folder and insert the following configuration
|
||||||
```
|
```yaml
|
||||||
version: '2.1'
|
version: '2.1'
|
||||||
services:
|
services:
|
||||||
portainer-mailcow:
|
portainer-mailcow:
|
||||||
|
@ -54,9 +54,17 @@ map $http_upgrade $connection_upgrade {
|
||||||
```
|
```
|
||||||
|
|
||||||
3\. Apply your changes:
|
3\. Apply your changes:
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose up -d && docker compose restart nginx-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose up -d && docker compose restart nginx-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
## Installation von Roundcube
|
## Installation von Roundcube
|
||||||
|
|
||||||
Laden Sie Roundcube 1.6.x in das Web htdocs Verzeichnis herunter und entpacken Sie es (hier `rc/`):
|
Laden Sie Roundcube 1.6.x in das Web htdocs Verzeichnis herunter und entpacken Sie es (hier `rc/`):
|
||||||
```
|
```bash
|
||||||
# PrĂĽfen Sie, ob eine neuere Version vorliegt!
|
# PrĂĽfen Sie, ob eine neuere Version vorliegt!
|
||||||
cd daten/web
|
cd data/web
|
||||||
wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz | tar xfvz -
|
wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz | tar xfvz -
|
||||||
|
|
||||||
# Ă„ndern Sie den Ordnernamen
|
# Ă„ndern Sie den Ordnernamen
|
||||||
|
@ -14,7 +14,7 @@ chown -R root: rc/
|
||||||
```
|
```
|
||||||
|
|
||||||
Wenn Sie eine Rechtschreibprüfung benötigen, erstellen Sie eine Datei `data/hooks/phpfpm/aspell.sh` mit folgendem Inhalt und geben Sie dann `chmod +x data/hooks/phpfpm/aspell.sh` ein. Dadurch wird eine lokale Rechtschreibprüfung installiert. Beachten Sie, dass die meisten modernen Webbrowser eine eingebaute Rechtschreibprüfung haben, so dass Sie diese vielleicht nicht benötigen.
|
Wenn Sie eine Rechtschreibprüfung benötigen, erstellen Sie eine Datei `data/hooks/phpfpm/aspell.sh` mit folgendem Inhalt und geben Sie dann `chmod +x data/hooks/phpfpm/aspell.sh` ein. Dadurch wird eine lokale Rechtschreibprüfung installiert. Beachten Sie, dass die meisten modernen Webbrowser eine eingebaute Rechtschreibprüfung haben, so dass Sie diese vielleicht nicht benötigen.
|
||||||
```
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
apk update
|
apk update
|
||||||
apk add aspell-de # oder jede andere Sprache
|
apk add aspell-de # oder jede andere Sprache
|
||||||
|
@ -24,7 +24,7 @@ Erstellen Sie eine Datei `data/web/rc/config/config.inc.php` mit dem folgenden I
|
||||||
- **Ă„ndern Sie den Parameter `des_key` auf einen Zufallswert.** Er wird verwendet, um Ihr IMAP-Passwort vorĂĽbergehend zu speichern.
|
- **Ă„ndern Sie den Parameter `des_key` auf einen Zufallswert.** Er wird verwendet, um Ihr IMAP-Passwort vorĂĽbergehend zu speichern.
|
||||||
- Der `db_prefix` ist optional, wird aber empfohlen.
|
- Der `db_prefix` ist optional, wird aber empfohlen.
|
||||||
- Wenn Sie die RechtschreibprĂĽfung im obigen Schritt nicht installiert haben, entfernen Sie den Parameter `spellcheck_engine` und ersetzen ihn durch `$config['enable_spellcheck'] = false;`.
|
- Wenn Sie die RechtschreibprĂĽfung im obigen Schritt nicht installiert haben, entfernen Sie den Parameter `spellcheck_engine` und ersetzen ihn durch `$config['enable_spellcheck'] = false;`.
|
||||||
```
|
```php
|
||||||
<?php
|
<?php
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
if (!file_exists('/tmp/mime.types')) {
|
if (!file_exists('/tmp/mime.types')) {
|
||||||
|
@ -65,7 +65,7 @@ Initialisiere die Datenbank und verlasse das Installationsprogramm.
|
||||||
## Konfigurieren Sie die ManageSieve-Filterung
|
## Konfigurieren Sie die ManageSieve-Filterung
|
||||||
|
|
||||||
Öffnen Sie `data/web/rc/config/config.inc.php` und ändern Sie die folgenden Parameter (oder fügen Sie sie am Ende der Datei hinzu):
|
Öffnen Sie `data/web/rc/config/config.inc.php` und ändern Sie die folgenden Parameter (oder fügen Sie sie am Ende der Datei hinzu):
|
||||||
```
|
```php
|
||||||
$config['managesieve_host'] = 'tls://dovecot:4190';
|
$config['managesieve_host'] = 'tls://dovecot:4190';
|
||||||
$config['managesieve_conn_options'] = array(
|
$config['managesieve_conn_options'] = array(
|
||||||
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
|
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
|
||||||
|
@ -81,7 +81,7 @@ $config['managesieve_vacation'] = 1;
|
||||||
|
|
||||||
Ă–ffnen Sie `data/web/rc/config/config.inc.php` und aktivieren Sie das Passwort-Plugin:
|
Ă–ffnen Sie `data/web/rc/config/config.inc.php` und aktivieren Sie das Passwort-Plugin:
|
||||||
|
|
||||||
```
|
```php
|
||||||
[...]
|
[...]
|
||||||
$config['plugins'] = array(
|
$config['plugins'] = array(
|
||||||
'archive',
|
'archive',
|
||||||
|
@ -92,7 +92,7 @@ $config['plugins'] = array(
|
||||||
|
|
||||||
Ă–ffnen Sie `data/web/rc/plugins/password/password.php`, suchen Sie nach `case 'ssha':` und fĂĽgen Sie oben hinzu:
|
Ă–ffnen Sie `data/web/rc/plugins/password/password.php`, suchen Sie nach `case 'ssha':` und fĂĽgen Sie oben hinzu:
|
||||||
|
|
||||||
```
|
```php
|
||||||
case 'ssha256':
|
case 'ssha256':
|
||||||
$salt = rcube_utils::random_bytes(8);
|
$salt = rcube_utils::random_bytes(8);
|
||||||
$crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
|
$crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
|
||||||
|
@ -102,7 +102,7 @@ $config['plugins'] = array(
|
||||||
|
|
||||||
Öffnen Sie `data/web/rc/plugins/password/config.inc.php` und ändern Sie die folgenden Parameter (oder fügen Sie sie am Ende der Datei hinzu):
|
Öffnen Sie `data/web/rc/plugins/password/config.inc.php` und ändern Sie die folgenden Parameter (oder fügen Sie sie am Ende der Datei hinzu):
|
||||||
|
|
||||||
```
|
```php
|
||||||
$config['password_driver'] = 'sql';
|
$config['password_driver'] = 'sql';
|
||||||
$config['password_algorithm'] = 'ssha256';
|
$config['password_algorithm'] = 'ssha256';
|
||||||
$config['password_algorithm_prefix'] = '{SSHA256}';
|
$config['password_algorithm_prefix'] = '{SSHA256}';
|
||||||
|
@ -112,14 +112,14 @@ $config['password_query'] = "UPDATE mailbox SET password = %P WHERE username = %
|
||||||
## CardDAV AdressbĂĽcher in Roundcube einbinden
|
## CardDAV AdressbĂĽcher in Roundcube einbinden
|
||||||
|
|
||||||
Laden Sie die neueste Version von [RCMCardDAV](https://github.com/mstilkerich/rcmcarddav) in das Roundcube Plugin Verzeichnis und entpacken Sie es (hier `rc/plugins`):
|
Laden Sie die neueste Version von [RCMCardDAV](https://github.com/mstilkerich/rcmcarddav) in das Roundcube Plugin Verzeichnis und entpacken Sie es (hier `rc/plugins`):
|
||||||
```
|
```bash
|
||||||
cd data/web/rc/plugins
|
cd data/web/rc/plugins
|
||||||
wget -O - https://github.com/mstilkerich/rcmcarddav/releases/download/v4.4.1/carddav-v4.4.1-roundcube16.tar.gz | tar xfvz -
|
wget -O - https://github.com/mstilkerich/rcmcarddav/releases/download/v4.4.1/carddav-v4.4.1-roundcube16.tar.gz | tar xfvz -
|
||||||
chown -R root: carddav/
|
chown -R root: carddav/
|
||||||
```
|
```
|
||||||
|
|
||||||
Kopieren Sie die Datei `config.inc.php.dist` nach `config.inc.php` (hier in `rc/plugins/carddav`) und fĂĽgen Sie die folgende Voreinstellung an das Ende der Datei an - vergessen Sie nicht, `mx.example.org` durch Ihren eigenen Hostnamen zu ersetzen:
|
Kopieren Sie die Datei `config.inc.php.dist` nach `config.inc.php` (hier in `rc/plugins/carddav`) und fĂĽgen Sie die folgende Voreinstellung an das Ende der Datei an - vergessen Sie nicht, `mx.example.org` durch Ihren eigenen Hostnamen zu ersetzen:
|
||||||
```
|
```php
|
||||||
$prefs['SOGo'] = array(
|
$prefs['SOGo'] = array(
|
||||||
'name' => 'SOGo',
|
'name' => 'SOGo',
|
||||||
'username' => '%u',
|
'username' => '%u',
|
||||||
|
@ -147,7 +147,7 @@ Um dies zu tun, öffnen oder erstellen Sie `data/web/inc/vars.local.inc.php` und
|
||||||
|
|
||||||
*HINWEIS: Vergessen Sie nicht, das `<?php` Trennzeichen in der ersten Zeile einzufĂĽgen*
|
*HINWEIS: Vergessen Sie nicht, das `<?php` Trennzeichen in der ersten Zeile einzufĂĽgen*
|
||||||
|
|
||||||
```
|
```php
|
||||||
...
|
...
|
||||||
$MAILCOW_APPS = array(
|
$MAILCOW_APPS = array(
|
||||||
array(
|
array(
|
||||||
|
@ -167,7 +167,7 @@ $MAILCOW_APPS = array(
|
||||||
Ein Upgrade von Roundcube ist recht einfach: Gehen Sie auf die [Github releases](https://github.com/roundcube/roundcubemail/releases) Seite für Roundcube und holen Sie sich den Link für die "complete.tar.gz" Datei für die gewünschte Version. Dann folgen Sie den untenstehenden Befehlen und ändern Sie die URL und den Namen des Roundcube-Ordners, falls nötig.
|
Ein Upgrade von Roundcube ist recht einfach: Gehen Sie auf die [Github releases](https://github.com/roundcube/roundcubemail/releases) Seite für Roundcube und holen Sie sich den Link für die "complete.tar.gz" Datei für die gewünschte Version. Dann folgen Sie den untenstehenden Befehlen und ändern Sie die URL und den Namen des Roundcube-Ordners, falls nötig.
|
||||||
|
|
||||||
|
|
||||||
```
|
```bash
|
||||||
# Starten Sie eine Bash-Sitzung des mailcow PHP-Containers
|
# Starten Sie eine Bash-Sitzung des mailcow PHP-Containers
|
||||||
docker exec -it mailcowdockerized-php-fpm-mailcow-1 bash
|
docker exec -it mailcowdockerized-php-fpm-mailcow-1 bash
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ sed -i "/\$config\['managesieve_port'\].*$/d" /web/rc/config/config.inc.php
|
||||||
|
|
||||||
## Administratoren ohne Passwort in Roundcube einloggen lassen
|
## Administratoren ohne Passwort in Roundcube einloggen lassen
|
||||||
|
|
||||||
Installieren Sie zunächst das Plugin [dovecot_impersonate] (https://github.com/corbosman/dovecot_impersonate/) und fügen Sie Roundcube als App hinzu (siehe oben).
|
Installieren Sie zunächst das Plugin [dovecot_impersonate](https://github.com/corbosman/dovecot_impersonate/) und fügen Sie Roundcube als App hinzu (siehe oben).
|
||||||
|
|
||||||
Editieren Sie `mailcow.conf` und fĂĽgen Sie folgendes hinzu:
|
Editieren Sie `mailcow.conf` und fĂĽgen Sie folgendes hinzu:
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ Bearbeiten Sie `data/web/mailbox.php` und fĂĽgen Sie diese Zeile zum Array [`$te
|
||||||
'allow_admin_email_login_roundcube' => (preg_match("/^(yes|y)+$/i", $_ENV["ALLOW_ADMIN_EMAIL_LOGIN_ROUNDCUBE"])) ? 'true' : 'false',
|
'allow_admin_email_login_roundcube' => (preg_match("/^(yes|y)+$/i", $_ENV["ALLOW_ADMIN_EMAIL_LOGIN_ROUNDCUBE"])) ? 'true' : 'false',
|
||||||
```
|
```
|
||||||
|
|
||||||
Bearbeiten Sie `data/web/templates/mailbox.twig` und fĂĽgen Sie diesen Code am Ende des [javascript-Abschnitts] ein (https://github.com/mailcow/mailcow-dockerized/blob/2f9da5ae93d93bf62a8c2b7a5a6ae50a41170c48/data/web/templates/mailbox.twig#L49-L57):
|
Bearbeiten Sie `data/web/templates/mailbox.twig` und fĂĽgen Sie diesen Code am Ende des [javascript-Abschnitts](https://github.com/mailcow/mailcow-dockerized/blob/2f9da5ae93d93bf62a8c2b7a5a6ae50a41170c48/data/web/templates/mailbox.twig#L49-L57) ein:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var ALLOW_ADMIN_EMAIL_LOGIN_ROUNDCUBE = {{ allow_admin_email_login_roundcube }};
|
var ALLOW_ADMIN_EMAIL_LOGIN_ROUNDCUBE = {{ allow_admin_email_login_roundcube }};
|
||||||
|
@ -251,10 +251,19 @@ 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 (Plugin)"
|
||||||
docker compose down
|
|
||||||
docker compose up -d
|
``` bash
|
||||||
```
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
## Installing Roundcube
|
## Installing Roundcube
|
||||||
|
|
||||||
Download Roundcube 1.6.x to the web htdocs directory and extract it (here `rc/`):
|
Download Roundcube 1.6.x to the web htdocs directory and extract it (here `rc/`):
|
||||||
```
|
```bash
|
||||||
# Check for a newer release!
|
# Check for a newer release!
|
||||||
cd data/web
|
cd data/web
|
||||||
wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz | tar xfvz -
|
wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz | tar xfvz -
|
||||||
|
@ -14,7 +14,7 @@ chown -R root: rc/
|
||||||
```
|
```
|
||||||
|
|
||||||
If you need spell check features, create a file `data/hooks/phpfpm/aspell.sh` with the following content, then `chmod +x data/hooks/phpfpm/aspell.sh`. This installs a local spell check engine. Note, most modern web browsers have built in spell check, so you may not want/need this.
|
If you need spell check features, create a file `data/hooks/phpfpm/aspell.sh` with the following content, then `chmod +x data/hooks/phpfpm/aspell.sh`. This installs a local spell check engine. Note, most modern web browsers have built in spell check, so you may not want/need this.
|
||||||
```
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
apk update
|
apk update
|
||||||
apk add aspell-en # or any other language
|
apk add aspell-en # or any other language
|
||||||
|
@ -24,7 +24,7 @@ Create a file `data/web/rc/config/config.inc.php` with the following content.
|
||||||
- **Change the `des_key` parameter to a random value.** It is used to temporarily store your IMAP password.
|
- **Change the `des_key` parameter to a random value.** It is used to temporarily store your IMAP password.
|
||||||
- The `db_prefix` is optional but recommended.
|
- The `db_prefix` is optional but recommended.
|
||||||
- If you didn't install spell check in the above step, remove `spellcheck_engine` parameter and replace it with `$config['enable_spellcheck'] = false;`.
|
- If you didn't install spell check in the above step, remove `spellcheck_engine` parameter and replace it with `$config['enable_spellcheck'] = false;`.
|
||||||
```
|
```php
|
||||||
<?php
|
<?php
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
if (!file_exists('/tmp/mime.types')) {
|
if (!file_exists('/tmp/mime.types')) {
|
||||||
|
@ -65,7 +65,7 @@ Initialize the database and leave the installer.
|
||||||
## Configure ManageSieve filtering
|
## Configure ManageSieve filtering
|
||||||
|
|
||||||
Open `data/web/rc/config/config.inc.php` and change the following parameters (or add them at the bottom of that file):
|
Open `data/web/rc/config/config.inc.php` and change the following parameters (or add them at the bottom of that file):
|
||||||
```
|
```php
|
||||||
$config['managesieve_host'] = 'tls://dovecot:4190';
|
$config['managesieve_host'] = 'tls://dovecot:4190';
|
||||||
$config['managesieve_conn_options'] = array(
|
$config['managesieve_conn_options'] = array(
|
||||||
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
|
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
|
||||||
|
@ -81,7 +81,7 @@ $config['managesieve_vacation'] = 1;
|
||||||
|
|
||||||
Open `data/web/rc/config/config.inc.php` and enable the password plugin:
|
Open `data/web/rc/config/config.inc.php` and enable the password plugin:
|
||||||
|
|
||||||
```
|
```php
|
||||||
...
|
...
|
||||||
$config['plugins'] = array(
|
$config['plugins'] = array(
|
||||||
'archive',
|
'archive',
|
||||||
|
@ -92,7 +92,7 @@ $config['plugins'] = array(
|
||||||
|
|
||||||
Open `data/web/rc/plugins/password/password.php`, search for `case 'ssha':` and add above:
|
Open `data/web/rc/plugins/password/password.php`, search for `case 'ssha':` and add above:
|
||||||
|
|
||||||
```
|
```php
|
||||||
case 'ssha256':
|
case 'ssha256':
|
||||||
$salt = rcube_utils::random_bytes(8);
|
$salt = rcube_utils::random_bytes(8);
|
||||||
$crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
|
$crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
|
||||||
|
@ -102,7 +102,7 @@ Open `data/web/rc/plugins/password/password.php`, search for `case 'ssha':` and
|
||||||
|
|
||||||
Open `data/web/rc/plugins/password/config.inc.php` and change the following parameters (or add them at the bottom of that file):
|
Open `data/web/rc/plugins/password/config.inc.php` and change the following parameters (or add them at the bottom of that file):
|
||||||
|
|
||||||
```
|
```php
|
||||||
$config['password_driver'] = 'sql';
|
$config['password_driver'] = 'sql';
|
||||||
$config['password_algorithm'] = 'ssha256';
|
$config['password_algorithm'] = 'ssha256';
|
||||||
$config['password_algorithm_prefix'] = '{SSHA256}';
|
$config['password_algorithm_prefix'] = '{SSHA256}';
|
||||||
|
@ -112,14 +112,14 @@ $config['password_query'] = "UPDATE mailbox SET password = %P WHERE username = %
|
||||||
## Integrate CardDAV addressbooks in Roundcube
|
## Integrate CardDAV addressbooks in Roundcube
|
||||||
|
|
||||||
Download the latest release of [RCMCardDAV](https://github.com/mstilkerich/rcmcarddav) to the Roundcube plugin directory and extract it (here `rc/plugins`):
|
Download the latest release of [RCMCardDAV](https://github.com/mstilkerich/rcmcarddav) to the Roundcube plugin directory and extract it (here `rc/plugins`):
|
||||||
```
|
```bash
|
||||||
cd data/web/rc/plugins
|
cd data/web/rc/plugins
|
||||||
wget -O - https://github.com/mstilkerich/rcmcarddav/releases/download/v4.4.1/carddav-v4.4.1-roundcube16.tar.gz | tar xfvz -
|
wget -O - https://github.com/mstilkerich/rcmcarddav/releases/download/v4.4.1/carddav-v4.4.1-roundcube16.tar.gz | tar xfvz -
|
||||||
chown -R root: carddav/
|
chown -R root: carddav/
|
||||||
```
|
```
|
||||||
|
|
||||||
Copy the file `config.inc.php.dist` to `config.inc.php` (here in `rc/plugins/carddav`) and append the following preset to the end of the file - don't forget to replace `mx.example.org` with your own hostname:
|
Copy the file `config.inc.php.dist` to `config.inc.php` (here in `rc/plugins/carddav`) and append the following preset to the end of the file - don't forget to replace `mx.example.org` with your own hostname:
|
||||||
```
|
```php
|
||||||
$prefs['SOGo'] = array(
|
$prefs['SOGo'] = array(
|
||||||
'name' => 'SOGo',
|
'name' => 'SOGo',
|
||||||
'username' => '%u',
|
'username' => '%u',
|
||||||
|
@ -147,7 +147,7 @@ To do this, open or create `data/web/inc/vars.local.inc.php` and add the followi
|
||||||
|
|
||||||
*NOTE: Don't forget to add the `<?php` delimiter on the first line*
|
*NOTE: Don't forget to add the `<?php` delimiter on the first line*
|
||||||
|
|
||||||
````
|
```php
|
||||||
...
|
...
|
||||||
$MAILCOW_APPS = array(
|
$MAILCOW_APPS = array(
|
||||||
array(
|
array(
|
||||||
|
@ -160,14 +160,14 @@ $MAILCOW_APPS = array(
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
...
|
...
|
||||||
````
|
```
|
||||||
|
|
||||||
## Upgrading Roundcube
|
## Upgrading Roundcube
|
||||||
|
|
||||||
Upgrading Roundcube is rather simple, go to the [Github releases](https://github.com/roundcube/roundcubemail/releases) page for Roundcube and get the link for the "complete.tar.gz" file for the wanted release. Then follow the below commands and change the URL and Roundcube folder name if needed.
|
Upgrading Roundcube is rather simple, go to the [Github releases](https://github.com/roundcube/roundcubemail/releases) page for Roundcube and get the link for the "complete.tar.gz" file for the wanted release. Then follow the below commands and change the URL and Roundcube folder name if needed.
|
||||||
|
|
||||||
|
|
||||||
```
|
```bash
|
||||||
# Enter a bash session of the mailcow PHP container
|
# Enter a bash session of the mailcow PHP container
|
||||||
docker exec -it mailcowdockerized-php-fpm-mailcow-1 bash
|
docker exec -it mailcowdockerized-php-fpm-mailcow-1 bash
|
||||||
|
|
||||||
|
@ -252,7 +252,16 @@ Copy the contents of the following files from this [Snippet](https://gitlab.com/
|
||||||
|
|
||||||
Finally, restart mailcow
|
Finally, restart mailcow
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose down
|
|
||||||
docker compose up -d
|
``` bash
|
||||||
```
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
|
@ -44,7 +44,7 @@ Jede SOGo, CardDAV, CalDAV und EAS http-Anfrage verursacht einen zusätzlichen,
|
||||||
- Wenn ein basic_auth-Header vorhanden ist, wird das Skript die Anmeldedaten anstelle von SOGo validieren und die folgenden Header bereitstellen:
|
- Wenn ein basic_auth-Header vorhanden ist, wird das Skript die Anmeldedaten anstelle von SOGo validieren und die folgenden Header bereitstellen:
|
||||||
`x-webobjects-remote-user`, `Authorization` und `x-webobjects-auth-type`.
|
`x-webobjects-remote-user`, `Authorization` und `x-webobjects-auth-type`.
|
||||||
|
|
||||||
- Wenn kein basic_auth-Header vorhanden ist, wird das Skript nach einer aktiven Mailcow-Admin-Sitzung fĂĽr den angeforderten E-Mail-Benutzer suchen und die gleichen Header bereitstellen, aber mit dem Dovecot-Master-Passwort, das im `Authorization`-Header verwendet wird.
|
- Wenn kein basic_auth-Header vorhanden ist, wird das Skript nach einer aktiven mailcow-Admin-Sitzung fĂĽr den angeforderten E-Mail-Benutzer suchen und die gleichen Header bereitstellen, aber mit dem Dovecot-Master-Passwort, das im `Authorization`-Header verwendet wird.
|
||||||
|
|
||||||
- Wenn beides fehlschlägt, werden die Header leer gesetzt, was SOGo dazu bringt, seine Standard-Authentifizierungsmethoden zu verwenden.
|
- Wenn beides fehlschlägt, werden die Header leer gesetzt, was SOGo dazu bringt, seine Standard-Authentifizierungsmethoden zu verwenden.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
!!! warning
|
!!! warning "Warnung"
|
||||||
Dieser Abschnitt gilt nur fĂĽr Docker's Standard-Logging-Treiber (JSON).
|
Dieser Abschnitt gilt nur fĂĽr Docker's Standard-Logging-Treiber (JSON).
|
||||||
|
|
||||||
Um die Logs aller mailcow: dockerized bezogenen Container zu sehen, können Sie den folgenden Befehl innerhalb Ihres mailcow-dockerized Ordners verwenden, der Ihre `mailcow.conf` enthält:
|
Um die Logs aller mailcow: dockerized bezogenen Container zu sehen, können Sie den folgenden Befehl innerhalb Ihres mailcow-dockerized Ordners verwenden, der Ihre `mailcow.conf` enthält:
|
||||||
|
@ -32,7 +32,7 @@ Um die Logs eines bestimmten Dienstes zu sehen, kann man folgendes verwenden:
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Die verfĂĽgbaren Optionen fĂĽr den Befehl **docker compose logs** sind:
|
Die verfĂĽgbaren Optionen fĂĽr den Befehl obrigen Befehlsind:
|
||||||
|
|
||||||
- **-no-color**: Erzeugt eine einfarbige Ausgabe.
|
- **-no-color**: Erzeugt eine einfarbige Ausgabe.
|
||||||
- **-f**: Der Log-Ausgabe folgen.
|
- **-f**: Der Log-Ausgabe folgen.
|
||||||
|
|
|
@ -1,12 +1,38 @@
|
||||||
!!! warning
|
!!! warning
|
||||||
This section only applies for Dockers default logging driver (JSON).
|
This section only applies for Dockers default logging driver (JSON).
|
||||||
|
|
||||||
To view the logs of all mailcow: dockerized related containers, you can use `docker compose logs` inside your mailcow-dockerized folder that contains your `mailcow.conf`. This is usually a bit much, but you could trim the output with `--tail=100` to the last 100 lines per container, or add a `-f` to follow the live output of all your services.
|
To view the logs of all mailcow: dockerized related containers, you can use the following command inside your mailcow-dockerized folder that contains your `mailcow.conf`.
|
||||||
|
|
||||||
To view the logs of a specific service you can use `docker compose logs [options] $service_name`
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs
|
||||||
|
```
|
||||||
|
|
||||||
|
This is usually a bit much, but you could trim the output with `--tail=100` to the last 100 lines per container, or add a `-f` to follow the live output of all your services.
|
||||||
|
|
||||||
|
To view the logs of a specific service you can use the following:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose logs [options] $service_name
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose logs [options] $service_name
|
||||||
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
The available options for the command **docker compose logs** are:
|
The available options for the previous commands are:
|
||||||
|
|
||||||
- **--no-color**: Produce monochrome output.
|
- **--no-color**: Produce monochrome output.
|
||||||
- **-f**: Follow the log output.
|
- **-f**: Follow the log output.
|
||||||
|
|
|
@ -2,21 +2,74 @@
|
||||||
|
|
||||||
Wenn Ihr Server abgestürzt ist und MariaDB eine Fehlermeldung ähnlich `[ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables (*.MAI) and delete all aria_log.######## files`, können Sie Folgendes versuchen, um die Datenbank in einen gesunden Zustand zu bringen:
|
Wenn Ihr Server abgestürzt ist und MariaDB eine Fehlermeldung ähnlich `[ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables (*.MAI) and delete all aria_log.######## files`, können Sie Folgendes versuchen, um die Datenbank in einen gesunden Zustand zu bringen:
|
||||||
|
|
||||||
Starten Sie den Stack und warten Sie, bis mysql-mailcow beginnt, einen Neustart zu melden. ĂśberprĂĽfen Sie dies, indem Sie `docker compose ps` ausfĂĽhren.
|
Starten Sie den Stack und warten Sie, bis mysql-mailcow beginnt, einen Neustart zu melden. ĂśberprĂĽfen Sie dies, indem Sie den folgenden Befehl ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
FĂĽhren Sie nun die folgenden Befehle aus:
|
FĂĽhren Sie nun die folgenden Befehle aus:
|
||||||
|
|
||||||
```
|
Stoppen Sie den Stack, nicht "down" ausfĂĽhren
|
||||||
# Stoppe den Stack, fĂĽhre nicht "down" aus
|
=== "docker compose (Plugin)"
|
||||||
docker compose stop
|
|
||||||
# FĂĽhren Sie eine Bash in dem gestoppten Container als Benutzer mysql aus
|
``` bash
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
docker compose stop
|
||||||
# cd in das SQL-Datenverzeichnis
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop
|
||||||
|
```
|
||||||
|
FĂĽhren Sie eine Bash in dem gestoppten Container als Benutzer mysql aus
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
cd in das SQL-Datenverzeichnis
|
||||||
|
```bash
|
||||||
cd /var/lib/mysql
|
cd /var/lib/mysql
|
||||||
# aria_chk ausfĂĽhren
|
```
|
||||||
|
|
||||||
|
aria_chk ausfĂĽhren
|
||||||
|
```bash
|
||||||
aria_chk --check --force */*.MAI
|
aria_chk --check --force */*.MAI
|
||||||
# Löschen der aria-Logdateien
|
```
|
||||||
|
Löschen der aria-Logdateien
|
||||||
|
```bash
|
||||||
rm aria_log.*
|
rm aria_log.*
|
||||||
```
|
```
|
||||||
|
|
||||||
FĂĽhren Sie nun `docker compose down` gefolgt von `docker compose up -d` aus.
|
FĂĽhren Sie nun einen kompletten Stack neustart durch:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
|
@ -2,21 +2,78 @@
|
||||||
|
|
||||||
If your server crashed and MariaDB logs an error similar to `[ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables (*.MAI) and delete all aria_log.######## files` you may want to try the following to recover the database to a healthy state:
|
If your server crashed and MariaDB logs an error similar to `[ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables (*.MAI) and delete all aria_log.######## files` you may want to try the following to recover the database to a healthy state:
|
||||||
|
|
||||||
Start the stack and wait until mysql-mailcow begins to report a restarting state. Check by running `docker compose ps`.
|
Start the stack and wait until mysql-mailcow begins to report a restart. Check this with the following command:
|
||||||
|
|
||||||
Now run the following commands:
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
```
|
``` bash
|
||||||
# Stop the stack, don't run "down"
|
docker compose ps
|
||||||
docker compose stop
|
```
|
||||||
# Run a bash in the stopped container as user mysql
|
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
=== "docker-compose (Standalone)"
|
||||||
# cd to the SQL data directory
|
|
||||||
|
``` bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
Now exec the following commands:
|
||||||
|
|
||||||
|
Stop the stack, don't run "down"
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop
|
||||||
|
```
|
||||||
|
Run a bash in the stopped container as user mysql
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
cd to the SQL data directory
|
||||||
|
|
||||||
|
```bash
|
||||||
cd /var/lib/mysql
|
cd /var/lib/mysql
|
||||||
# Run aria_chk
|
```
|
||||||
|
|
||||||
|
Run aria_chk
|
||||||
|
|
||||||
|
```bash
|
||||||
aria_chk --check --force */*.MAI
|
aria_chk --check --force */*.MAI
|
||||||
# Delete aria log files
|
```
|
||||||
|
|
||||||
|
Delete aria log files
|
||||||
|
|
||||||
|
```bash
|
||||||
rm aria_log.*
|
rm aria_log.*
|
||||||
```
|
```
|
||||||
|
|
||||||
Now run `docker compose down` followed by `docker compose up -d`.
|
Execute a complete stack restart using the following commands:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
|
@ -2,10 +2,19 @@
|
||||||
|
|
||||||
Dieser Schritt ist normalerweise nicht notwendig.
|
Dieser Schritt ist normalerweise nicht notwendig.
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose stop mysql-mailcow watchdog-mailcow
|
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
``` bash
|
||||||
```
|
docker compose stop mysql-mailcow watchdog-mailcow
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop mysql-mailcow watchdog-mailcow
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
Sobald die SQL-Shell gestartet wurde, fĂĽhren Sie `mysql_upgrade` aus und verlassen den Container:
|
Sobald die SQL-Shell gestartet wurde, fĂĽhren Sie `mysql_upgrade` aus und verlassen den Container:
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,19 @@
|
||||||
|
|
||||||
This step is usually not necessary.
|
This step is usually not necessary.
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose stop mysql-mailcow watchdog-mailcow
|
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
``` bash
|
||||||
```
|
docker compose stop mysql-mailcow watchdog-mailcow
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop mysql-mailcow watchdog-mailcow
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
As soon as the SQL shell spawned, run `mysql_upgrade` and exit the container:
|
As soon as the SQL shell spawned, run `mysql_upgrade` and exit the container:
|
||||||
|
|
||||||
|
|
|
@ -9,30 +9,69 @@ cd mailcow_pfad
|
||||||
|
|
||||||
## MySQL-Passwörter zurücksetzen
|
## MySQL-Passwörter zurücksetzen
|
||||||
|
|
||||||
Stoppen Sie den Stack, indem Sie `docker compose stop` ausfĂĽhren.
|
Stoppen Sie den Stack, indem Sie den folgenden Befehl ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop
|
||||||
|
```
|
||||||
|
|
||||||
Wenn die Container heruntergefahren sind, fĂĽhren Sie diesen Befehl aus:
|
Wenn die Container heruntergefahren sind, fĂĽhren Sie diesen Befehl aus:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### 1\. Datenbank-Name finden
|
### 1\. Datenbank-Name finden
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
# source mailcow.conf
|
|
||||||
# docker compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME}
|
``` bash
|
||||||
MariaDB [(none)]> show databases;
|
# source mailcow.conf
|
||||||
+--------------------+
|
# docker compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME}
|
||||||
| Database |
|
MariaDB [(none)]> show databases;
|
||||||
+--------------------+
|
+--------------------+
|
||||||
| information_schema |
|
| Database |
|
||||||
| mailcow_database | <=====
|
+--------------------+
|
||||||
| mysql |
|
| information_schema |
|
||||||
| performance_schema |
|
| mailcow_database | <=====
|
||||||
+--------------------+
|
| mysql |
|
||||||
4 rows in set (0.00 sec)
|
| performance_schema |
|
||||||
```
|
+--------------------+
|
||||||
|
4 rows in set (0.00 sec)
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
# source mailcow.conf
|
||||||
|
# docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME}
|
||||||
|
MariaDB [(none)]> show databases;
|
||||||
|
+--------------------+
|
||||||
|
| Database |
|
||||||
|
+--------------------+
|
||||||
|
| information_schema |
|
||||||
|
| mailcow_database | <=====
|
||||||
|
| mysql |
|
||||||
|
| performance_schema |
|
||||||
|
+--------------------+
|
||||||
|
4 rows in set (0.00 sec)
|
||||||
|
```
|
||||||
|
|
||||||
### 2\. Einen oder mehrere Benutzer zurĂĽcksetzen
|
### 2\. Einen oder mehrere Benutzer zurĂĽcksetzen
|
||||||
|
|
||||||
|
@ -81,13 +120,30 @@ MariaDB [(none)]> FLUSH PRIVILEGES;
|
||||||
|
|
||||||
Dies funktioniert ähnlich wie das Zurücksetzen eines MySQL-Passworts, jetzt machen wir es vom Host aus, ohne uns mit dem MySQL CLI zu verbinden:
|
Dies funktioniert ähnlich wie das Zurücksetzen eines MySQL-Passworts, jetzt machen wir es vom Host aus, ohne uns mit dem MySQL CLI zu verbinden:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
Quelle mailcow.conf
|
|
||||||
docker compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='YOUR_USERNAME';"
|
``` bash
|
||||||
```
|
source mailcow.conf
|
||||||
|
docker compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='YOUR_USERNAME';"
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
source mailcow.conf
|
||||||
|
docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='YOUR_USERNAME';"
|
||||||
|
```
|
||||||
|
|
||||||
### FĂĽr SOGo:
|
### FĂĽr SOGo:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoGoogleAuthenticatorEnabled '{"SOGoGoogleAuthenticatorEnabled":0}'
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoGoogleAuthenticatorEnabled '{"SOGoGoogleAuthenticatorEnabled":0}'
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoGoogleAuthenticatorEnabled '{"SOGoGoogleAuthenticatorEnabled":0}'
|
||||||
|
```
|
|
@ -9,13 +9,33 @@ cd mailcow_path
|
||||||
|
|
||||||
## Reset MySQL Passwords
|
## Reset MySQL Passwords
|
||||||
|
|
||||||
Stop the stack by running `docker compose stop`.
|
Stop the stack by running:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose stop
|
||||||
|
```
|
||||||
|
|
||||||
When the containers came to a stop, run this command:
|
When the containers came to a stop, run this command:
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
|
||||||
```
|
``` bash
|
||||||
|
docker compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && mysql -hlocalhost -uroot && exit 0"' mysql-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
### 1\. Find database name
|
### 1\. Find database name
|
||||||
|
|
||||||
|
|
|
@ -14,4 +14,16 @@ docker volume rm mailcowdockerized_${VOLUME_NAME}
|
||||||
- Entfernen Sie das Volume `rspamd-vol-1`, um alle Rspamd-Daten zu entfernen.
|
- Entfernen Sie das Volume `rspamd-vol-1`, um alle Rspamd-Daten zu entfernen.
|
||||||
- Entfernen Sie Volume `crypt-vol-1`, um alle Crypto-Daten zu entfernen. Dies wird **alle Mails** unlesbar machen.
|
- Entfernen Sie Volume `crypt-vol-1`, um alle Crypto-Daten zu entfernen. Dies wird **alle Mails** unlesbar machen.
|
||||||
|
|
||||||
Alternativ dazu wird die Ausführung von `docker compose down -v` **alle mailcow: dockerized volumes** zerstören und alle zugehörigen Container und Netzwerke löschen.
|
Alternativ dazu wird die Ausführung des folgenden Befehles **alle mailcow: dockerized volumes** zerstören und alle zugehörigen Container und Netzwerke löschen:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down -v
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down -v
|
||||||
|
```
|
||||||
|
|
|
@ -14,4 +14,16 @@ docker volume rm mailcowdockerized_${VOLUME_NAME}
|
||||||
- Remove volume `rspamd-vol-1` to remove all Rspamd data.
|
- Remove volume `rspamd-vol-1` to remove all Rspamd data.
|
||||||
- Remove volume `crypt-vol-1` to remove all crypto data. This will render **all mails** unreadable.
|
- Remove volume `crypt-vol-1` to remove all crypto data. This will render **all mails** unreadable.
|
||||||
|
|
||||||
Alternatively, running `docker compose down -v` will **destroy all mailcow: dockerized volumes** and delete any related containers and networks.
|
Alternatively, running the following command will **destroy all mailcow: dockerized volumes** and delete any related containers and networks:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose down -v
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose down -v
|
||||||
|
```
|
||||||
|
|
|
@ -1,27 +1,85 @@
|
||||||
Eine kurze Anleitung, um einen schlecht funktionierenden Rspamd tiefgehend zu analysieren.
|
Eine kurze Anleitung, um einen schlecht funktionierenden Rspamd tiefgehend zu analysieren.
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec rspamd-mailcow bash
|
|
||||||
|
|
||||||
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
``` bash
|
||||||
sed -i 's/apt-stabil/apt-stabil-asan/i' /etc/apt/sources.list.d/rspamd.list
|
docker compose exec rspamd-mailcow bash
|
||||||
fi
|
|
||||||
|
|
||||||
apt-get update ; apt-get upgrade rspamd
|
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
||||||
|
sed -i 's/apt-stabil/apt-stabil-asan/i' /etc/apt/sources.list.d/rspamd.list
|
||||||
|
fi
|
||||||
|
|
||||||
nano /docker-entrypoint.sh
|
apt-get update ; apt-get upgrade rspamd
|
||||||
|
|
||||||
# FĂĽgen Sie vor "exec "$@"" die folgenden Zeilen ein:
|
nano /docker-entrypoint.sh
|
||||||
|
|
||||||
export G_SLICE=always-malloc
|
# FĂĽgen Sie vor "exec "$@"" die folgenden Zeilen ein:
|
||||||
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
|
||||||
|
|
||||||
```
|
export G_SLICE=always-malloc
|
||||||
|
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
||||||
|
```
|
||||||
|
|
||||||
Starten Sie Rspamd neu: `docker compose restart rspamd-mailcow`
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec rspamd-mailcow bash
|
||||||
|
|
||||||
|
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
||||||
|
sed -i 's/apt-stabil/apt-stabil-asan/i' /etc/apt/sources.list.d/rspamd.list
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-get update ; apt-get upgrade rspamd
|
||||||
|
|
||||||
|
nano /docker-entrypoint.sh
|
||||||
|
|
||||||
|
# FĂĽgen Sie vor "exec "$@"" die folgenden Zeilen ein:
|
||||||
|
|
||||||
|
export G_SLICE=always-malloc
|
||||||
|
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
||||||
|
```
|
||||||
|
|
||||||
|
Starten Sie Rspamd neu:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
Ihr Speicherverbrauch wird stark ansteigen, er wird auch stetig wachsen, was nicht mit einem möglichen Memory Leak zusammenhängt, nach dem Sie suchen.
|
Ihr Speicherverbrauch wird stark ansteigen, er wird auch stetig wachsen, was nicht mit einem möglichen Memory Leak zusammenhängt, nach dem Sie suchen.
|
||||||
|
|
||||||
Lassen Sie den Container fĂĽr ein paar Minuten, Stunden oder Tage laufen (es sollte die Zeit sein, die Sie normalerweise warten, bis der Memory Leak "passiert") und starten Sie ihn neu: `docker compose restart rspamd-mailcow`.
|
Lassen Sie den Container fĂĽr ein paar Minuten, Stunden oder Tage laufen (es sollte die Zeit sein, die Sie normalerweise warten, bis der Memory Leak "passiert") und starten Sie ihn neu:
|
||||||
|
|
||||||
Betreten Sie nun den Container, indem Sie `docker compose exec rspamd-mailcow bash` ausfĂĽhren, wechseln Sie das Verzeichnis zu /tmp und kopieren Sie die asan-Dateien an den gewĂĽnschten Ort oder laden Sie sie ĂĽber termbin.com hoch (`cat /tmp/rspamd-asan.* | nc termbin.com 9999`).
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
Betreten Sie nun den Container, indem Sie den folgenden Befehl ausfĂĽhren:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose exec rspamd-mailcow bash
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec rspamd-mailcow bash
|
||||||
|
```
|
||||||
|
|
||||||
|
Wechseln Sie das Verzeichnis zu /tmp und kopieren Sie die asan-Dateien an den gewĂĽnschten Ort oder laden Sie sie ĂĽber termbin.com hoch (`cat /tmp/rspamd-asan.* | nc termbin.com 9999`).
|
|
@ -1,27 +1,86 @@
|
||||||
A quick guide to deeply analyze a malfunctioning Rspamd.
|
A quick guide to deeply analyze a malfunctioning Rspamd.
|
||||||
|
|
||||||
```
|
=== "docker compose (Plugin)"
|
||||||
docker compose exec rspamd-mailcow bash
|
|
||||||
|
|
||||||
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
``` bash
|
||||||
sed -i 's/apt-stable/apt-stable-asan/i' /etc/apt/sources.list.d/rspamd.list
|
docker compose exec rspamd-mailcow bash
|
||||||
fi
|
|
||||||
|
|
||||||
apt-get update ; apt-get upgrade rspamd
|
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
||||||
|
sed -i 's/apt-stabil/apt-stabil-asan/i' /etc/apt/sources.list.d/rspamd.list
|
||||||
|
fi
|
||||||
|
|
||||||
nano /docker-entrypoint.sh
|
apt-get update ; apt-get upgrade rspamd
|
||||||
|
|
||||||
# Before "exec "$@"" add the following lines:
|
nano /docker-entrypoint.sh
|
||||||
|
|
||||||
export G_SLICE=always-malloc
|
# Add this in front of "exec "$@"":
|
||||||
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
|
||||||
|
|
||||||
```
|
export G_SLICE=always-malloc
|
||||||
|
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
||||||
|
```
|
||||||
|
|
||||||
Restart Rspamd: `docker compose restart rspamd-mailcow`
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec rspamd-mailcow bash
|
||||||
|
|
||||||
|
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
|
||||||
|
sed -i 's/apt-stabil/apt-stabil-asan/i' /etc/apt/sources.list.d/rspamd.list
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-get update ; apt-get upgrade rspamd
|
||||||
|
|
||||||
|
nano /docker-entrypoint.sh
|
||||||
|
|
||||||
|
# Add this in front of "exec "$@"":
|
||||||
|
|
||||||
|
export G_SLICE=always-malloc
|
||||||
|
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
|
||||||
|
```
|
||||||
|
|
||||||
|
Restart Rspamd:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
Your memory consumption will increase by a lot, it will also steadily grow, which is not related to a possible memory leak you are looking for.
|
Your memory consumption will increase by a lot, it will also steadily grow, which is not related to a possible memory leak you are looking for.
|
||||||
|
|
||||||
Leave the container running for a few minutes, hours or days (it should match the time you usually wait for the leak to "happen") and restart it: `docker compose restart rspamd-mailcow`.
|
Leave the container running for a few minutes, hours or days (it should match the time you usually wait for the leak to "happen") and restart it:
|
||||||
|
|
||||||
Now enter the container by running `docker compose exec rspamd-mailcow bash`, change the directory to /tmp and copy the asan Files to your desired location or upload them via termbin.com (`cat /tmp/rspamd-asan.* | nc termbin.com 9999`).
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose restart rspamd-mailcow
|
||||||
|
```
|
||||||
|
|
||||||
|
Now enter the container by running the command:
|
||||||
|
|
||||||
|
=== "docker compose (Plugin)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker compose exec rspamd-mailcow bash
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "docker-compose (Standalone)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker-compose exec rspamd-mailcow bash
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Change the directory to /tmp and copy the asan Files to your desired location or upload them via termbin.com (`cat /tmp/rspamd-asan.* | nc termbin.com 9999`).
|
|
@ -192,7 +192,7 @@ plugins:
|
||||||
'Disable IPv6': 'IPv6 deaktivieren'
|
'Disable IPv6': 'IPv6 deaktivieren'
|
||||||
'IP bindings': 'IP-Bindings'
|
'IP bindings': 'IP-Bindings'
|
||||||
'Local MTA on Docker host': 'Lokaler MTA auf Docker-Host'
|
'Local MTA on Docker host': 'Lokaler MTA auf Docker-Host'
|
||||||
'Sync job migration': 'Migration von Sync-Jobs'
|
'Sync job migration': 'Migration mit Sync Jobs'
|
||||||
### Models Section
|
### Models Section
|
||||||
'Models': 'Modelle'
|
'Models': 'Modelle'
|
||||||
'Password hashing': 'Passwort-Hashing'
|
'Password hashing': 'Passwort-Hashing'
|
||||||
|
@ -220,13 +220,13 @@ plugins:
|
||||||
'Recover accidentally deleted data' : 'Versehentlich gelöschte Daten wiederherstellen'
|
'Recover accidentally deleted data' : 'Versehentlich gelöschte Daten wiederherstellen'
|
||||||
### Manual/Guides/Examples Section
|
### Manual/Guides/Examples Section
|
||||||
'Manual/Guides/Examples': 'Anleitungen/Beispiele'
|
'Manual/Guides/Examples': 'Anleitungen/Beispiele'
|
||||||
### Mailcow UI Subsection
|
### mailcow UI Subsection
|
||||||
'Configuration' : 'Konfiguration'
|
'Configuration' : 'Konfiguration'
|
||||||
'CSS overrides' : 'CSS-Ăśberschreibungen'
|
'CSS overrides' : 'CSS-Ăśberschreibungen'
|
||||||
'Sub-addressing' : 'Sub-Adressierung'
|
'Sub-addressing' : 'Sub-Adressierung'
|
||||||
'Temporary email aliases' : 'Temporäre E-Mail-Aliase'
|
'Temporary email aliases' : 'Temporäre E-Mail-Aliase'
|
||||||
'Tags (for Domains and Mailboxes)' : 'Tags (fĂĽr Domains und Mailboxen)'
|
'Tags (for Domains and Mailboxes)' : 'Tags (fĂĽr Domains und Mailboxen)'
|
||||||
'Two-Factor Authentication' : 'Zwei-Faktoren-Authentifizierung'
|
'Two-Factor Authentication' : 'Zwei-Faktor Authentifizierung'
|
||||||
### Postfix Subsection
|
### Postfix Subsection
|
||||||
'Add trusted networks': 'VertrauenswĂĽrdige Netzwerke hinzufĂĽgen'
|
'Add trusted networks': 'VertrauenswĂĽrdige Netzwerke hinzufĂĽgen'
|
||||||
'Custom transport maps': 'Benutzerdefinierte Transportmaps'
|
'Custom transport maps': 'Benutzerdefinierte Transportmaps'
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
{% if config.theme.language == 'de' %}
|
{% if config.theme.language == 'de' %}
|
||||||
<center><h4>Alle Befehle sind gemäß der Syntax des <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> und der <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Variante</a> anwählbar.<br></h4></center>
|
<center><h4>Alle Befehle sind gemäß der Syntax des <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> und der <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Variante</a> anwählbar.<br></h4></center>
|
||||||
{% elif config.theme.language == 'en' %}
|
{% elif config.theme.language == 'en' %}
|
||||||
<center><h4>All Commands are available according to the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> and the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Version</a></h4></center>
|
<center><h4>All Commands are available according to the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> and the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Version</a> syntax</h4></center>
|
||||||
{% else %}
|
{% else %}
|
||||||
<center><h4>All Commands are available according to the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> and the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Version</a></h4></center>
|
<center><h4>All Commands are available according to the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/linux/">Docker Compose Plugin</a> and the <a style="color:#6390e5;" href="https://docs.docker.com/compose/install/other/">Standalone Version</a> syntax</h4></center>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
Laden …
In neuem Issue referenzieren