Dieser Commit ist enthalten in:
milkmaker 2022-06-07 13:42:56 +00:00
Ursprung 04a1a41a15
Commit 53060dbbc5
308 geänderte Dateien mit 1539 neuen und 12882 gelöschten Zeilen

Datei anzeigen

@ -1909,20 +1909,6 @@
<li class="md-nav__item">
<a href="/mailcow-dockerized-docs/manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2446,10 +2432,10 @@
<p><strong>Make sure the user you want to restore exists in your mailcow</strong>. Re-create them if they are missing.</p>
<p>Copy the file named after the user you want to restore to <code>__MAILCOW_DIRECTORY__/data/conf/sogo</code>.</p>
<p>1. Copy the backup: <code>cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo</code></p>
<p>2. Run <code>docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org</code></p>
<p>2. Run <code>docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org</code></p>
<p>Run <code>sogo-tool</code> without parameters to check for possible restore options.</p>
<p>3. Delete the copied backup by running <code>rm __MAILCOW_DIRECTORY__/data/conf/sogo</code></p>
<p>4. Restart SOGo and Memcached: <code>docker-compose restart sogo-mailcow memcached-mailcow</code></p>
<p>4. Restart SOGo and Memcached: <code>docker compose restart sogo-mailcow memcached-mailcow</code></p>
<h3 id="mail">Mail<a class="headerlink" href="#mail" title="Permanent link">&para;</a></h3>
<p>In case of an accidental deletion of a mailbox, you will be able to recover for (by default) 5 days. This depends on the <code>MAILDIR_GC_TIME</code> parameter in <code>mailcow.conf</code>.</p>
<p>A deleted mailbox is copied in its encrypted form to <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage</code>.</p>
@ -2457,8 +2443,8 @@
<p>To restore make sure you are actually restoring to the same mailcow it was deleted from or you use the same encryption keys in <code>crypt-vol-1</code>.</p>
<p><strong>Make sure the user you want to restore exists in your mailcow</strong>. Re-create them if they are missing.</p>
<p>Copy the folders from <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]</code> back to <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]</code> and resync the folder and recalc the quota:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net &#39;*&#39;
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net &#39;*&#39;
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
</code></pre></div>
<hr>
@ -2466,7 +2452,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -1984,20 +1984,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2544,7 +2530,7 @@ fi
</code></pre></div></p>
<p>On the destination (in this case <code>/external_share/backups</code>) you may want to have snapshot capabilities (ZFS, Btrfs etc.). Snapshot daily and keep for n days for a consistent backup.
Do <strong>not</strong> rsync to a Samba share, you need to keep the correct permissions!</p>
<p>To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run <code>docker-compose pull</code> and <code>docker-compose up -d</code>.</p>
<p>To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run <code>docker compose pull</code> and <code>docker compose up -d</code>.</p>
<p>If you are lucky Redis and MariaDB can automatically fix the inconsistent databases (if they <em>are</em> inconsistent).
In case of a corrupted database you'd need to use the helper script to restore the inconsistent elements. If a restore fails, try to extract the backups and copy the files back manually. Keep the file permissions!</p>
@ -2553,7 +2539,7 @@ In case of a corrupted database you'd need to use the helper script to restore t
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2442,13 +2428,13 @@
<h3 id="backup">Backup<a class="headerlink" href="#backup" title="Permanent link">&para;</a></h3>
<p>This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
docker run --rm -i -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
</code></pre></div></p>
<p>You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
Set the filename <code>backup_vmail.tar.gz</code> to any custom name, but leave the path as it is. Example: <code>[...] tar cvfz /backup/my_own_filename_.tar.gz</code></p>
<h3 id="restore">Restore<a class="headerlink" href="#restore" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
</code></pre></div>
<hr>
@ -2456,7 +2442,7 @@ docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if e
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2443,16 +2429,16 @@
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
source mailcow.conf
DATE=$(date +&quot;%Y%m%d_%H%M%S&quot;)
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} &gt; backup_${DBNAME}_${DATE}.sql
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} &gt; backup_${DBNAME}_${DATE}.sql
</code></pre></div>
<h2 id="restore">Restore<a class="headerlink" href="#restore" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>You should redirect the SQL dump without <code>docker-compose</code> to prevent parsing errors.</p>
<p>You should redirect the SQL dump without <code>docker compose</code> to prevent parsing errors.</p>
</div>
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
source mailcow.conf
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} &lt; backup_file.sql
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} &lt; backup_file.sql
</code></pre></div>
<hr>
@ -2460,7 +2446,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -1980,20 +1980,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2479,7 +2465,7 @@
<p>To find the pathes of your source volumes we use <code>docker inspect</code> and read the destination directory of every volume related to your mailcow compose project. This means we will also transfer volumes you may have added in a override file. Local bind mounts may or may not work.</p>
<p>The use rsync with the <code>--delete</code> flag. The destination will be an exact copy of the source.</p>
<p><code>mariabackup</code> is used to create a consistent copy of the SQL data directory.</p>
<p>After rsync'ing the data we will run <code>docker-compose pull</code> and remove old image tags from the destination.</p>
<p>After rsync'ing the data we will run <code>docker compose pull</code> and remove old image tags from the destination.</p>
<p>Your source will not be changed at any time.</p>
<p><strong>You may want to make sure to use the same <code>/etc/docker/daemon.json</code> on the remote target.</strong></p>
<p>You should not run disk snapshots (e.g. via ZFS, LVM etc.) on the target at the very same time as this script is run.</p>
@ -2494,7 +2480,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
</code></pre></div>
<p>The key must be owned and readable by root only.</p>
<p>Both the source and destination require <code>rsync</code> &gt;= v3.1.0.
The destination must have Docker and docker-compose <strong>v1</strong> available.</p>
The destination must have Docker and docker compose <strong>v1</strong> available.</p>
<p>The script will detect errors automatically and exit.</p>
<p>You may want to test the connection by running <code>ssh mailcow-backup.host.name -p22 -i /path/to/keyfile</code>.</p>
<h2 id="backup-and-refresh-the-cold-standby">Backup and refresh the cold-standby<a class="headerlink" href="#backup-and-refresh-the-cold-standby" title="Permanent link">&para;</a></h2>
@ -2527,7 +2513,7 @@ The destination must have Docker and docker-compose <strong>v1</strong> availabl
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -1957,20 +1957,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2446,10 +2432,10 @@
<p><strong>Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem Mailcow-Backend</strong> existiert. Legen Sie diesen neu an, falls nicht mehr existent.</p>
<p>Kopieren Sie die Datei mit dem Namen des Benutzers, den Sie wiederherstellen wollen, nach <code>__MAILCOW_DIRECTORY__/data/conf/sogo</code>.</p>
<p>1. Kopieren Sie die Sicherung: <code>cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo</code></p>
<p>2. Starten Sie <code>docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org</code>.</p>
<p>2. Starten Sie <code>docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org</code>.</p>
<p>Führen Sie <code>sogo-tool</code> ohne Parameter aus, um nach möglichen Wiederherstellungsoptionen zu suchen.</p>
<p>3. Löschen Sie die kopierte Sicherung, indem Sie <code>rm __MAILCOW_DIRECTORY__/data/conf/sogo</code> ausführen</p>
<p>4. Starten Sie SOGo und Memcached neu: <code>docker-compose restart sogo-mailcow memcached-mailcow</code></p>
<p>4. Starten Sie SOGo und Memcached neu: <code>docker compose restart sogo-mailcow memcached-mailcow</code></p>
<h3 id="mail">Mail<a class="headerlink" href="#mail" title="Permanent link">&para;</a></h3>
<p>Im Falle einer versehentlichen Löschung einer Mailbox, können Sie diese (standardmäßig) 5 Tage lang wiederherstellen. Dies hängt von dem <code>MAILDIR_GC_TIME</code> Parameter in <code>mailcow.conf</code> ab.</p>
<p>Eine gelöschte Mailbox wird in ihrer verschlüsselten Form nach <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage</code> kopiert.</p>
@ -2457,8 +2443,8 @@
<p>Um die Mailbox wiederherzustellen, stellen Sie sicher, dass Sie tatsächlich auf die gleiche Mailcow wiederherstellen, von der sie gelöscht wurde, oder Sie verwenden die gleichen Verschlüsselungsschlüssel in <code>crypt-vol-1</code>.</p>
<p><strong>Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrer Mailcow existiert</strong>. Legen Sie diesen neu an, wenn der Benutzer fehlt.</p>
<p>Kopieren Sie die Ordner von <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]</code> zurück nach <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]</code> und synchronisieren Sie die Ordner neu und berechnen Sie die Quota (Speicherplatz) neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net &#39;*&#39;
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net &#39;*&#39;
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
</code></pre></div>
<hr>
@ -2466,7 +2452,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1984,20 +1984,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2563,7 +2549,7 @@ fi
</code></pre></div></p>
<p>Am Zielort (in diesem Fall <code>/external_share/backups</code>) möchten Sie vielleicht Snapshot-Fähigkeiten haben (ZFS, Btrfs usw.). Machen Sie täglich einen Snapshot und bewahren Sie ihn für n Tage auf, um ein konsistentes Backup zu erhalten.
Führen Sie <strong>kein</strong> rsync auf eine Samba-Freigabe durch, Sie müssen die richtigen Berechtigungen einhalten!</p>
<p>Zum Wiederherstellen müssen Sie rsync einfach in umgekehrter Richtung ausführen und Docker neu starten, um die Volumes erneut zu lesen. Führen Sie <code>docker-compose pull</code> und <code>docker-compose up -d</code> aus.</p>
<p>Zum Wiederherstellen müssen Sie rsync einfach in umgekehrter Richtung ausführen und Docker neu starten, um die Volumes erneut zu lesen. Führen Sie <code>docker compose pull</code> und <code>docker compose up -d</code> aus.</p>
<p>Wenn Sie Glück haben, können Redis und MariaDB die inkonsistenten Datenbanken automatisch reparieren (wenn sie <em>inkonsistent</em> sind).
Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um die inkonsistenten Elemente wiederherzustellen. Wenn die Wiederherstellung fehlschlägt, versuchen Sie, die Sicherungen zu extrahieren und die Dateien manuell zurück zu kopieren. Behalten Sie die Dateiberechtigungen bei!</p>
@ -2572,7 +2558,7 @@ Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2442,13 +2428,13 @@
<h3 id="sicherung">Sicherung<a class="headerlink" href="#sicherung" title="Permanent link">&para;</a></h3>
<p>Diese Zeile sichert das vmail-Verzeichnis in eine Datei backup_vmail.tar.gz im mailcow-Root-Verzeichnis:
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{{ end }}&#39; $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
docker run --rm -i -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{{ end }}&#39; $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
</code></pre></div></p>
<p>Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) an einen beliebigen Pfad anpassen, auf den Sie Schreibzugriff haben.
Setzen Sie den Dateinamen <code>backup_vmail.tar.gz</code> auf einen beliebigen Namen, aber lassen Sie den Pfad so wie er ist. Beispiel: <code>[...] tar cvfz /backup/mein_eigener_filename_.tar.gz</code></p>
<h3 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if eq .Destination &quot;/var/vmail&quot; }}{{ .Name }}{{ end }}{{ end }}&#39; $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
</code></pre></div>
<hr>
@ -2456,7 +2442,7 @@ docker run --rm -it -v $(docker inspect --format &#39;{{ range .Mounts }}{{ if e
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2443,16 +2429,16 @@
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
source mailcow.conf
DATE=$(Datum +&quot;%Y%m%d_%H%M%S&quot;)
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} &gt; backup_${DBNAME}_${DATE}.sql
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} &gt; backup_${DBNAME}_${DATE}.sql
</code></pre></div>
<h2 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Sie sollten den SQL-Dump ohne <code>docker-compose</code> umleiten, um Parsing-Fehler zu vermeiden.</p>
<p>Sie sollten den SQL-Dump ohne <code>docker compose</code> umleiten, um Parsing-Fehler zu vermeiden.</p>
</div>
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
source mailcow.conf
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} &lt; backup_file.sql
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} &lt; backup_file.sql
</code></pre></div>
<hr>
@ -2460,7 +2446,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1980,20 +1980,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2479,7 +2465,7 @@
<p>Um die Pfade Ihrer Quellvolumes zu finden, verwenden wir <code>docker inspect</code> 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.</p>
<p>Die Verwendung von rsync mit dem <code>--delete</code> Flag. Das Ziel wird eine exakte Kopie der Quelle sein.</p>
<p><code>mariabackup</code> wird verwendet, um eine konsistente Kopie des SQL-Datenverzeichnisses zu erstellen.</p>
<p>Nach dem Rsync der Daten führen wir <code>docker-compose pull</code> aus und entfernen alte Image-Tags aus dem Ziel.</p>
<p>Nach dem Rsync der Daten führen wir <code>docker compose pull</code> aus und entfernen alte Image-Tags aus dem Ziel.</p>
<p>Ihre Quelle wird zu keinem Zeitpunkt verändert.</p>
<p>**Sie sollten sicherstellen, dass Sie die gleiche <code>/etc/docker/daemon.json</code> auf dem entfernten Ziel verwenden.</p>
<p>Sie sollten keine Festplatten-Snapshots (z. B. über ZFS, LVM usw.) auf dem Ziel ausführen, während dieses Skript ausgeführt wird.</p>
@ -2494,7 +2480,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
</code></pre></div>
<p>Der Schlüssel muss im Besitz von root sein und darf nur von diesem gelesen werden können.</p>
<p>Sowohl die Quelle als auch das Ziel benötigen <code>rsync</code> &gt;= v3.1.0.
Das Ziel muss über Docker und docker-compose <strong>v1</strong> verfügen.</p>
Das Ziel muss über Docker und docker compose <strong>v1</strong> verfügen.</p>
<p>Das Skript wird Fehler automatisch erkennen und sich beenden.</p>
<p>Sie können die Verbindung testen, indem Sie <code>ssh mailcow-backup.host.name -p22 -i /path/to/keyfile</code> ausführen.</p>
<h2 id="backup-und-aktualisierung-des-cold-standby">Backup und Aktualisierung des Cold-Standby<a class="headerlink" href="#backup-und-aktualisierung-des-cold-standby" title="Permanent link">&para;</a></h2>
@ -2527,7 +2513,7 @@ Das Ziel muss über Docker und docker-compose <strong>v1</strong> verfügen.</p>
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1957,20 +1957,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -498,7 +498,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2375,7 +2361,7 @@
<h1>Deinstallation</h1>
<p>Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:</p>
<div class="highlight"><pre><span></span><code>docker-compose down -v --rmi all --remove-orphans
<div class="highlight"><pre><span></span><code>docker compose down -v --rmi all --remove-orphans
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
@ -2383,7 +2369,7 @@
<li><strong>-v</strong> Entfernt benannte Volumes, die im Abschnitt <code>volumes</code> der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind.</li>
<li><strong>--rmi <Typ></strong> Images entfernen. Der Typ muss einer der folgenden sein: <code>all</code>: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. <code>local</code>: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde.</li>
<li><strong>--remove-orphans</strong> Entfernt Container für Dienste, die nicht in der Compose-Datei definiert sind.</li>
<li>Standardmäßig entfernt <code>docker-compose down</code> nur derzeit aktive Container und Netzwerke, die in der Datei <code>docker-compose.yml</code> definiert sind.</li>
<li>Standardmäßig entfernt <code>docker compose down</code> nur derzeit aktive Container und Netzwerke, die in der Datei <code>docker-compose.yml</code> definiert sind.</li>
</ul>
</div>
@ -2392,7 +2378,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -67,6 +67,11 @@
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#installation-von-docker" class="md-skip">
Zum Inhalt
</a>
</div>
<div data-md-component="announce">
@ -364,10 +369,73 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
Installation
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
Installation
</a>
<nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Inhaltsverzeichnis
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#installation-von-docker" class="md-nav__link">
Installation von Docker
</a>
</li>
<li class="md-nav__item">
<a href="#installation-von-docker-compose-v2" class="md-nav__link">
Installation von Docker Compose v2
</a>
<nav class="md-nav" aria-label="Installation von Docker Compose v2">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose-v1-deinstallieren" class="md-nav__link">
Docker Compose v1 deinstallieren
</a>
</li>
<li class="md-nav__item">
<a href="#docker-compose-v2-installieren" class="md-nav__link">
Docker Compose v2 installieren
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#installation-von-mailcow" class="md-nav__link">
Installation von mailcow
</a>
</li>
</ul>
</nav>
</li>
@ -498,7 +566,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1989,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2356,6 +2410,55 @@
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Inhaltsverzeichnis
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#installation-von-docker" class="md-nav__link">
Installation von Docker
</a>
</li>
<li class="md-nav__item">
<a href="#installation-von-docker-compose-v2" class="md-nav__link">
Installation von Docker Compose v2
</a>
<nav class="md-nav" aria-label="Installation von Docker Compose v2">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose-v1-deinstallieren" class="md-nav__link">
Docker Compose v1 deinstallieren
</a>
</li>
<li class="md-nav__item">
<a href="#docker-compose-v2-installieren" class="md-nav__link">
Docker Compose v2 installieren
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#installation-von-mailcow" class="md-nav__link">
Installation von mailcow
</a>
</li>
</ul>
</nav>
</div>
</div>
@ -2374,31 +2477,16 @@
<h1>Installation</h1>
<p>Sie benötigen Docker (eine Version &gt;= <code>20.10.2</code> ist erforderlich) und Docker Compose (eine Version <code>&lt;= 2.0</code> ist erforderlich).</p>
<p><strong>1.</strong> Erfahren Sie, wie Sie <a href="https://docs.docker.com/install/">Docker</a> und <a href="https://docs.docker.com/compose/install/">Docker Compose</a> installieren.</p>
<p>Sie benötigen Docker (eine Version &gt;= <code>20.10.2</code> ist erforderlich) und Docker Compose (eine Version <code>&gt;= 2.0</code> ist erforderlich).</p>
<h2 id="installation-von-docker">Installation von Docker<a class="headerlink" href="#installation-von-docker" title="Permanent link">&para;</a></h2>
<p>Erfahren Sie, wie Sie <a href="https://docs.docker.com/install/">Docker</a> allgemein installieren.</p>
<p>Schnelle Installation für die meisten Betriebssysteme:</p>
<ul>
<li>
<p>Docker
<div class="highlight"><pre><span></span><code>curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# Nachdem der Installationsprozess abgeschlossen ist, müssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7)
systemctl enable --now docker
</code></pre></div></p>
</li>
<li>
<p>Docker-Compose</p>
</li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p><strong>mailcow benötigt die neueste Version von docker-compose v1.</strong> Es wird dringend empfohlen, die untenstehenden Befehle zu verwenden, um <code>docker-compose</code> zu installieren. Paket-Manager (z.B. <code>apt</code>, <code>yum</code>) werden <strong>wahrscheinlich</strong> nicht die richtige Version liefern.
Hinweis: Dieser Befehl lädt docker-compose aus dem offiziellen Docker-Github-Repository herunter und ist eine sichere Methode. Das Snippet ermittelt die neueste unterstützte Version von mailcow. In fast allen Fällen ist dies die letzte verfügbare Version (Ausnahmen sind kaputte Versionen oder größere Änderungen, die noch nicht von mailcow unterstützt werden).</p>
</div>
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) &gt; /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
</code></pre></div>
<p>Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.</p>
<p><strong>1.1.1.</strong> Auf SELinux-aktivierten Systemen, z.B. CentOS 7:</p>
<p><strong>Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distro-Repository ausgeliefert wird.</strong></p>
<p><strong>Auf SELinux-aktivierten Systemen, z.B. CentOS 7:</strong></p>
<ul>
<li>Prüfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:</li>
</ul>
@ -2418,7 +2506,47 @@ chmod +x /usr/local/bin/docker-compose
<p>Starten Sie den Docker-Daemon neu und überprüfen Sie, ob SELinux nun aktiviert ist.</p>
<p>Dieser Schritt ist erforderlich, um sicherzustellen, dass die mailcows-Volumes richtig gekennzeichnet sind, wie in der Compose-Datei angegeben.
Wenn Sie daran interessiert sind, wie das funktioniert, können Sie sich die Readme-Datei von <a href="https://github.com/containers/container-selinux">https://github.com/containers/container-selinux</a> ansehen, die auf viele nützliche Informationen zu diesem Thema verweist.</p>
<p><strong>2.</strong> Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist. Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root. Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch bereitstellen und sicherstellen, dass alles gesichert ist. Das update.sh-Skript muss daher ebenfalls als root ausgeführt werden. Es kann notwendig sein, den Besitzer und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben. <strong>Wir geben die Berechtigungen für jede exponierte Anwendung</strong> auf und führen einen exponierten Dienst nicht als root aus! Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit. Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch.</p>
<h2 id="installation-von-docker-compose-v2">Installation von Docker Compose v2<a class="headerlink" href="#installation-von-docker-compose-v2" title="Permanent link">&para;</a></h2>
<div class="admonition danger">
<p class="admonition-title">Achtung</p>
<p>Seit Juni 2022 wurde Docker Compose v1 in der mailcow durch Docker Compose v2 abgelöst. <br>
<strong>Docker Compose v1 verliert den offiziellen Support seitens Docker im Oktober 2022.</strong> <br>
<em>mailcow unterstützt bis Dezember 2022 Docker Compose v1. Danach ist die Installation <strong>unumgänglich</strong>, sollten Sie mailcow <strong>weiter betreiben</strong> wollen.</em></p>
</div>
<div class="admonition bug">
<p class="admonition-title">Kompatibilität</p>
<p>Das Webinterface wird im Zeitraum von Juni - Dezember 2022 standardmäßig nur über v4 erreichbar sein.<br>
Der Grund dafür ist die Dual-Kompatibilität zwischen Compose v1 und v2. <br>
Sollten Sie das Webinterface, wie bisher standardmäßig über v6 erreichen wollen, werfen Sie bitte einen Blick auf <a href="../../post_installation/firststeps-ip_bindings/#ipv6-binding">dieses Kapitel</a>. <br>
<strong>Mit dem 2022-12 Update wird die native IPv6 Erreichbarkeit der Weboberfläche wieder hergestellt.</strong></p>
</div>
<p>Sollten Sie mailcow frisch installieren und Docker auf die oben stehende Weise installiert haben, wird Docker Compose v2 schon mit installiert. Sie müssen also nichts weiter tun.</p>
<p>Prüfen lässt sich dies mit <code>docker compose version</code>, wenn die Rückgabe in etwa so aussieht: <code>Docker Compose version v2.5.0</code>, dann ist das neue Docker Compose bereits auf Ihrem System installiert.</p>
<p>Falls es nicht installiert ist oder Sie von Docker-Compose v1 auf v2 Upgraden möchten folgen Sie einfach der Anleitung:</p>
<h4 id="docker-compose-v1-deinstallieren">Docker Compose v1 deinstallieren<a class="headerlink" href="#docker-compose-v1-deinstallieren" title="Permanent link">&para;</a></h4>
<p><strong>Sollten Sie den mailcow Stack bereits mit docker-compose v1 betreiben, stellen Sie sicher, dass Sie den mailcow Stack vor dem Upgrade auf Compose v2 heruntergefahren und das aktuellste Update installiert haben</strong></p>
<p>Um Docker Compose v1 zu deinstallieren geben Sie folgenden Befehl ein:</p>
<div class="highlight"><pre><span></span><code>rm -rf /usr/local/bin/docker-compose
</code></pre></div>
<h4 id="docker-compose-v2-installieren">Docker Compose v2 installieren<a class="headerlink" href="#docker-compose-v2-installieren" title="Permanent link">&para;</a></h4>
<p>Docker Compose v2 kommt (vorausgesetzt Sie haben die Anleitung bei Punkt <a href="#installation-von-docker">Installation von Docker</a> befolgt) mit dem Repository mit.</p>
<p>Dann ist die Installation ganz einfach:</p>
<div class="highlight"><pre><span></span><code>apt install docker-compose-plugin -y
</code></pre></div>
<p>Nun noch einmal <code>docker compose version</code> eingeben und die Rückgabe überprüfen. Ist diese ähnlich zu: <code>Docker Compose version v2.5.0</code>? Dann ist alles korrekt installiert worden!</p>
<div class="admonition warning">
<p class="admonition-title">Hinweis</p>
<p>Sollten Sie ein anderes Betriebssystem als Debian/Ubuntu verwenden, werfen Sie bitte einen Blick in das <a href="https://docs.docker.com/compose/install/#install-compose-on-linux-systems">offizielle Installationshandbuch</a> von Docker selbst, um zu erfahren wie Sie Docker Compose v2 auf anderen Linux Systemen installieren können.</p>
</div>
<h2 id="installation-von-mailcow">Installation von mailcow<a class="headerlink" href="#installation-von-mailcow" title="Permanent link">&para;</a></h2>
<p><strong>1.</strong> Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist.
Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root.
Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch bereitstellen und sicherstellen, dass alles gesichert ist.
Das update.sh-Skript muss daher ebenfalls als root ausgeführt werden.
Es kann notwendig sein, den Besitzer und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben.
<strong>Wir geben die Berechtigungen für jede exponierte Anwendung</strong> auf und führen einen exponierten Dienst nicht als root aus!
Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit.
Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch.</p>
<div class="highlight"><pre><span></span><code>$ su
# umask
0022 # &lt;- Überprüfen, dass es 0022 ist
@ -2426,16 +2554,16 @@ Wenn Sie daran interessiert sind, wie das funktioniert, können Sie sich die Rea
# git clone https://github.com/mailcow/mailcow-dockerized
# cd mailcow-dockerized
</code></pre></div>
<p><strong>3.</strong> Erzeugen Sie eine Konfigurationsdatei. Verwenden Sie einen FQDN (<code>host.domain.tld</code>) als Hostname, wenn Sie gefragt werden.
<p><strong>2.</strong> Erzeugen Sie eine Konfigurationsdatei. Verwenden Sie einen FQDN (<code>host.domain.tld</code>) als Hostname, wenn Sie gefragt werden.
<div class="highlight"><pre><span></span><code>./generate_config.sh
</code></pre></div></p>
<p><strong>4.</strong> Ändern Sie die Konfiguration, wenn Sie das wollen oder müssen.
<p><strong>3.</strong> Ändern Sie die Konfiguration, wenn Sie das wollen oder müssen.
<div class="highlight"><pre><span></span><code>nano mailcow.conf
</code></pre></div>
Wenn Sie planen, einen Reverse Proxy zu verwenden, können Sie zum Beispiel HTTPS an 127.0.0.1 auf Port 8443 und HTTP an 127.0.0.1 auf Port 8080 binden.</p>
<p>Möglicherweise müssen Sie einen vorinstallierten MTA stoppen, der Port 25/tcp blockiert. Siehe <a href="../../post_installation/firststeps-local_mta/">dieses Kapitel</a>, um zu erfahren, wie man Postfix rekonfiguriert, um nach einer erfolgreichen Installation neben mailcow laufen zu lassen.</p>
<p>Einige Updates modifizieren mailcow.conf und fügen neue Parameter hinzu. Es ist schwer, in der Dokumentation den Überblick zu behalten. Bitte überprüfen Sie deren Beschreibung und fragen Sie, wenn Sie unsicher sind, in den bekannten Kanälen nach Rat.</p>
<p><strong>4.1.</strong> Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack):</p>
<p><strong>3.1.</strong> Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack):</p>
<p><strong>Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.</strong></p>
<p>Bearbeiten Sie <code>docker-compose.yml</code> und ändern Sie die Netzwerkeinstellungen entsprechend Ihrer MTU.
Fügen Sie den neuen Parameter driver_opts wie folgt hinzu:
@ -2446,12 +2574,12 @@ Fügen Sie den neuen Parameter driver_opts wie folgt hinzu:
com.docker.network.driver.mtu: 1450
...
</code></pre></div></p>
<p><strong>4.2.</strong> Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem:</p>
<p><strong>3.2.</strong> Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem:</p>
<p><strong>Einschalten von IPv6. Endlich.</strong></p>
<p>Wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern (hehe), ist es empfehlenswert, IPv6 für das mailcow-Netzwerk zu <a href="../../post_installation/firststeps-disable_ipv6/">deaktivieren</a>, um unvorhergesehene Probleme zu vermeiden.</p>
<p><strong>5.</strong> LAden Sie die Images herunter und führen Sie die Compose-Datei aus. Der Parameter <code>-d</code> wird mailcow: dockerized starten:
<div class="highlight"><pre><span></span><code>docker-compose pull
docker-compose up -d
<p><strong>4.</strong> Laden Sie die Images herunter und führen Sie die Compose-Datei aus. Der Parameter <code>-d</code> wird mailcow: dockerized starten:
<div class="highlight"><pre><span></span><code>docker compose pull
docker compose up -d
</code></pre></div></p>
<p>Geschafft!</p>
<p>Sie können nun auf <strong>https://${MAILCOW_HOSTNAME}</strong> mit den Standard-Zugangsdaten <code>admin</code> + Passwort <code>moohoo</code> zugreifen.</p>
@ -2460,14 +2588,14 @@ docker-compose up -d
<p>Wenn Sie mailcow nicht hinter einem Reverse Proxy verwenden, sollten Sie <a href="../../manual-guides/u_e-80_to_443/">alle HTTP-Anfragen auf HTTPS umleiten</a>.</p>
</div>
<p>Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zu MySQL hergestellt werden kann.</p>
<p>Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie <code>docker volume ls</code> aus, um eine Liste aller Volumes zu sehen. Sie können <code>docker-compose down</code> sicher ausführen, ohne persistente Daten zu entfernen.</p>
<p>Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie <code>docker volume ls</code> aus, um eine Liste aller Volumes zu sehen. Sie können <code>docker compose down</code> sicher ausführen, ohne persistente Daten zu entfernen.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-07 11:39:16</span>
</small>

Datei anzeigen

@ -498,7 +498,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2394,9 +2380,9 @@ systemctl enable docker.service
</code></pre></div></p>
</li>
<li>
<p>docker-compose
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) &gt; /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
<p>docker compose
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker compose/latest.php)/docker compose-$(uname -s)-$(uname -m) &gt; /usr/local/bin/docker compose
chmod +x /usr/local/bin/docker compose
</code></pre></div></p>
</li>
</ul>
@ -2411,7 +2397,7 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
</code></pre></div></p>
<p><strong>4.</strong> Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
docker-compose herunterfahren
docker compose herunterfahren
systemctl stop docker.service
</code></pre></div></p>
<p>**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal.</p>
@ -2420,10 +2406,10 @@ systemctl stop docker.service
</code></pre></div></p>
<p><strong>7.</strong> Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
docker-compose pull
docker compose pull
</code></pre></div></p>
<p><strong>8.</strong> Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
<div class="highlight"><pre><span></span><code>docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose up -d
</code></pre></div></p>
<p><strong>9.</strong> Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen.</p>
@ -2432,7 +2418,7 @@ docker-compose pull
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -573,7 +573,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1996,20 +1996,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2513,16 +2499,13 @@
</code></pre></div></p>
<p>Wenn es nötig ist, wird es Sie fragen, wie Sie fortfahren möchten.
Merge-Fehler werden gemeldet.
Einige kleinere Konflikte werden automatisch korrigiert (zugunsten des mailcow: dockerized repository code).</p>
Einige kleinere Konflikte werden automatisch korrigiert (zugunsten des mailcow-dockerized repository code).</p>
<h3 id="optionen">Optionen<a class="headerlink" href="#optionen" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code># Optionen können kombiniert werden
# - Prüft auf Updates und zeigt Änderungen an
./update.sh --check
# Versuchen Sie nicht, docker-compose zu aktualisieren, **stellen Sie sicher, dass Sie die neueste verfügbare Version von docker-compose verwenden**
./update.sh --no-update-compose
# - Starten Sie mailcow nicht, nachdem Sie ein Update durchgeführt haben
./update.sh --skip-start
@ -2551,11 +2534,11 @@ dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
<h3 id="kann-ich-ein-rollback-durchfuhren">Kann ich ein Rollback durchführen?<a class="headerlink" href="#kann-ich-ein-rollback-durchfuhren" title="Permanent link">&para;</a></h3>
<p>Ja.</p>
<p>Siehe das obige Thema, anstelle eines Diffs führen Sie checkout aus:</p>
<div class="highlight"><pre><span></span><code>docker-compose down
<div class="highlight"><pre><span></span><code>docker compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
docker compose pull
docker compose up -d
</code></pre></div>
<h3 id="hooks">Hooks<a class="headerlink" href="#hooks" title="Permanent link">&para;</a></h3>
<p>Sie können sich in den Update-Mechanismus einklinken, indem Sie Skripte namens <code>pre_commit_hook.sh</code> und <code>post_commit_hook.sh</code> zu Ihrem mailcows-Root-Verzeichnis hinzufügen. Siehe <a href="../../manual-guides/u_e-update-hooks/">hier</a> für weitere Details.</p>
@ -2571,7 +2554,7 @@ docker-compose up -d
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:01:22</span>
</small>

Datei anzeigen

@ -575,7 +575,7 @@
<li class="md-nav__item">
<a href="post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1998,20 +1998,6 @@
<li class="md-nav__item">
<a href="manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1984,20 +1984,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2525,7 +2511,7 @@ MaxZipTypeRcg 50M
</code></pre></div></p>
</li>
<li>Starten Sie den ClamAV Container neu:
<div class="highlight"><pre><span></span><code>docker-compose restart clamd-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart clamd-mailcow
</code></pre></div></li>
</ol>
<p><strong>Bitte beachten Sie</strong>:</p>
@ -2544,7 +2530,7 @@ DatabaseCustomURL http://sigs.interserver.net/shell.ldb
DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
</code></pre></div></li>
<li>Starten Sie den ClamAV Container neu:
<div class="highlight"><pre><span></span><code>docker-compose restart clamd-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart clamd-mailcow
</code></pre></div></li>
</ol>
@ -2553,7 +2539,7 @@ DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1957,20 +1957,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2427,7 +2413,7 @@
<h2 id="whitelist-fur-bestimmte-clamav-signaturen">Whitelist für bestimmte ClamAV-Signaturen<a class="headerlink" href="#whitelist-fur-bestimmte-clamav-signaturen" title="Permanent link">&para;</a></h2>
<p>Es kann vorkommen, dass legitime (saubere) Mails von ClamAV blockiert werden (Rspamd markiert die Mail mit <code>VIRUS_FOUND</code>). So werden beispielsweise interaktive PDF-Formularanhänge standardmäßig blockiert, da der eingebettete Javascript-Code für schädliche Zwecke verwendet werden könnte. Überprüfen Sie dies anhand der clamd-Protokolle, z.B.:</p>
<div class="highlight"><pre><span></span><code>docker-compose logs clamd-mailcow <span class="p">|</span> grep <span class="s2">&quot;FOUND&quot;</span>
<div class="highlight"><pre><span></span><code>docker compose logs clamd-mailcow <span class="p">|</span> grep <span class="s2">&quot;FOUND&quot;</span>
</code></pre></div>
<p>Diese Zeile bestätigt, dass ein solcher identifiziert wurde:</p>
<div class="highlight"><pre><span></span><code>clamd-mailcow_1 | Sat Sep 28 07:43:24 2019 -&gt; instream(local): PUA.Pdf.Trojan.EmbeddedJavaScript-1(e887d2ac324ce90750768b86b63d0749:363325) FOUND
@ -2435,11 +2421,11 @@
<p>Um diese spezielle Signatur auf die Whitelist zu setzen (und den Versand dieses Dateityps im Anhang zu ermöglichen), fügen Sie sie der ClamAV-Signatur-Whitelist-Datei hinzu:</p>
<div class="highlight"><pre><span></span><code><span class="nb">echo</span> <span class="s1">&#39;PUA.Pdf.Trojan.EmbeddedJavaScript-1&#39;</span> &gt;&gt; data/conf/clamav/whitelist.ign2
</code></pre></div>
<p>Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker-compose neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart clamd-mailcow
<p>Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker compose neu:</p>
<div class="highlight"><pre><span></span><code>docker compose restart clamd-mailcow
</code></pre></div>
<p>Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis:</p>
<div class="highlight"><pre><span></span><code># docker-compose exec redis-mailcow /bin/sh
<div class="highlight"><pre><span></span><code># docker compose exec redis-mailcow /bin/sh
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
/data # exit
</code></pre></div>
@ -2449,7 +2435,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2383,7 +2369,7 @@
<div class="highlight"><pre><span></span><code>docker build data/Dockerfiles/service -t mailcow/$service
</code></pre></div>
<p>Nun werden die geänderten Container automatisch neu erstellt:</p>
<div class="highlight"><pre><span></span><code>docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose up -d
</code></pre></div>
<hr>
@ -2391,7 +2377,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>
@ -2432,13 +2418,13 @@
<a href="../u_e-docker-dc_bash_compl/" class="md-footer__link md-footer__link--next" aria-label="Weiter: Docker Compose Bash Completion" rel="next">
<a href="../../u_e-why_unbound/" class="md-footer__link md-footer__link--next" aria-label="Weiter: Warum unbound?" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Weiter
</span>
Docker Compose Bash Completion
Warum unbound?
</div>
</div>
<div class="md-footer__button md-icon">

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2380,14 +2366,14 @@
<p>Diese Funktion kann wieder aktiviert werden, indem <code>ACL_ANYONE</code> auf <code>allow</code> in mailcow.conf gesetzt wird:</p>
<div class="highlight"><pre><span></span><code>ACL_ANYONE=allow
</code></pre></div>
<p>Wenden Sie die Änderungen an, indem Sie <code>docker-compose up -d</code> ausführen.</p>
<p>Wenden Sie die Änderungen an, indem Sie <code>docker compose up -d</code> ausführen.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1984,20 +1984,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2483,16 +2469,16 @@
<h2 id="der-manuelle-weg">Der manuelle Weg<a class="headerlink" href="#der-manuelle-weg" title="Permanent link">&para;</a></h2>
<p>Dann wollen wir mal loslegen:</p>
<p>Löschen Sie die Mails eines Benutzers im Junk-Ordner, die <strong>gelesen</strong> und <strong>älter</strong> als 4 Stunden sind</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm expunge -u &#39;mailbox@example.com&#39; mailbox &#39;Junk&#39; SEEN not SINCE 4h
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -u &#39;mailbox@example.com&#39; mailbox &#39;Junk&#39; SEEN not SINCE 4h
</code></pre></div>
<p>Lösche <strong>alle</strong> Mails des Benutzers im Junk-Ordner, die <strong>älter</strong> als 7 Tage sind</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; savedbefore 7d
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; savedbefore 7d
</code></pre></div>
<p>Löscht <strong>alle</strong> Mails (aller Benutzer) in <strong>allen</strong> Ordnern, die <strong>älter</strong> als 52 Wochen sind (internes Datum der Mail, nicht das Datum, an dem sie auf dem System gespeichert wurde =&gt; <code>before</code> statt <code>savedbefore</code>). Nützlich zum Löschen sehr alter Mails in allen Benutzern und Ordnern (daher besonders nützlich für GDPR-Compliance).</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -A mailbox % before 52w
</code></pre></div>
<p>Löschen von Mails in einem benutzerdefinierten Ordner <strong>innerhalb</strong> des Posteingangs eines Benutzers, die <strong>nicht</strong> gekennzeichnet und <strong>älter</strong> als 2 Wochen sind</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm expunge -u &#39;mailbox@example.com&#39; mailbox &#39;INBOX/custom-folder&#39; not FLAGGED not SINCE 2w
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -u &#39;mailbox@example.com&#39; mailbox &#39;INBOX/custom-folder&#39; not FLAGGED not SINCE 2w
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
@ -2505,8 +2491,8 @@
# Pfad zu mailcow-dockerized, z.B. /opt/mailcow-dockerized
cd /pfad/zu/ihrem/mailcow-dockerized
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; savedbefore 2w
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; SEEN not SINCE 12h
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; savedbefore 2w
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox &#39;Junk&#39; SEEN not SINCE 12h
[...]
</code></pre></div>
<p>Um einen Cronjob zu erstellen, können Sie <code>crontab -e</code> ausführen und etwas wie das Folgende einfügen, um ein Skript auszuführen:</p>
@ -2547,7 +2533,7 @@ common.go:124 ▶ NOTICE [Job &quot;dovecot-expunge-trash&quot; (8759567efa66)]
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2378,7 +2364,7 @@
<p>Erstellen Sie eine Datei <code>data/conf/dovecot/extra.conf</code> - falls nicht vorhanden - und fügen Sie Ihren zusätzlichen Inhalt hier ein.</p>
<p>Starten Sie <code>dovecot-mailcow</code> neu, um Ihre Änderungen zu übernehmen:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart dovecot-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart dovecot-mailcow
</code></pre></div>
<hr>
@ -2386,7 +2372,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1977,20 +1977,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2473,17 +2459,17 @@
<p>Da wir in Docker laufen und unsere Container mit dem "restart: always" Flag erstellen, wird eine oom Situation zumindest nur einen Neustart des Containers auslösen.</p>
<h3 id="fts-bezogene-dovecot-befehle">FTS-bezogene Dovecot-Befehle<a class="headerlink" href="#fts-bezogene-dovecot-befehle" title="Permanent link">&para;</a></h3>
<p><div class="highlight"><pre><span></span><code># Einzelbenutzer
docker-compose exec dovecot-mailcow doveadm fts rescan -u user@domain
docker compose exec dovecot-mailcow doveadm fts rescan -u user@domain
# alle Benutzer
docker-compose exec dovecot-mailcow doveadm fts rescan -A
docker compose exec dovecot-mailcow doveadm fts rescan -A
</code></pre></div>
Dovecot Wiki: "Scannt, welche Mails im Volltextsuchindex vorhanden sind und vergleicht diese mit den tatsächlich in den Postfächern vorhandenen Mails. Dies entfernt Mails aus dem Index, die bereits gelöscht wurden und stellt sicher, dass der nächste doveadm-Index alle fehlenden Mails (falls vorhanden) indiziert."</p>
<p>Dies indiziert <strong>nicht</strong> eine Mailbox neu. Es repariert im Grunde einen gegebenen Index.</p>
<p>Wenn Sie die Daten sofort neu indizieren wollen, können Sie den folgenden Befehl ausführen, wobei '*' auch eine Postfachmaske wie 'Sent' sein kann. Sie müssen diese Befehle nicht ausführen, aber es wird die Dinge ein wenig beschleunigen:</p>
<div class="highlight"><pre><span></span><code># einzelner Benutzer
docker-compose exec dovecot-mailcow doveadm index -u user@domain &#39;*&#39;
docker compose exec dovecot-mailcow doveadm index -u user@domain &#39;*&#39;
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
docker-compose exec dovecot-mailcow doveadm index -A &#39;*&#39;
docker compose exec dovecot-mailcow doveadm index -A &#39;*&#39;
</code></pre></div>
<p>Dies <strong>wird</strong> einige Zeit in Anspruch nehmen, abhängig von Ihrer Maschine und Solr kann oom ausführen, überwachen Sie es!</p>
<p>Da die Neuindizierung sehr sinnvoll ist, haben wir sie nicht in die mailcow UI integriert. Sie müssen sich um eventuelle Fehler beim Re-Indizieren einer Mailbox kümmern.</p>
@ -2495,7 +2481,7 @@ docker-compose exec dovecot-mailcow doveadm index -A &#39;*&#39;
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1988,20 +1988,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2500,12 +2486,12 @@ Fügen Sie die Einstellung ein, gefolgt von dem neuen Wert. Um zum Beispiel das
</div>
<h3 id="dovecot-neu-laden">Dovecot neu laden<a class="headerlink" href="#dovecot-neu-laden" title="Permanent link">&para;</a></h3>
<p>Nun laden Sie Dovecot neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow dovecot reload
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow dovecot reload
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>Sie können den Wert dieser Einstellung überprüfen mit
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow dovecot -a | grep &quot;imap_idle_notify_interval&quot;
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow dovecot -a | grep &quot;imap_idle_notify_interval&quot;
</code></pre></div>
Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn geändert haben, sollten Sie den neuen Wert sehen.</p>
</div>
@ -2515,7 +2501,7 @@ Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn g
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2378,7 +2364,7 @@
<p>Die Mails werden komprimiert (lz4) und verschlüsselt gespeichert. Das Schlüsselpaar ist in crypt-vol-1 zu finden.</p>
<p>Wenn Sie vorhandene maildir-Dateien entschlüsseln/verschlüsseln wollen, können Sie das folgende Skript auf eigene Gefahr verwenden:</p>
<p>Rufen Sie Dovecot auf, indem Sie <code>docker-compose exec dovecot-mailcow /bin/bash</code> im mailcow-dockerisierten Verzeichnis ausführen.</p>
<p>Rufen Sie Dovecot auf, indem Sie <code>docker compose exec dovecot-mailcow /bin/bash</code> im mailcow-dockerisierten Verzeichnis ausführen.</p>
<div class="highlight"><pre><span></span><code># Entschlüsseln Sie /var/vmail
find /var/vmail/ -type f -regextype egrep -regex &#39;.*S=.*W=.*&#39; | while read -r file; do
if [[ $(head -c7 &quot;$file&quot;) == &quot;CRYPTED&quot; ]]; then
@ -2411,7 +2397,7 @@ done
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1957,20 +1957,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2441,7 +2427,7 @@
<p><code>:INDEXPVT=~/public</code> kann weggelassen werden, wenn die Flags, die pro Benutzer gesehen werden, nicht gewünscht sind.</p>
<p>Die neue Mailbox im öffentlichen Namensraum wird von den Benutzern automatisch abonniert.</p>
<p>Um allen authentifizierten Benutzern vollen Zugriff auf das neue Postfach (nicht auf den gesamten Namespace) zu gewähren, führen Sie aus:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow doveadm acl set -A &quot;Public/Develcow&quot; &quot;authenticated&quot; lookup read write write-seen write-deleted insert post delete expunge create
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm acl set -A &quot;Public/Develcow&quot; &quot;authenticated&quot; lookup read write write-seen write-deleted insert post delete expunge create
</code></pre></div>
<p>Passen Sie den Befehl an Ihre Bedürfnisse an, wenn Sie detailliertere Rechte pro Benutzer vergeben möchten (verwenden Sie z.B. <code>-u user@domain</code> anstelle von <code>-A</code>).</p>
<h2 id="erlaube-authentifizierten-benutzern-den-zugriff-auf-den-gesamten-offentlichen-namespace">Erlaube authentifizierten Benutzern den Zugriff auf den gesamten öffentlichen Namespace<a class="headerlink" href="#erlaube-authentifizierten-benutzern-den-zugriff-auf-den-gesamten-offentlichen-namespace" title="Permanent link">&para;</a></h2>
@ -2458,7 +2444,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2383,7 +2369,7 @@
<div class="highlight"><pre><span></span><code>DOVECOT_MASTER_USER=mymasteruser
DOVECOT_MASTER_PASS=mysecretpass
</code></pre></div>
<p>Führen Sie <code>docker-compose up -d</code> aus, um Ihre Änderungen zu übernehmen.</p>
<p>Führen Sie <code>docker compose up -d</code> aus, um Ihre Änderungen zu übernehmen.</p>
<p>Der statische Master-Benutzername wird zu <code>DOVECOT_MASTER_USER@mailcow.local</code> erweitert.</p>
<p>Um sich als <code>test@example.org</code> anzumelden, würde dies <code>test@example.org*mymasteruser@mailcow.local</code> mit dem oben angegebenen Passwort entsprechen.</p>
<p>Eine Anmeldung bei SOGo ist mit diesem Benutzernamen nicht möglich. Für Admins steht eine Click-to-Login-Funktion für SOGo zur Verfügung, wie [hier] beschrieben (<a href="https://mailcow.github.io/mailcow-dockerized-docs/debug-admin_login_sogo/">https://mailcow.github.io/mailcow-dockerized-docs/debug-admin_login_sogo/</a>)
@ -2394,7 +2380,7 @@ Es wird kein Hauptbenutzer benötigt.</p>
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1977,20 +1977,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2470,7 +2456,7 @@
<p class="admonition-title">Warning</p>
<p>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).</p>
</div>
<p>Ein einfacher, schmutziger, aber stabiler Workaround ist es, mailcow zu stoppen (<code>docker-compose down</code>), <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data</code> zu entfernen und einen neuen Link zu Ihrem entfernten Dateisystem zu erstellen, zum Beispiel:</p>
<p>Ein einfacher, schmutziger, aber stabiler Workaround ist es, mailcow zu stoppen (<code>docker compose down</code>), <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data</code> zu entfernen und einen neuen Link zu Ihrem entfernten Dateisystem zu erstellen, zum Beispiel:</p>
<div class="highlight"><pre><span></span><code>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
</code></pre></div>
@ -2508,10 +2494,10 @@ volumes:
</code></pre></div>
<ul>
<li>Kopieren Sie den Inhalt des <code>Mountpoint</code>-Ordners an den neuen Speicherort (z.B. <code>/data/mailcow/vmail</code>) mit <code>cp -a</code>, <code>rsync -a</code> oder einem ähnlichen, nicht strikten Kopierbefehl</li>
<li>Stoppen Sie mailcow durch Ausführen von <code>docker-compose down</code> aus Ihrem mailcow-Stammverzeichnis (z.B. <code>/opt/mailcow-dockerized</code>)</li>
<li>Stoppen Sie mailcow durch Ausführen von <code>docker compose down</code> aus Ihrem mailcow-Stammverzeichnis (z.B. <code>/opt/mailcow-dockerized</code>)</li>
<li>Erstellen Sie die Datei <code>docker-compose.override.yml</code>, bearbeiten Sie den Gerätepfad entsprechend</li>
<li>Löschen Sie den aktuellen vmail-Ordner: <code>docker volume rm mailcowdockerized_vmail-vol-1</code></li>
<li>Starten Sie mailcow durch Ausführen von <code>docker-compose up -d</code> aus Ihrem mailcow-Stammverzeichnis (z.B. <code>/opt/mailcow-dockerized</code>)</li>
<li>Starten Sie mailcow durch Ausführen von <code>docker compose up -d</code> aus Ihrem mailcow-Stammverzeichnis (z.B. <code>/opt/mailcow-dockerized</code>)</li>
</ul>
<hr>
@ -2519,7 +2505,7 @@ volumes:
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1978,20 +1978,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2557,8 +2543,8 @@
<p>Dieser Dateiname muss keine ".conf"-Erweiterung haben, sondern folgt dem Muster <code>site.*.custom</code>, wobei <code>*</code> ein eigener Name ist.</p>
<p>Wenn PHP in eine benutzerdefinierte Site eingebunden werden soll, verwenden Sie bitte den PHP-FPM-Listener auf phpfpm:9002 oder erstellen Sie einen neuen Listener in <code>data/conf/phpfpm/php-fpm.d/pools.conf</code>.</p>
<p>Starten Sie Nginx neu (und PHP-FPM, falls ein neuer Listener erstellt wurde):</p>
<div class="highlight"><pre><span></span><code>docker-compose restart nginx-mailcow
docker-compose restart php-fpm-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart nginx-mailcow
docker compose restart php-fpm-mailcow
</code></pre></div>
<hr>
@ -2566,7 +2552,7 @@ docker-compose restart php-fpm-mailcow
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2399,19 +2385,19 @@
</span> }
}
</code></pre></div>
<p>Speichern Sie und starten Sie Nginx neu: <code>docker-compose restart nginx-mailcow</code>.</p>
<p>Speichern Sie und starten Sie Nginx neu: <code>docker compose restart nginx-mailcow</code>.</p>
<p>Öffnen Sie nun <code>mailcow.conf</code> und suchen Sie <code>ADDITIONAL_SAN</code>.
Fügen Sie <code>webmail.example.org</code> zu diesem Array hinzu, verwenden Sie keine Anführungszeichen!</p>
<div class="highlight"><pre><span></span><code>ADDITIONAL_SAN=webmail.example.org
</code></pre></div>
<p>Führen Sie <code>docker-compose up -d</code> aus. Siehe "acme-mailcow" und "nginx-mailcow" Logs, wenn etwas fehlschlägt.</p>
<p>Führen Sie <code>docker compose up -d</code> aus. Siehe "acme-mailcow" und "nginx-mailcow" Logs, wenn etwas fehlschlägt.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2378,7 +2364,7 @@
<p>Öffnen Sie <code>data/conf/postfix/extra.cf</code> und setzen Sie das <code>message_size_limit</code> entsprechend in Bytes. Siehe <code>main.cf</code> für den Standardwert.</p>
<p>Starten Sie Postfix neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart postfix-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart postfix-mailcow
</code></pre></div>
<hr>
@ -2386,7 +2372,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2451,7 +2437,7 @@
<div class="highlight"><pre><span></span><code>smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sasl_access reject_authenticated_sender_login_mismatch [...]
</code></pre></div></p>
<p>Postmap auf check_sasl_access ausführen:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
<div class="highlight"><pre><span></span><code>docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
</code></pre></div>
<p>Starten Sie den Postfix-Container neu.</p>
@ -2460,7 +2446,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2380,7 +2366,7 @@
<p>Postfix wird sich einmal nach dem Start von postfix-mailcow über doppelte Werte beschweren, dies ist beabsichtigt.</p>
<p>Syslog-ng wurde so konfiguriert, dass es diese Warnungen ausblendet, während Postfix läuft, um die Log-Dateien nicht jedes Mal mit unnötigen Informationen zu spammen, wenn ein Dienst benutzt wird.</p>
<p>Starten Sie <code>postfix-mailcow</code> neu, um Ihre Änderungen zu übernehmen:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart postfix-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart postfix-mailcow
</code></pre></div>
<hr>
@ -2388,7 +2374,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1977,20 +1977,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1977,20 +1977,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2478,14 +2464,14 @@
<p>Bearbeiten Sie <code>data/conf/postfix/extra.cf</code>:</p>
<div class="highlight"><pre><span></span><code>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
</code></pre></div>
<p>Führen Sie <code>docker-compose restart postfix-mailcow</code> aus, um Ihre neuen Einstellungen zu übernehmen.</p>
<p>Führen Sie <code>docker compose restart postfix-mailcow</code> aus, um Ihre neuen Einstellungen zu übernehmen.</p>
<h3 id="ipv6-hostssubnets">IPv6-Hosts/Subnets<a class="headerlink" href="#ipv6-hostssubnets" title="Permanent link">&para;</a></h3>
<p>Das Hinzufügen von IPv6-Hosts erfolgt auf die gleiche Weise wie bei IPv4, allerdings muss das Subnetz in eckige Klammern <code>[]</code> gesetzt und die Netzmaske angehängt werden.</p>
<p>Um das Subnetz 2001:db8::/32 zu den vertrauenswürdigen Netzwerken hinzuzufügen, können Sie die folgende Konfiguration verwenden, abhängig von Ihren IPV4_NETWORK- und IPV6_NETWORK-Bereichen:</p>
<p>Bearbeiten Sie <code>data/conf/postfix/extra.cf</code>:</p>
<div class="highlight"><pre><span></span><code>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
</code></pre></div>
<p>Führen Sie <code>docker-compose restart postfix-mailcow</code> aus, um Ihre neuen Einstellungen zu übernehmen.</p>
<p>Führen Sie <code>docker compose restart postfix-mailcow</code> aus, um Ihre neuen Einstellungen zu übernehmen.</p>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>Weitere Informationen über mynetworks finden Sie in der <a href="http://www.postfix.org/postconf.5.html#mynetworks">Postfix-Dokumentation</a>.</p>
@ -2496,7 +2482,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1995,20 +1995,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2506,13 +2492,13 @@
<p>Redis wird als Key-Value-Speicher für die Einstellungen und Daten von rspamd und (einige von) mailcow verwendet. Wenn Sie mit Redis nicht vertraut sind, lesen Sie bitte die <a href="https://redis.io/topics/introduction">Einführung in Redis</a> und besuchen Sie gegebenenfalls diese <a href="http://try.redis.io/">wunderbare Anleitung</a>, um zu erfahren, wie man Redis benutzt.</p>
<h2 id="client">Client<a class="headerlink" href="#client" title="Permanent link">&para;</a></h2>
<p>Um sich mit dem redis cli zu verbinden, führen Sie aus:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec redis-mailcow redis-cli
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow redis-cli
</code></pre></div>
<h3 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">&para;</a></h3>
<p>Hier sind einige nützliche Befehle für den redis-cli zur Fehlersuche:</p>
<h5 id="monitor">MONITOR<a class="headerlink" href="#monitor" title="Permanent link">&para;</a></h5>
<p>Überwacht alle vom Server empfangenen Anfragen in Echtzeit:</p>
<div class="highlight"><pre><span></span><code># docker-compose exec redis-mailcow redis-cli
<div class="highlight"><pre><span></span><code># docker compose exec redis-mailcow redis-cli
127.0.0.1:6379&gt; überwachen
OK
1494077286.401963 [0 172.22.1.253:41228] &quot;SMEMBERS&quot; &quot;BAYES_SPAM_keys&quot;
@ -2535,7 +2521,7 @@ PONG
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2017,20 +2017,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2558,9 +2544,9 @@ Dies wird durch die Verwendung des Sieve-Plugins "sieve_imapsieve" und Parser-Sk
<h3 id="spam-oder-ham-aus-bestehendem-verzeichnis-lernen">Spam oder Ham aus bestehendem Verzeichnis lernen<a class="headerlink" href="#spam-oder-ham-aus-bestehendem-verzeichnis-lernen" title="Permanent link">&para;</a></h3>
<p>Sie können einen Einzeiler verwenden, um Mails im Klartextformat (unkomprimiert) zu lernen:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Ham</span>
<span class="k">for</span> file <span class="k">in</span> /my/folder/cur/*<span class="p">;</span> <span class="k">do</span> docker <span class="nb">exec</span> -i <span class="k">$(</span>docker-compose ps -q rspamd-mailcow<span class="k">)</span> rspamc learn_ham &lt; <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
<span class="k">for</span> file <span class="k">in</span> /my/folder/cur/*<span class="p">;</span> <span class="k">do</span> docker <span class="nb">exec</span> -i <span class="k">$(</span>docker compose ps -q rspamd-mailcow<span class="k">)</span> rspamc learn_ham &lt; <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
<span class="c1"># Spam</span>
<span class="k">for</span> file <span class="k">in</span> /my/folder/.Junk/cur/*<span class="p">;</span> <span class="k">do</span> docker <span class="nb">exec</span> -i <span class="k">$(</span>docker-compose ps -q rspamd-mailcow<span class="k">)</span> rspamc learn_spam &lt; <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
<span class="k">for</span> file <span class="k">in</span> /my/folder/.Junk/cur/*<span class="p">;</span> <span class="k">do</span> docker <span class="nb">exec</span> -i <span class="k">$(</span>docker compose ps -q rspamd-mailcow<span class="k">)</span> rspamc learn_spam &lt; <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
</code></pre></div>
<p>Erwägen Sie, einen lokalen Ordner als neues Volume an <code>rspamd-mailcow</code> in <code>docker-compose.yml</code> anzuhängen und die gegebenen Dateien innerhalb des Containers zu lernen. Dies kann als Workaround verwendet werden, um komprimierte Daten mit zcat zu parsen. Beispiel:</p>
<p>``bash
@ -2576,15 +2562,15 @@ Sie müssen die Schlüssel in Redis löschen, um die gelernten Daten zurückzuse
cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
</code></pre></div></p>
<p><strong>Bayes-Daten zurücksetzen</strong></p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern BAYES_* | xargs redis-cli del&#39;</span>
docker-compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern RS* | xargs redis-cli del&#39;</span>
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern BAYES_* | xargs redis-cli del&#39;</span>
docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern RS* | xargs redis-cli del&#39;</span>
</code></pre></div>
<p><strong>Neurale Daten zurücksetzen</strong></p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern rn_* | xargs redis-cli del&#39;</span>
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">&#39;redis-cli --scan --pattern rn_* | xargs redis-cli del&#39;</span>
</code></pre></div>
<p><strong>Fuzzy-Daten zurücksetzen</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># Wir müssen zuerst das redis-cli eingeben:</span>
docker-compose <span class="nb">exec</span> redis-mailcow redis-cli
docker compose <span class="nb">exec</span> redis-mailcow redis-cli
<span class="c1"># In redis-cli:</span>
<span class="m">127</span>.0.0.1:6379&gt; EVAL <span class="s2">&quot;for i, name in ipairs(redis.call(&#39;KEYS&#39;, ARGV[1])) do redis.call(&#39;DEL&#39;, name); end&quot;</span> <span class="m">0</span> fuzzy*
</code></pre></div>
@ -2595,8 +2581,8 @@ docker-compose <span class="nb">exec</span> redis-mailcow redis-cli
<p>...das Schlüsselmuster nicht gefunden wurde und somit keine Daten zum Löschen vorhanden sind - ist es in Ordnung.</p>
<h2 id="cli-werkzeuge">CLI-Werkzeuge<a class="headerlink" href="#cli-werkzeuge" title="Permanent link">&para;</a></h2>
<p>``bash
docker-compose exec rspamd-mailcow rspamc --help
docker-compose exec rspamd-mailcow rspamadm --help
docker compose exec rspamd-mailcow rspamc --help
docker compose exec rspamd-mailcow rspamadm --help
<div class="highlight"><pre><span></span><code>## Greylisting deaktivieren
Nur Nachrichten mit einer höheren Punktzahl werden als Greylisting betrachtet (soft rejected). Es ist schlechte Praxis, Greylisting zu deaktivieren.
@ -2610,26 +2596,26 @@ Fügen Sie die Zeile hinzu:
```cpp
enabled = false;
</code></pre></div></p>
<p>Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: <code>docker-compose restart rspamd-mailcow</code></p>
<p>Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: <code>docker compose restart rspamd-mailcow</code></p>
<h2 id="spamfilter-schwellenwerte-global">Spamfilter-Schwellenwerte (global)<a class="headerlink" href="#spamfilter-schwellenwerte-global" title="Permanent link">&para;</a></h2>
<p>Jeder Benutzer kann <a href="../../mailcow-UI/u_e-mailcow_ui-spamfilter/">seine Spam-Bewertung</a> individuell ändern. Um eine neue <strong>serverweite</strong> Grenze zu definieren, editieren Sie <code>data/conf/rspamd/local.d/actions.conf</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">reject</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">15</span><span class="p">;</span><span class="w"></span>
<span class="n">add_header</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">8</span><span class="p">;</span><span class="w"></span>
<span class="n">greylist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">7</span><span class="p">;</span><span class="w"></span>
</code></pre></div>
<p>Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: <code>docker-compose restart rspamd-mailcow</code></p>
<p>Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: <code>docker compose restart rspamd-mailcow</code></p>
<p>Bestehende Einstellungen der Benutzer werden nicht überschrieben!</p>
<p>Um benutzerdefinierte Schwellenwerte zurückzusetzen, führen Sie aus:</p>
<div class="highlight"><pre><span></span><code>source mailcow.conf
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e &quot;delete from filterconf where option = &#39;highspamlevel&#39; or option = &#39;lowspamlevel&#39;;&quot;
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e &quot;delete from filterconf where option = &#39;highspamlevel&#39; or option = &#39;lowspamlevel&#39;;&quot;
# oder:
# docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e &quot;delete from filterconf where option = &#39;highspamlevel&#39; or option = &#39;lowspamlevel&#39; and object = &#39;only-this-mailbox@example.org&#39;;&quot;
# docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e &quot;delete from filterconf where option = &#39;highspamlevel&#39; or option = &#39;lowspamlevel&#39; and object = &#39;only-this-mailbox@example.org&#39;;&quot;
</code></pre></div>
<h2 id="benutzerdefinierte-ablehnungsnachrichten">Benutzerdefinierte Ablehnungsnachrichten<a class="headerlink" href="#benutzerdefinierte-ablehnungsnachrichten" title="Permanent link">&para;</a></h2>
<p>Die Standard-Spam-Reject-Meldung kann durch Hinzufügen einer neuen Datei <code>data/conf/rspamd/override.d/worker-proxy.custom.inc</code> mit dem folgenden Inhalt geändert werden:</p>
<div class="highlight"><pre><span></span><code>reject_message = &quot;Meine eigene Ablehnungsnachricht&quot;;
</code></pre></div>
<p>Speichern Sie die Datei und starten Sie Rspamd neu: <code>docker-compose restart rspamd-mailcow</code>.</p>
<p>Speichern Sie die Datei und starten Sie Rspamd neu: <code>docker compose restart rspamd-mailcow</code>.</p>
<p>Waehrend das oben genannte fuer abgelehnte Mails mit einem hohen Spam-Score funktioniert, ignorieren Prefilter-Aktionen diese Einstellung. Für diese Karten muss das Multimap-Modul in Rspamd angepasst werden:</p>
<ol>
<li>
@ -2649,27 +2635,27 @@ docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e &quot;del
}
</code></pre></div>
<ol>
<li>Speichern Sie die Datei und starten Sie Rspamd neu: <code>docker-compose restart rspamd-mailcow</code>.</li>
<li>Speichern Sie die Datei und starten Sie Rspamd neu: <code>docker compose restart rspamd-mailcow</code>.</li>
</ol>
<h2 id="verwerfen-statt-zuruckweisen">Verwerfen statt zurückweisen<a class="headerlink" href="#verwerfen-statt-zuruckweisen" title="Permanent link">&para;</a></h2>
<p>Wenn Sie eine Nachricht stillschweigend verwerfen wollen, erstellen oder bearbeiten Sie die Datei <code>data/conf/rspamd/override.d/worker-proxy.custom.inc</code> und fügen Sie den folgenden Inhalt hinzu:</p>
<div class="highlight"><pre><span></span><code>discard_on_reject = true;
</code></pre></div>
<p>Starten Sie Rspamd neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart rspamd-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart rspamd-mailcow
</code></pre></div>
<h2 id="losche-alle-ratelimit-schlussel">Lösche alle Ratelimit-Schlüssel<a class="headerlink" href="#losche-alle-ratelimit-schlussel" title="Permanent link">&para;</a></h2>
<p>Wenn Sie das UI nicht verwenden wollen und stattdessen alle Schlüssel in der Redis-Datenbank löschen wollen, können Sie redis-cli für diese Aufgabe verwenden:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec redis-mailcow sh
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow sh
# Unlink (verfügbar in Redis &gt;=4.) löscht im Hintergrund
redis-cli --scan --pattern RL* | xargs redis-cli unlink
</code></pre></div>
<p>Starten Sie Rspamd neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> redis-mailcow sh
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> redis-mailcow sh
</code></pre></div>
<h2 id="erneutes-senden-von-quarantane-benachrichtigungen-auslosen">Erneutes Senden von Quarantäne-Benachrichtigungen auslösen<a class="headerlink" href="#erneutes-senden-von-quarantane-benachrichtigungen-auslosen" title="Permanent link">&para;</a></h2>
<p>Sollte nur zur Fehlersuche verwendet werden!</p>
<div class="highlight"><pre><span></span><code>docker-compose exec dovecot-mailcow bash
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow bash
mysql -umailcow -p$DBPASS mailcow -e &quot;update quarantine set notified = 0;&quot;
redis-cli -h redis DEL Q_LAST_NOTIFIED
quarantine_notify.py
@ -2681,14 +2667,14 @@ quarantine_notify.py
<p>Bearbeiten Sie <code>data/conf/rspamd/local.d/history_redis.conf</code>:</p>
<div class="highlight"><pre><span></span><code>nrows = 1000; # Ändern Sie diesen Wert
</code></pre></div>
<p>Starten Sie anschließend Rspamd neu: <code>docker-compose restart rspamd-mailcow</code></p>
<p>Starten Sie anschließend Rspamd neu: <code>docker compose restart rspamd-mailcow</code></p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1997,20 +1997,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2515,7 +2501,7 @@ Bitte schauen Sie sich die AngularJS Material <a href="https://material.angularj
Nachdem Sie <code>data/conf/sogo/custom-theme.js</code> modifiziert und Änderungen an Ihrem neuen SOGo-Theme vorgenommen haben, müssen Sie </p>
<ol>
<li>Bearbeiten Sie <code>data/conf/sogo/sogo.conf</code> und fügen Sie <code>SOGoUIxDebugEnabled = YES;</code> ein.</li>
<li>SOGo und Memcached Container neu starten, indem man <code>docker-compose restart memcached-mailcow sogo-mailcow</code> ausführt.</li>
<li>SOGo und Memcached Container neu starten, indem man <code>docker compose restart memcached-mailcow sogo-mailcow</code> ausführt.</li>
<li>SOGo im Browser öffnen</li>
<li>öffnen Sie die Entwicklerkonsole des Browsers, normalerweise ist die Tastenkombination F12</li>
<li>nur wenn Sie Firefox benutzen: schreiben Sie mit der Hand in die Entwicklerkonsole <code>allow pasting</code> und drücken Sie Enter</li>
@ -2538,8 +2524,8 @@ Dienste:
volumes:
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
</code></pre></div></li>
<li>führen Sie <code>docker-compose up -d</code> aus</li>
<li>Ausführen von <code>docker-compose restart memcached-mailcow</code></li>
<li>führen Sie <code>docker compose up -d</code> aus</li>
<li>Ausführen von <code>docker compose restart memcached-mailcow</code></li>
</ol>
<h2 id="zurucksetzen-auf-das-sogo-standardthema">Zurücksetzen auf das SOGo Standardthema<a class="headerlink" href="#zurucksetzen-auf-das-sogo-standardthema" title="Permanent link">&para;</a></h2>
<ol>
@ -2567,17 +2553,17 @@ und ersetzen Sie es durch:
<li>Entfernen Sie aus <code>docker-compose.override.yml</code> Volume Mount in <code>sogo-mailcow</code>:
<div class="highlight"><pre><span></span><code>- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
</code></pre></div></li>
<li>führen Sie <code>docker-compose up -d</code> aus</li>
<li>Starten Sie <code>docker-compose restart memcached-mailcow</code>.</li>
<li>führen Sie <code>docker compose up -d</code> aus</li>
<li>Starten Sie <code>docker compose restart memcached-mailcow</code>.</li>
</ol>
<h2 id="favicon-andern">Favicon ändern<a class="headerlink" href="#favicon-andern" title="Permanent link">&para;</a></h2>
<p>mailcow-Builds nach dem 31. Januar 2021 können SOGo's Favicon ändern, indem sie <code>data/conf/sogo/custom-favicon.ico</code> für SOGo und <code>data/web/favicon.png</code> für mailcow UI ersetzen.
<strong>Anmerkung</strong>: Sie können <code>.png</code> Favicons für SOGo verwenden, indem Sie sie in <code>custom-favicon.ico</code> umbenennen.
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 <code>docker-compose restart memcached-mailcow sogo-mailcow</code> ausführen.</p>
Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container neu starten, indem Sie <code>docker compose restart memcached-mailcow sogo-mailcow</code> ausführen.</p>
<h2 id="logo-andern">Logo ändern<a class="headerlink" href="#logo-andern" title="Permanent link">&para;</a></h2>
<p>Mailcow-Builds nach dem 21. Dezember 2018 können das SOGo-Logo ändern, indem sie die Datei <code>data/conf/sogo/sogo-full.svg</code> ersetzen oder erstellen (falls sie fehlt).
Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container neu starten, indem Sie <code>docker-compose restart memcached-mailcow sogo-mailcow</code> ausführen.</p>
Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container neu starten, indem Sie <code>docker compose restart memcached-mailcow sogo-mailcow</code> ausführen.</p>
<h2 id="domains-verbinden-untereinander-sichtbar-machen">Domains verbinden (untereinander sichtbar machen)<a class="headerlink" href="#domains-verbinden-untereinander-sichtbar-machen" title="Permanent link">&para;</a></h2>
<p>Domains sind normalerweise voneinander isoliert.</p>
<p>Sie können das ändern, indem Sie <code>data/conf/sogo/sogo.conf</code> modifizieren:</p>
@ -2592,19 +2578,19 @@ Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container
(beispiel.org, beispiel.com, beispiel.net)
);
</code></pre></div>
<p>SOGo neu starten: <code>docker-compose restart sogo-mailcow</code></p>
<p>SOGo neu starten: <code>docker compose restart sogo-mailcow</code></p>
<h2 id="deaktivieren-sie-die-passwortanderung">Deaktivieren Sie die Passwortänderung<a class="headerlink" href="#deaktivieren-sie-die-passwortanderung" title="Permanent link">&para;</a></h2>
<p>Bearbeiten Sie <code>data/conf/sogo/sogo.conf</code> und <strong>ändern</strong> Sie <code>SOGoPasswordChangeEnabled</code> auf <code>NO</code>. Bitte fügen Sie keinen neuen Parameter hinzu.</p>
<p>Führen Sie <code>docker-compose restart memcached-mailcow sogo-mailcow</code> aus, um die Änderungen zu aktivieren.</p>
<p>Führen Sie <code>docker compose restart memcached-mailcow sogo-mailcow</code> aus, um die Änderungen zu aktivieren.</p>
<h2 id="totp-zurucksetzen-totp-deaktivieren">TOTP zurücksetzen / TOTP deaktivieren<a class="headerlink" href="#totp-zurucksetzen-totp-deaktivieren" title="Permanent link">&para;</a></h2>
<p>Führen Sie <code>docker-compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'</code> aus dem mailcow Verzeichnis aus.</p>
<p>Führen Sie <code>docker compose exec -u sogo sogo-mailcow sogo-tool user-preferences set defaults user@example.com SOGoTOTPEnabled '{"SOGoTOTPEnabled":0}'</code> aus dem mailcow Verzeichnis aus.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2453,21 +2439,21 @@
forward-addr: 8.8.4.4 # VERWENDET KEINE ÖFFENTLICHEN DNS-SERVER - NUR EIN BEISPIEL
</code></pre></div>
<p>Unbound neu starten:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart unbound-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart unbound-mailcow
</code></pre></div>
<h2 id="methode-b-uberschreiben-der-datei">Methode B, Überschreiben der Datei<a class="headerlink" href="#methode-b-uberschreiben-der-datei" title="Permanent link">&para;</a></h2>
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
cp helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.override.yml .
</code></pre></div>
<p>Bearbeiten Sie <code>docker-compose.override.yml</code> und passen Sie die IP an.</p>
<p>Führen Sie <code>docker-compose down ; docker-compose up -d</code> aus.</p>
<p>Führen Sie <code>docker compose down ; docker compose up -d</code> aus.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2082,20 +2082,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2697,7 +2683,7 @@ Beispiel:
- MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
- MAILQ_CRIT=${MAILQ_CRIT:-30}
</code></pre></div></p>
<p>Um sie anzupassen, fügen Sie einfach die notwendigen Threshold Variablen (z.B. <code>MAILQ_THRESHOLD=10</code>) zu <code>mailcow.conf</code> hinzu und führen <code>docker-compose up -d</code> aus.</p>
<p>Um sie anzupassen, fügen Sie einfach die notwendigen Threshold Variablen (z.B. <code>MAILQ_THRESHOLD=10</code>) zu <code>mailcow.conf</code> hinzu und führen <code>docker compose up -d</code> aus.</p>
<h3 id="threshold-beschreibungen">Threshold Beschreibungen<a class="headerlink" href="#threshold-beschreibungen" title="Permanent link">&para;</a></h3>
<h4 id="nginx_threshold">NGINX_THRESHOLD<a class="headerlink" href="#nginx_threshold" title="Permanent link">&para;</a></h4>
<p>Benachrichtigt Administratoren, wenn Watchdog keine Verbindung zu Nginx auf Port 8081 herstellen kann und startet den Container automatisch neu, wenn Probleme gefunden wurden und der Threshold erreicht wurde.</p>
@ -2739,7 +2725,7 @@ Beispiel:
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1971,20 +1971,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1964,20 +1964,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1923,20 +1923,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1957,20 +1957,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1978,20 +1978,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2031,20 +2031,6 @@
<li class="md-nav__item">
<a href="../../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2633,7 +2619,7 @@ Geben Sie schließlich Ihr aktuelles Kontopasswort ein und berühren Sie nach Au
<h3 id="deaktivieren-inoffizieller-unterstutzter-fido-security-keys">Deaktivieren inoffizieller unterstützter Fido Security Keys<a class="headerlink" href="#deaktivieren-inoffizieller-unterstutzter-fido-security-keys" title="Permanent link">&para;</a></h3>
<p>Mit WebAuthn gibt es die Möglichkeit, nur offizielle Fido Security Keys zu verwenden (von den großen Marken wie: Yubico, Apple, Nitro, Google, Huawei, Microsoft, usw.) zu verwenden.</p>
<p>Dies dient in erster Linie der Sicherheit, da es Administratoren ermöglicht, sicherzustellen, dass nur offizielle Hardware in ihrer Umgebung verwendet werden kann.</p>
<p>Um diese Funktion zu aktivieren, ändern Sie den Wert <code>WEBAUTHN_ONLY_TRUSTED_VENDORS</code> in mailcow.conf von <code>n</code> auf <code>y</code> und starten Sie die betroffenen Container mit <code>docker-compose up -d</code> neu.</p>
<p>Um diese Funktion zu aktivieren, ändern Sie den Wert <code>WEBAUTHN_ONLY_TRUSTED_VENDORS</code> in mailcow.conf von <code>n</code> auf <code>y</code> und starten Sie die betroffenen Container mit <code>docker compose up -d</code> neu.</p>
<p>Die mailcow wird nun die Vendor-Zertifikate verwenden, die sich in Ihrem mailcow-Verzeichnis unter <code>data/web/inc/lib/WebAuthn/rootCertificates</code> befinden. </p>
<h5 id="beispiel">Beispiel:<a class="headerlink" href="#beispiel" title="Permanent link">&para;</a></h5>
<p>Wenn Sie die offiziellen Hersteller-Geräte nur auf Apple beschränken wollen, brauchen Sie nur das Apple Hersteller-Zertifikat im <code>data/web/inc/lib/WebAuthn/rootCertificates</code>.
@ -2666,7 +2652,7 @@ Diese Herstellerzertifikate werden nur zur Überprüfung der Originalhardware ve
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1913,20 +1913,6 @@
<li class="md-nav__item">
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2394,10 +2380,10 @@
}
</code></pre></div>
<p>Falls Sie den Parameter HTTP_BIND geändert haben, erstellen Sie den Container neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose up -d
</code></pre></div>
<p>Andernfalls starten Sie Nginx neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart nginx-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart nginx-mailcow
</code></pre></div>
<hr>
@ -2405,7 +2391,7 @@
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1913,20 +1913,6 @@
<li class="md-nav__item">
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1913,20 +1913,6 @@
<li class="md-nav__item">
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2385,7 +2371,7 @@ smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
<div class="highlight"><pre><span></span><code>ssl_min_protocol = TLSv1
</code></pre></div>
<p>Starten Sie die betroffenen Dienste neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart postfix-mailcow dovecot-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart postfix-mailcow dovecot-mailcow
</code></pre></div>
<p>Tipp: Sie können TLS 1.2 in Windows 7 aktivieren.</p>
@ -2394,7 +2380,7 @@ smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1913,20 +1913,6 @@
<li class="md-nav__item">
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1913,20 +1913,6 @@
<li class="md-nav__item">
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2410,7 +2396,7 @@ Wenn Sie einen öffentlichen Resolver wie Google 4x8, OpenDNS oder einen anderen
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../Docker/u_e-docker-dc_bash_compl/" class="md-footer__link md-footer__link--prev" aria-label="Zurück: Docker Compose Bash Completion" rel="prev">
<a href="../Docker/u_e-docker-cust_dockerfiles/" class="md-footer__link md-footer__link--prev" aria-label="Zurück: Dockerfiles anpassen" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
@ -2419,7 +2405,7 @@ Wenn Sie einen öffentlichen Resolver wie Google 4x8, OpenDNS oder einen anderen
<span class="md-footer__direction">
Zurück
</span>
Docker Compose Bash Completion
Dockerfiles anpassen
</div>
</div>
</a>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1962,20 +1962,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2480,14 +2466,14 @@ Wenn SOGo deaktiviert ist, können alle unten aufgeführten Hashing-Methoden von
<blockquote>
<p>Ich habe die Passwort-Hashes in der SQL-Tabelle "Mailbox" geändert und kann mich nicht anmelden.</p>
</blockquote>
<p>Eine "Ansicht" muss aktualisiert werden. Sie können dies durch einen Neustart von sogo-mailcow auslösen: <code>docker-compose restart sogo-mailcow</code></p>
<p>Eine "Ansicht" muss aktualisiert werden. Sie können dies durch einen Neustart von sogo-mailcow auslösen: <code>docker compose restart sogo-mailcow</code></p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1955,20 +1955,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -498,7 +498,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2404,8 +2390,8 @@ services:
entrypoint: [&quot;echo&quot;, &quot;ipv6nat disabled in compose.override.yml&quot;]
</code></pre></div>
<p>Damit diese Änderungen wirksam werden, müssen Sie den Stack vollständig stoppen und dann neu starten, damit Container und Netzwerke neu erstellt werden:</p>
<div class="highlight"><pre><span></span><code>docker-compose down
docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose down
docker compose up -d
</code></pre></div>
<p><strong>3.</strong> Deaktivieren Sie IPv6 in unbound-mailcow</p>
<p>Bearbeiten Sie <code>data/conf/unbound/unbound.conf</code> und setzen Sie <code>do-ip6</code> auf "no":</p>
@ -2415,7 +2401,7 @@ docker-compose up -d
[...]
</code></pre></div>
<p>unbound neu starten:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart unbound-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart unbound-mailcow
</code></pre></div>
<p><strong>4.</strong> Deaktivieren Sie IPv6 in postfix-mailcow</p>
<p>Erstellen Sie <code>data/conf/postfix/extra.cf</code> und setzen Sie <code>smtp_address_preference</code> auf <code>ipv4</code>:</p>
@ -2423,7 +2409,7 @@ docker-compose up -d
inet_protocols = ipv4
</code></pre></div>
<p>Starten Sie Postfix neu:</p>
<div class="highlight"><pre><span></span><code>docker-compose restart postfix-mailcow
<div class="highlight"><pre><span></span><code>docker compose restart postfix-mailcow
</code></pre></div>
<hr>
@ -2431,7 +2417,7 @@ inet_protocols = ipv4
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -560,7 +560,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1983,20 +1983,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2531,7 +2517,7 @@ services:
depends_on:
- rspamd-mailcow
</code></pre></div>
<p>Starte <code>docker-compose up -d</code></p>
<p>Starte <code>docker compose up -d</code></p>
<h2 id="senden-sie-eine-kopie-der-berichte-an-sich-selbst">Senden Sie eine Kopie der Berichte an sich selbst<a class="headerlink" href="#senden-sie-eine-kopie-der-berichte-an-sich-selbst" title="Permanent link">&para;</a></h2>
<p>Um eine versteckte Kopie der von Rspamd erzeugten Berichte zu erhalten, können Sie eine <code>bcc_addrs</code> Liste im <code>reporting</code> Konfigurationsabschnitt von <code>data/conf/rspamd/local.d/dmarc.conf</code> setzen:</p>
<div class="highlight"><pre><span></span><code>reporting {
@ -2548,20 +2534,20 @@ services:
</ul>
<h2 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">&para;</a></h2>
<p>Prüfen Sie, wann der Berichtsplan zuletzt ausgeführt wurde:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
<div class="highlight"><pre><span></span><code>docker compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
</code></pre></div>
<p>Sehen Sie sich die letzte Berichtsausgabe an:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
<div class="highlight"><pre><span></span><code>docker compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
</code></pre></div>
<p>Manuelles Auslösen eines DMARC-Berichts:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec rspamd-mailcow rspamadm dmarc_report
<div class="highlight"><pre><span></span><code>docker compose exec rspamd-mailcow rspamadm dmarc_report
</code></pre></div>
<p>Bestätigen Sie, dass Rspamd Daten in Redis aufgezeichnet hat:
Ändern Sie <code>20220428</code> in ein anderes interessantes Datum zum schauen.</p>
<div class="highlight"><pre><span></span><code>docker-compose exec redis-mailcow redis-cli SMEMBERS &quot;dmarc_idx;20220428&quot;
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow redis-cli SMEMBERS &quot;dmarc_idx;20220428&quot;
</code></pre></div>
<p>Nehmen Sie eine der Zeilen aus der Ausgabe, die Sie interessiert, und fordern Sie sie an, z. B.:</p>
<div class="highlight"><pre><span></span><code>docker-compose exec redis-mailcow redis-cli ZRANGE &quot;dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428&quot; 0 49
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow redis-cli ZRANGE &quot;dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428&quot; 0 49
</code></pre></div>
<h2 id="andern-sie-die-haufigkeit-der-dmarc-berichte">Ändern Sie die Häufigkeit der DMARC-Berichte<a class="headerlink" href="#andern-sie-die-haufigkeit-der-dmarc-berichte" title="Permanent link">&para;</a></h2>
<p>Im obigen Beispiel werden die Berichte einmal alle 24 Stunden gesendet.</p>
@ -2572,10 +2558,10 @@ services:
<p>Bearbeiten Sie <code>docker-compose.override.yml</code> und stellen Sie <code>ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"</code> auf einen gewünschten Wert, zum Beispiel auf <code>"@midnight"</code></p>
</li>
<li>
<p>Führen Sie <code>docker-compose up -d</code> aus.</p>
<p>Führen Sie <code>docker compose up -d</code> aus.</p>
</li>
<li>
<p>Führen Sie <code>docker-compose restart ofelia-mailcow</code> aus</p>
<p>Führen Sie <code>docker compose restart ofelia-mailcow</code> aus</p>
</li>
</ol>
<h2 id="dmarc-berichterstattung-deaktivieren">DMARC-Berichterstattung deaktivieren<a class="headerlink" href="#dmarc-berichterstattung-deaktivieren" title="Permanent link">&para;</a></h2>
@ -2588,7 +2574,7 @@ services:
<p>Machen Sie Änderungen in <code>docker-compose.override.yml</code> an <code>rspamd-mailcow</code> und <code>ofelia-mailcow</code> rückgängig</p>
</li>
<li>
<p>Führen Sie <code>docker-compose up -d</code> aus</p>
<p>Führen Sie <code>docker compose up -d</code> aus</p>
</li>
</ol>
@ -2597,7 +2583,7 @@ services:
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>
@ -2638,13 +2624,13 @@ services:
<a href="../firststeps-ip_bindings/" class="md-footer__link md-footer__link--next" aria-label="Weiter: IP-Verbindungen" rel="next">
<a href="../firststeps-ip_bindings/" class="md-footer__link md-footer__link--next" aria-label="Weiter: IP-Bindings" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Weiter
</span>
IP-Verbindungen
IP-Bindings
</div>
</div>
<div class="md-footer__button md-icon">

Datei anzeigen

@ -15,7 +15,7 @@
<title>IP-Verbindungen - mailcow: dockerized documentation</title>
<title>IP-Bindings - mailcow: dockerized documentation</title>
@ -100,7 +100,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
IP-Verbindungen
IP-Bindings
</span>
</div>
@ -502,12 +502,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
IP-Verbindungen
IP-Bindings
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
IP-Verbindungen
IP-Bindings
</a>
@ -1962,20 +1962,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2435,10 +2421,10 @@
<h1>IP-Verbindungen</h1>
<h1>IP-Bindings</h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p class="admonition-title">Warnung</p>
<p>Das Ändern der Bindung hat keinen Einfluss auf Source-NAT. Siehe <a href="../firststeps-snat/">SNAT</a> für die erforderlichen Schritte.</p>
</div>
<h2 id="ipv4-binding">IPv4-Binding<a class="headerlink" href="#ipv4-binding" title="Permanent link">&para;</a></h2>
@ -2469,42 +2455,46 @@ DOVEADM_PORT=127.0.0.1:19991
SQL_PORT=127.0.0.1:13306
SOLR_PORT=127.0.0.1:18983
</code></pre></div>
<p>Um Ihre Änderungen zu übernehmen, führen Sie <code>docker-compose down</code> gefolgt von <code>docker-compose up -d</code> aus.</p>
<p>Um Ihre Änderungen zu übernehmen, führen Sie <code>docker compose down</code> gefolgt von <code>docker compose up -d</code> aus.</p>
<h2 id="ipv6-binding">IPv6-Binding<a class="headerlink" href="#ipv6-binding" title="Permanent link">&para;</a></h2>
<p>Das Ändern von IPv6-Bindings ist anders als bei IPv4. Auch dies hat einen technischen Hintergrund.</p>
<p>Eine <code>docker-compose.override.yml</code> Datei wird verwendet, anstatt die <code>docker-compose.yml</code> Datei direkt zu bearbeiten. Dies geschieht, um die Aktualisierbarkeit zu erhalten, da die Datei <code>docker-compose.yml</code> regelmäßig aktualisiert wird und Ihre Änderungen höchstwahrscheinlich überschrieben werden.</p>
<p>Bearbeiten Sie die Datei "docker-compose.override.yml" und erstellen Sie sie mit dem folgenden Inhalt. Ihr Inhalt wird mit der produktiven Datei "docker-compose.yml" zusammengeführt.</p>
<p>Es wird eine imaginäre IPv6 <strong>2a00:dead:beef::abc</strong> angegeben. Das erste Suffix <code>:PORT1</code> definiert den externen Port, während das zweite Suffix <code>:PORT2</code> zu dem entsprechenden Port innerhalb des Containers führt und nicht verändert werden darf.</p>
<p>Es wird eine imaginäre IPv6 <strong>2a00:dead:beef::abc</strong> in [] angegeben. Das erste Suffix <code>:PORT1</code> definiert den externen Port, während das zweite Suffix <code>:PORT2</code> zu dem entsprechenden Port innerhalb des Containers führt und nicht verändert werden darf.</p>
<div class="highlight"><pre><span></span><code>version: &#39;2.1&#39;
services:
dovecot-mailcow:
ports:
- &#39;2a00:dead:beef::abc:143:143&#39;
- &#39;2a00:dead:beef::abc:993:993&#39;
- &#39;2a00:dead:beef::abc:110:110&#39;
- &#39;2a00:dead:beef::abc:995:995&#39;
- &#39;2a00:dead:beef::abc:4190:4190&#39;
- &#39;[2a00:dead:beef::abc]:143:143&#39;
- &#39;[2a00:dead:beef::abc]:993:993&#39;
- &#39;[2a00:dead:beef::abc]:110:110&#39;
- &#39;[2a00:dead:beef::abc]:995:995&#39;
- &#39;[2a00:dead:beef::abc]:4190:4190&#39;
postfix-mailcow:
ports:
- &#39;2a00:dead:beef::abc:25:25&#39;
- &#39;2a00:dead:beef::abc:465:465&#39;
- &#39;2a00:dead:beef::abc:587:587&#39;
- &#39;[2a00:dead:beef::abc]:25:25&#39;
- &#39;[2a00:dead:beef::abc]:465:465&#39;
- &#39;[2a00:dead:beef::abc]:587:587&#39;
nginx-mailcow:
ports:
- &#39;2a00:dead:beef::abc:80:80&#39;
- &#39;2a00:dead:beef::abc:443:443&#39;
- &#39;[2a00:dead:beef::abc]:80:80&#39;
- &#39;[2a00:dead:beef::abc]:443:443&#39;
</code></pre></div>
<p>Um Ihre Änderungen zu übernehmen, führen Sie <code>docker-compose down</code> gefolgt von <code>docker-compose up -d</code> aus.</p>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>Alternativ kann auch die [::] Schreibweise benutzt werden um den jeweiligen Dienst auf allen IPv6 Interfaces lauschen zu lassen.</p>
</div>
<p>Um Ihre Änderungen zu übernehmen, führen Sie <code>docker compose down</code> gefolgt von <code>docker compose up -d</code> aus.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-07 11:39:16</span>
</small>

Datei anzeigen

@ -490,7 +490,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2420,7 +2406,7 @@ Das Relaying über diese Schnittstelle ist notwendig (anstatt - zum Beispiel - d
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../firststeps-ip_bindings/" class="md-footer__link md-footer__link--prev" aria-label="Zurück: IP-Verbindungen" rel="prev">
<a href="../firststeps-ip_bindings/" class="md-footer__link md-footer__link--prev" aria-label="Zurück: IP-Bindings" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
@ -2429,7 +2415,7 @@ Das Relaying über diese Schnittstelle ist notwendig (anstatt - zum Beispiel - d
<span class="md-footer__direction">
Zurück
</span>
IP-Verbindungen
IP-Bindings
</div>
</div>
</a>

Datei anzeigen

@ -495,7 +495,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2002,20 +2002,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2519,7 +2505,7 @@
<p>Das Logging in mailcow: dockerized besteht aus mehreren Stufen, ist aber immerhin wesentlich flexibler und einfacher in einen Logging-Daemon zu integrieren als bisher.</p>
<p>In Docker schreibt die containerisierte Anwendung (PID 1) ihre Ausgabe auf stdout. Für echte Ein-Anwendungs-Container funktioniert das sehr gut.
Führen Sie <code>docker-compose logs --help</code> aus, um mehr zu erfahren. </p>
Führen Sie <code>docker compose logs --help</code> aus, um mehr zu erfahren. </p>
<p>Einige Container protokollieren oder streamen an mehrere Ziele.</p>
<p>Kein Container wird persistente Logs in sich behalten. Container sind flüchtige Objekte!</p>
<p>Am Ende wird jede Zeile der Logs den Docker-Daemon erreichen - ungefiltert.</p>
@ -2601,7 +2587,7 @@ erstellen Sie die Datei <code>/etc/rsyslog.d/docker.conf</code>:</p>
...
}
</code></pre></div>
<p>Starten Sie den Docker-Daemon neu und führen Sie <code>docker-compose down &amp;&amp; docker-compose up -d</code> aus, um die Container mit dem neuen Protokollierungstreiber neu zu erstellen.</p>
<p>Starten Sie den Docker-Daemon neu und führen Sie <code>docker compose down &amp;&amp; docker compose up -d</code> aus, um die Container mit dem neuen Protokollierungstreiber neu zu erstellen.</p>
<h3 id="log-rotation">Log rotation<a class="headerlink" href="#log-rotation" title="Permanent link">&para;</a></h3>
<p>Da diese Logs sehr groß werden können, ist es eine gute Idee logrotate zu nutzen, um Logs nach einer gewissen Zeit zu
komprimieren und zu löschen.</p>
@ -2626,7 +2612,7 @@ komprimieren und zu löschen.</p>
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -495,7 +495,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1990,20 +1990,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2503,7 +2489,7 @@ mailcow: dockerized vertraut auf das Standard-Gateway IP 172.22.1.1 als Proxy.</
</code></pre></div></p>
<p>Dadurch werden auch die Bindungen innerhalb des Nginx-Containers geändert! Dies ist wichtig, wenn Sie sich entscheiden, einen Proxy innerhalb von Docker zu verwenden.</p>
<p><strong>WICHTIG:</strong> Verwenden Sie nicht Port 8081, 9081 oder 65510!</p>
<p>Erzeugen Sie die betroffenen Container neu, indem Sie <code>docker-compose up -d</code> ausführen.</p>
<p>Erzeugen Sie die betroffenen Container neu, indem Sie <code>docker compose up -d</code> ausführen.</p>
<p><strong>Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!</strong></p>
<div class="admonition info">
<p class="admonition-title">Info</p>
@ -2654,7 +2640,7 @@ backend mailcow
<p><strong>Wichtig</strong>: Diese Konfiguration deckt nur das "Reverseproxing" des Webpanels (nginx-mailcow) unter Verwendung von Traefik v2 ab. Wenn Sie auch die Mail-Dienste wie dovecot, postfix... reproxen wollen, müssen Sie die folgende Konfiguration an jeden Container anpassen und einen <a href="https://docs.traefik.io/routing/entrypoints/">EntryPoint</a> in Ihrer <code>traefik.toml</code> oder <code>traefik.yml</code> (je nachdem, welche Konfiguration Sie verwenden) für jeden Port erstellen. </p>
<p>In diesem Abschnitt gehen wir davon aus, dass Sie Ihren Traefik 2 <code>[certificatesresolvers]</code> 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 <a href="https://github.com/Frenzoid/TraefikBasicConfig/blob/master/traefik.toml">traefik.toml</a>, falls Sie eine solche Datei benötigen oder einen Hinweis, wie Sie Ihre Konfiguration anpassen können.</p>
<p>Zuallererst werden wir den acme-mailcow-Container deaktivieren, da wir die von traefik bereitgestellten Zertifikate verwenden werden.
Dazu müssen wir <code>SKIP_LETS_ENCRYPT=y</code> in unserer <code>mailcow.conf</code> setzen und <code>docker-compose up -d</code> ausführen, um die Änderungen zu übernehmen.</p>
Dazu müssen wir <code>SKIP_LETS_ENCRYPT=y</code> in unserer <code>mailcow.conf</code> setzen und <code>docker compose up -d</code> ausführen, um die Änderungen zu übernehmen.</p>
<p>Dann erstellen wir eine <code>docker-compose.override.yml</code> Datei, um die Hauptdatei <code>docker-compose.yml</code> zu überschreiben, die sich im Mailcow-Stammverzeichnis befindet. </p>
<div class="highlight"><pre><span></span><code><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s">&#39;2.1&#39;</span><span class="w"></span>
@ -2687,7 +2673,7 @@ Dazu müssen wir <code>SKIP_LETS_ENCRYPT=y</code> in unserer <code>mailcow.conf<
<span class="w"> </span><span class="nt">network_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">none</span><span class="w"></span>
<span class="w"> </span><span class="nt">volumes</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="c1"># mounten Sie den Ordner, der Traefiks `acme.json&#39; Datei enthält</span><span class="w"></span>
<span class="w"> </span><span class="c1"># in diesem Fall wird Traefik von seinem eigenen docker-compose in ../traefik gestartet</span><span class="w"></span>
<span class="w"> </span><span class="c1"># in diesem Fall wird Traefik von seinem eigenen docker compose in ../traefik gestartet</span><span class="w"></span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../traefik/data:/traefik:ro</span><span class="w"></span>
<span class="w"> </span><span class="c1"># SSL-Ordner von mailcow einhängen</span><span class="w"></span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./data/assets/ssl/:/output:rw</span><span class="w"></span>
@ -2700,10 +2686,10 @@ Dazu müssen wir <code>SKIP_LETS_ENCRYPT=y</code> in unserer <code>mailcow.conf<
<span class="w"> </span><span class="nt">web</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nt">external</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span><span class="w"></span>
</code></pre></div>
<p>Starten Sie die neuen Container mit <code>docker-compose up -d</code>.</p>
<p>Starten Sie die neuen Container mit <code>docker compose up -d</code>.</p>
<p>Da Traefik 2 ein acme v2 Format verwendet, um ALLE Lizenzen von allen Domains zu speichern, müssen wir einen Weg finden, die Zertifikate auszulagern. Zum Glück haben wir [diesen kleinen Container] (<a href="https://hub.docker.com/r/humenius/traefik-certs-dumper">https://hub.docker.com/r/humenius/traefik-certs-dumper</a>), der die Datei <code>acme.json</code> über ein Volume und eine Variable <code>DOMAIN=example. org</code>, und damit wird der Container die <code>cert.pem</code> und <code>key.pem</code> Dateien ausgeben, dafür lassen wir einfach den <code>traefik-certs-dumper</code> Container laufen, binden das <code>/traefik</code> Volume an den Ordner, in dem unsere <code>acme.json</code> gespeichert ist, binden das <code>/output</code> Volume an unseren mailcow <code>data/assets/ssl/</code> Ordner, und setzen die <code>DOMAIN=example.org</code> Variable auf die Domain, von der wir die Zertifikate ausgeben wollen. </p>
<p>Dieser Container überwacht die Datei <code>acme.json</code> auf Änderungen und generiert die Dateien <code>cert.pem</code> und <code>key.pem</code> direkt in <code>data/assets/ssl/</code>, wobei der Pfad mit dem <code>/output</code>-Pfad des Containers verbunden ist.</p>
<p>Sie können es über die Kommandozeile ausführen oder das [hier] gezeigte docker-compose verwenden (<a href="https://hub.docker.com/r/humenius/traefik-certs-dumper">https://hub.docker.com/r/humenius/traefik-certs-dumper</a>).</p>
<p>Sie können es über die Kommandozeile ausführen oder das [hier] gezeigte docker compose verwenden (<a href="https://hub.docker.com/r/humenius/traefik-certs-dumper">https://hub.docker.com/r/humenius/traefik-certs-dumper</a>).</p>
<p>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 <a href="https://mailcow.github.io/mailcow-dockerized-docs/de/post_installation/firststeps-ssl/#ein-eigenes-zertifikat-verwenden">hier</a>.</p>
<p>Und das sollte es gewesen sein 😊, Sie können überprüfen, ob der Traefik-Router einwandfrei funktioniert, indem Sie das Dashboard von Traefik / traefik logs / über https auf die eingestellte Domain zugreifen, oder / und HTTPS, SMTP und IMAP mit den Befehlen auf der zuvor verlinkten Seite überprüfen.</p>
<h3 id="optional-post-hook-skript-fur-nicht-mailcow-acme-clients">Optional: Post-Hook-Skript für nicht-mailcow ACME-Clients<a class="headerlink" href="#optional-post-hook-skript-fur-nicht-mailcow-acme-clients" title="Permanent link">&para;</a></h3>
@ -2721,14 +2707,14 @@ docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
<p>Wenn Sie vorhaben, einen Servernamen zu verwenden, der nicht <code>MAILCOW_HOSTNAME</code> in Ihrem Reverse-Proxy ist, stellen Sie sicher, dass Sie diesen Namen zuerst in mailcow.conf über <code>ADDITIONAL_SERVER_NAMES</code> einpflegen. Die Namen müssen durch Kommas getrennt werden und <strong>dürfen</strong> keine Leerzeichen enthalten. Wenn Sie diesen Schritt überspringen, kann es sein, dass mailcow auf Ihren Reverse-Proxy mit einer falschen Seite antwortet.</p>
<div class="highlight"><pre><span></span><code>ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
</code></pre></div>
<p>Führen Sie <code>docker-compose up -d</code> zum Anwenden aus.</p>
<p>Führen Sie <code>docker compose up -d</code> zum Anwenden aus.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -490,7 +490,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -490,7 +490,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1921,20 +1921,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2383,16 +2369,16 @@ SNAT_TO_SOURCE=1.2.3.4
# Benutze dieses IPv6 für ausgehende Verbindungen (SNAT)
SNAT6_TO_SOURCE=dead:beef
</code></pre></div>
<p>Führen Sie <code>docker-compose up -d</code> aus.</p>
<p>Führen Sie <code>docker compose up -d</code> aus.</p>
<p>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.</p>
<p>Überprüfen Sie die Ausgabe von <code>docker-compose logs --tail=200 netfilter-mailcow</code>, um sicherzustellen, dass die SNAT-Einstellungen angewendet wurden.</p>
<p>Überprüfen Sie die Ausgabe von <code>docker compose logs --tail=200 netfilter-mailcow</code>, um sicherzustellen, dass die SNAT-Einstellungen angewendet wurden.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -621,7 +621,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2044,20 +2044,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2611,7 +2597,7 @@
<p>Für jede hinzugefügte Domain wird versucht, <code>autodiscover.ADDED_MAIL_DOMAIN</code> und <code>autoconfig.ADDED_MAIL_DOMAIN</code> in die IPv6-Adresse oder - falls IPv6 in der Domain nicht konfiguriert ist - in die IPv4-Adresse aufzulösen. Wenn dies gelingt, wird ein Name als SAN zur Zertifikatsanforderung hinzugefügt.</p>
<p>Nur Namen, die validiert werden können, werden als SAN hinzugefügt.</p>
<p>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.</p>
<p>Wenn Sie den ACME-Client neu starten wollen, verwenden Sie <code>docker-compose restart acme-mailcow</code> und überwachen Sie die Protokolle mit <code>docker-compose logs --tail=200 -f acme-mailcow</code>.</p>
<p>Wenn Sie den ACME-Client neu starten wollen, verwenden Sie <code>docker compose restart acme-mailcow</code> und überwachen Sie die Protokolle mit <code>docker compose logs --tail=200 -f acme-mailcow</code>.</p>
<h3 id="zusatzliche-domain-namen">Zusätzliche Domain-Namen<a class="headerlink" href="#zusatzliche-domain-namen" title="Permanent link">&para;</a></h3>
<p>Bearbeiten Sie "mailcow.conf" und fügen Sie einen Parameter <code>ADDITIONAL_SAN</code> wie folgt hinzu:</p>
<p>Verwenden Sie keine Anführungszeichen (<code>"</code>) und keine Leerzeichen zwischen den Namen!</p>
@ -2619,7 +2605,7 @@
</code></pre></div>
<p>Jeder Name wird anhand seiner IPv6-Adresse oder - wenn IPv6 in Ihrer Domäne nicht konfiguriert ist - anhand seiner IPv4-Adresse überprüft.</p>
<p>Ein Wildcard-Name wie <code>smtp.*</code> wird versuchen, ein smtp.DOMAIN_NAME SAN für jede zu mailcow hinzugefügte Domain zu erhalten.</p>
<p>Führen Sie <code>docker-compose up -d</code> aus, um betroffene Container automatisch neu zu erstellen.</p>
<p>Führen Sie <code>docker compose up -d</code> aus, um betroffene Container automatisch neu zu erstellen.</p>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>Die Verwendung anderer Namen als <code>MAILCOW_HOSTNAME</code> für den Zugriff auf das mailcow UI kann weitere Konfiguration erfordern.</p>
@ -2627,26 +2613,26 @@
<p>Wenn Sie planen, einen anderen Servernamen als <code>MAILCOW_HOSTNAME</code> für den Zugriff auf die mailcow UI zu verwenden (z.B. durch Hinzufügen von <code>mail.*</code> zu <code>ADDITIONAL_SAN</code>), stellen Sie sicher, dass Sie diesen Namen in mailcow.conf über <code>ADDITIONAL_SERVER_NAMES</code> eintragen. Die Namen müssen durch Kommas getrennt sein und <strong>dürfen</strong> keine Leerzeichen enthalten. Wenn Sie diesen Schritt auslassen, kann mailcow mit einer falschen Seite antworten.</p>
<div class="highlight"><pre><span></span><code>ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
</code></pre></div>
<p>Führen Sie <code>docker-compose up -d</code> aus, um es anzuwenden.</p>
<p>Führen Sie <code>docker compose up -d</code> aus, um es anzuwenden.</p>
<h3 id="erneuerung-erzwingen">Erneuerung erzwingen<a class="headerlink" href="#erneuerung-erzwingen" title="Permanent link">&para;</a></h3>
<p>Um eine Erneuerung zu erzwingen, müssen Sie eine Datei namens <code>force_renew</code> erstellen und den <code>acme-mailcow</code> Container neu starten:</p>
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
touch data/assets/ssl/force_renew
docker-compose restart acme-mailcow
docker compose restart acme-mailcow
# Prüfen Sie nun die Logs auf eine Erneuerung
docker-compose logs --tail=200 -f acme-mailcow
docker compose logs --tail=200 -f acme-mailcow
</code></pre></div>
<p>Die Datei wird automatisch gelöscht.</p>
<h3 id="validierungsfehler-und-wie-man-die-validierung-uberspringt">Validierungsfehler und wie man die Validierung überspringt<a class="headerlink" href="#validierungsfehler-und-wie-man-die-validierung-uberspringt" title="Permanent link">&para;</a></h3>
<p>Sie können die <strong>IP-Überprüfung</strong> überspringen, indem Sie <code>SKIP_IP_CHECK=y</code> 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.</p>
<p>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 <code>br-mailcow</code> 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 (<code>docker-compose down</code>), den Firewall-Dienst stoppen, die Ketten flushen und Docker neu starten.</p>
<p>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 <code>br-mailcow</code> 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 (<code>docker compose down</code>), den Firewall-Dienst stoppen, die Ketten flushen und Docker neu starten.</p>
<p>Sie können diese Validierungsmethode auch überspringen, indem Sie <code>SKIP_HTTP_VERIFICATION=y</code> 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.</p>
<p>Wenn du einen SKIP_* Parameter geändert hast, führe <code>docker-compose up -d</code> aus, um deine Änderungen zu übernehmen.</p>
<p>Wenn du einen SKIP_* Parameter geändert hast, führe <code>docker compose up -d</code> aus, um deine Änderungen zu übernehmen.</p>
<h3 id="deaktivieren-sie-lets-encrypt">Deaktivieren Sie Let's Encrypt<a class="headerlink" href="#deaktivieren-sie-lets-encrypt" title="Permanent link">&para;</a></h3>
<h4 id="deaktivieren-sie-lets-encrypt-vollstandig">Deaktivieren Sie Let's Encrypt vollständig<a class="headerlink" href="#deaktivieren-sie-lets-encrypt-vollstandig" title="Permanent link">&para;</a></h4>
<p>Setzen Sie <code>SKIP_LETS_ENCRYPT=y</code> in "mailcow.conf" und erstellen Sie "acme-mailcow" neu, indem Sie <code>docker-compose up -d</code> ausführen.</p>
<p>Setzen Sie <code>SKIP_LETS_ENCRYPT=y</code> in "mailcow.conf" und erstellen Sie "acme-mailcow" neu, indem Sie <code>docker compose up -d</code> ausführen.</p>
<h4 id="alle-namen-auer-mailcow_hostname-uberspringen">Alle Namen außer ${MAILCOW_HOSTNAME} überspringen<a class="headerlink" href="#alle-namen-auer-mailcow_hostname-uberspringen" title="Permanent link">&para;</a></h4>
<p>Fügen Sie <code>ONLY_MAILCOW_HOSTNAME=y</code> zu "mailcow.conf" hinzu und erstellen Sie "acme-mailcow" neu, indem Sie <code>docker-compose up -d</code> ausführen.</p>
<p>Fügen Sie <code>ONLY_MAILCOW_HOSTNAME=y</code> zu "mailcow.conf" hinzu und erstellen Sie "acme-mailcow" neu, indem Sie <code>docker compose up -d</code> ausführen.</p>
<h3 id="das-lets-encrypt-subjectaltname-limit-von-100-domains">Das Let's Encrypt subjectAltName-Limit von 100 Domains<a class="headerlink" href="#das-lets-encrypt-subjectaltname-limit-von-100-domains" title="Permanent link">&para;</a></h3>
<p>Let's Encrypt hat derzeit <a href="https://letsencrypt.org/docs/rate-limits/">ein Limit von 100 Domainnamen pro Zertifikat</a>.</p>
<p>Standardmäßig erstellt "acme-mailcow" ein einzelnes SAN-Zertifikat für alle validierten Domains
@ -2659,7 +2645,7 @@ Dies bietet beste Kompatibilität, bedeutet aber, dass das Let's Encrypt-Limit
<li>Begrenzungen: Ein Zertifikatsname <code>ADDITIONAL_SAN=test.example.com</code> wird als SAN zum Hauptzertifikat hinzugefügt. Ein separates Zertifikat/Schlüsselpaar wird für dieses Format <strong>nicht</strong> erzeugt.</li>
</ul>
<p>Postfix, Dovecot und Nginx werden dann diese Zertifikate mit SNI bedienen.</p>
<p>Setzen Sie <code>ENABLE_SSL_SNI=y</code> in "mailcow.conf" und erstellen Sie "acme-mailcow" durch Ausführen von <code>docker-compose up -d</code>.</p>
<p>Setzen Sie <code>ENABLE_SSL_SNI=y</code> in "mailcow.conf" und erstellen Sie "acme-mailcow" durch Ausführen von <code>docker compose up -d</code>.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Nicht alle Clients unterstützen SNI, <a href="https://wiki.dovecot.org/SSL/SNIClientSupport">siehe Dovecot Dokumentation</a> oder <a href="https://en.wikipedia.org/wiki/Server_Name_Indication#Support">Wikipedia</a>.
@ -2689,15 +2675,15 @@ docker restart $(docker ps -qaf name=dovecot-mailcow)
<p>Siehe <a href="../firststeps-rp#optional-post-hook-skript-fur-nicht-mailcow-acme-clients">Post-Hook-Skript für Nicht-Mailcow-ACME-Clients</a> für ein vollständiges Beispielskript.</p>
<h3 id="test-gegen-das-acme-verzeichnis">Test gegen das ACME-Verzeichnis<a class="headerlink" href="#test-gegen-das-acme-verzeichnis" title="Permanent link">&para;</a></h3>
<p>Bearbeiten Sie <code>mailcow.conf</code> und fügen Sie <code>LE_STAGING=y</code> hinzu.</p>
<p>Führen Sie <code>docker-compose up -d</code> aus, um Ihre Änderungen zu aktivieren.</p>
<p>Führen Sie <code>docker compose up -d</code> aus, um Ihre Änderungen zu aktivieren.</p>
<h3 id="benutzerdefinierte-verzeichnis-url">Benutzerdefinierte Verzeichnis-URL<a class="headerlink" href="#benutzerdefinierte-verzeichnis-url" title="Permanent link">&para;</a></h3>
<p>Editieren Sie <code>mailcow.conf</code> und fügen Sie die entsprechende Verzeichnis-URL in die neue Variable <code>DIRECTORY_URL</code> ein:</p>
<div class="highlight"><pre><span></span><code>DIRECTORY_URL=https://acme-custom-v9000.api.letsencrypt.org/directory
</code></pre></div>
<p>Sie können <code>LE_STAGING</code> nicht mit <code>DIRECTORY_URL</code> verwenden. Wenn beide gesetzt sind, wird nur <code>LE_STAGING</code> verwendet.</p>
<p>Führen Sie <code>docker-compose up -d</code> aus, um Ihre Änderungen zu aktivieren.</p>
<p>Führen Sie <code>docker compose up -d</code> aus, um Ihre Änderungen zu aktivieren.</p>
<h3 id="uberprufen-sie-ihre-konfiguration">Überprüfen Sie Ihre Konfiguration<a class="headerlink" href="#uberprufen-sie-ihre-konfiguration" title="Permanent link">&para;</a></h3>
<p>Führen Sie <code>docker-compose logs acme-mailcow</code> aus, um herauszufinden, warum eine Validierung fehlschlägt.</p>
<p>Führen Sie <code>docker compose logs acme-mailcow</code> aus, um herauszufinden, warum eine Validierung fehlschlägt.</p>
<p>Um zu überprüfen, ob nginx das richtige Zertifikat verwendet, benutzen Sie einfach einen Browser Ihrer Wahl und überprüfen Sie das angezeigte Zertifikat.</p>
<p>Um das von Postfix, Dovecot und Nginx verwendete Zertifikat zu überprüfen, verwenden wir <code>openssl</code>:</p>
<div class="highlight"><pre><span></span><code># Verbindung über SMTP (587)
@ -2717,7 +2703,7 @@ bash helper-scripts/expiry-dates.sh
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 14:32:36</span>
</small>

Datei anzeigen

@ -495,7 +495,7 @@
<li class="md-nav__item">
<a href="../firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1955,20 +1955,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -601,7 +601,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2024,20 +2024,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -600,7 +600,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -2023,20 +2023,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2776,7 +2762,7 @@ nach der vollen Stunde auszuführen und am Ende einige nette Statistiken zu prot
oder OpenSSH wird sich weigern, den SSH-Schlüssel zu benutzen.</p>
<h3 id="den-container-hochfahren">Den Container hochfahren<a class="headerlink" href="#den-container-hochfahren" title="Permanent link">&para;</a></h3>
<p>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:</p>
<div class="highlight"><pre><span></span><code>docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose up -d
</code></pre></div>
<h2 id="wiederherstellung-von-einem-backup">Wiederherstellung von einem Backup<a class="headerlink" href="#wiederherstellung-von-einem-backup" title="Permanent link">&para;</a></h2>
<p>Das Wiederherstellen eines Backups setzt voraus, dass Sie mit einer neuen Installation von mailcow beginnen, und dass Sie derzeit keine
@ -2797,7 +2783,7 @@ dieses Volume zu schreiben.</p>
<p>Bevor Sie eine Wiederherstellung durchführen, müssen Sie das vmail-Volume in <code>docker-compose.override.yml</code> beschreibbar machen, indem Sie das
das <code>ro</code>-Flag aus dem Volume entfernen.
Dann können Sie den folgenden Befehl verwenden, um das Maildir aus einem Backup wiederherzustellen:</p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borgmatic extract --path mnt/source --archive latest
</code></pre></div>
<p>Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
<a href="#auflistung-aller-verfugbaren-archive">Auflistung aller verfügbaren Archive</a>)</p>
@ -2807,7 +2793,7 @@ Dann können Sie den folgenden Befehl verwenden, um das Maildir aus einem Backup
<p>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.</p>
</div>
<p>Um die MySQL-Datenbank aus dem letzten Archiv wiederherzustellen, verwenden Sie diesen Befehl:</p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borgmatic restore --archive latest
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borgmatic restore --archive latest
</code></pre></div>
<p>Alternativ können Sie auch einen beliebigen Archivnamen aus der Liste der Archive angeben (siehe
<a href="#auflistung-aller-verfugbaren-archive">Auflistung aller verfügbaren Archive</a>)</p>
@ -2815,21 +2801,21 @@ Dann können Sie den folgenden Befehl verwenden, um das Maildir aus einem Backup
<p>Nach der Wiederherstellung müssen Sie mailcow neu starten. Wenn Sie den SELinux-Erzwingungsmodus deaktiviert haben, wäre jetzt ein guter Zeitpunkt, um
ihn wieder zu aktivieren.</p>
<p>Um mailcow neu zu starten, verwenden Sie den folgenden Befehl:</p>
<div class="highlight"><pre><span></span><code>docker-compose down <span class="o">&amp;&amp;</span> docker-compose up -d
<div class="highlight"><pre><span></span><code>docker compose down <span class="o">&amp;&amp;</span> docker compose up -d
</code></pre></div>
<p>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.</p>
<h2 id="nutzliche-befehle">Nützliche Befehle<a class="headerlink" href="#nutzliche-befehle" title="Permanent link">&para;</a></h2>
<h3 id="manueller-archivierungslauf-mit-debugging-ausgabe">Manueller Archivierungslauf (mit Debugging-Ausgabe)<a class="headerlink" href="#manueller-archivierungslauf-mit-debugging-ausgabe" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borgmatic -v <span class="m">2</span>
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borgmatic -v <span class="m">2</span>
</code></pre></div>
<h3 id="auflistung-aller-verfugbaren-archive">Auflistung aller verfügbaren Archive<a class="headerlink" href="#auflistung-aller-verfugbaren-archive" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borgmatic list
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borgmatic list
</code></pre></div>
<h3 id="sperre-aufheben">Sperre aufheben<a class="headerlink" href="#sperre-aufheben" title="Permanent link">&para;</a></h3>
<p>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:</p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borg break-lock user@rsync.net:mailcow
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borg break-lock user@rsync.net:mailcow
</code></pre></div>
<p>Wobei <code>user@rsync.net:mailcow</code> die URI zu Ihrem Repository ist.</p>
<p>Jetzt wäre ein guter Zeitpunkt, einen manuellen Archivierungslauf durchzuführen, um sicherzustellen, dass er erfolgreich durchgeführt werden kann.</p>
@ -2839,7 +2825,7 @@ Schlüsseldateien werden erzeugt, wenn Sie das Repository initialisieren. Die <c
Repository, so dass eine manuelle Sicherung nicht so wichtig ist.</p>
<p>Beachten Sie, dass Sie in beiden Fällen auch die Passphrase haben müssen, um die Archive zu entschlüsseln.</p>
<p>Um die <code>keyfile</code> zu holen, führen Sie aus:</p>
<div class="highlight"><pre><span></span><code>docker-compose <span class="nb">exec</span> borgmatic-mailcow borg key <span class="nb">export</span> --paper user@rsync.net:mailcow
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> borgmatic-mailcow borg key <span class="nb">export</span> --paper user@rsync.net:mailcow
</code></pre></div>
<p>Wobei <code>user@rsync.net:mailcow</code> die URI zu Ihrem Repository ist.</p>
@ -2848,7 +2834,7 @@ Repository, so dass eine manuelle Sicherung nicht so wichtig ist.</p>
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Datei anzeigen

@ -493,7 +493,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1916,20 +1916,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>

Datei anzeigen

@ -488,7 +488,7 @@
<li class="md-nav__item">
<a href="../../post_installation/firststeps-ip_bindings/" class="md-nav__link">
IP-Verbindungen
IP-Bindings
</a>
</li>
@ -1911,20 +1911,6 @@
<li class="md-nav__item">
<a href="../../manual-guides/Docker/u_e-docker-dc_bash_compl/" class="md-nav__link">
Docker Compose Bash Completion
</a>
</li>
</ul>
</nav>
</li>
@ -2398,8 +2384,8 @@ services:
<p>3. Öffne <code>mailcow.conf</code> und definiere den Port Bind, den Gitea für SSH verwenden soll. Beispiel:</p>
<div class="highlight"><pre><span></span><code>GITEA_SSH_PORT=127.0.0.1:4000
</code></pre></div>
<p>5. Führen Sie <code>docker-compose up -d</code> aus, um den Gitea-Container hochzufahren und führen Sie anschließend <code>docker-compose restart nginx-mailcow</code> aus.</p>
<p>6. Wenn Sie mailcow zu https gezwungen haben, führen Sie Schritt 9 aus und starten Sie gitea mit <code>docker-compose restart gitea-mailcow</code> neu. Fahren Sie mit Schritt 7 fort (Denken Sie daran, https anstelle von http zu verwenden, <code>https://mx.example.org/gitea/</code> </p>
<p>5. Führen Sie <code>docker compose up -d</code> aus, um den Gitea-Container hochzufahren und führen Sie anschließend <code>docker compose restart nginx-mailcow</code> aus.</p>
<p>6. Wenn Sie mailcow zu https gezwungen haben, führen Sie Schritt 9 aus und starten Sie gitea mit <code>docker compose restart gitea-mailcow</code> neu. Fahren Sie mit Schritt 7 fort (Denken Sie daran, https anstelle von http zu verwenden, <code>https://mx.example.org/gitea/</code> </p>
<p>7. Öffnen Sie <code>http://${MAILCOW_HOSTNAME}/gitea/</code>, zum Beispiel <code>http://mx.example.org/gitea/</code>. Für die Datenbankdetails stellen Sie <code>mysql</code> als Datenbankhost ein. Verwenden Sie den in mailcow.conf gefundenen Wert von DBNAME als Datenbankname, DBUSER als Datenbankbenutzer und DBPASS als Datenbankpasswort.</p>
<p>8. Sobald die Installation abgeschlossen ist, loggen Sie sich als Administrator ein und setzen Sie "Einstellungen" -&gt; "Autorisierung" -&gt; "SMTP aktivieren". SMTP-Host sollte <code>postfix</code> mit Port <code>587</code> sein, setzen Sie <code>Skip TLS Verify</code>, da wir ein nicht gelistetes SAN verwenden ("postfix" ist höchstwahrscheinlich nicht Teil Ihres Zertifikats).</p>
<p>9. Erstellen Sie <code>data/gitea/gitea/conf/app.ini</code> und setzen Sie die folgenden Werte. Sie können <a href="https://docs.gitea.io/en-us/config-cheat-sheet/">gitea cheat sheet, leider bisher nur in Englisch verfügbar</a> für deren Bedeutung und andere mögliche Werte konsultieren.</p>
@ -2411,14 +2397,14 @@ SSH_PORT = 4000
# Für MAILCOW_HOSTNAME=mx.example.org in mailcow.conf (und Standard-Ports für HTTPS), setzen:
ROOT_URL = https://mx.example.org/gitea/
</code></pre></div>
<p>10. Starten Sie gitea neu mit <code>docker-compose restart gitea-mailcow</code>. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.</p>
<p>10. Starten Sie gitea neu mit <code>docker compose restart gitea-mailcow</code>. Ihre Nutzer sollten in der Lage sein, sich mit von mailcow verwalteten Konten anzumelden.</p>
<hr>
<div class="md-source-file">
<small>
Letztes Update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-01 15:39:27</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-02 15:19:55</span>
</small>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen