Deploying to gh-pages from @ mailcow/mailcow-dockerized-docs@a69cfb806f 🚀
Dieser Commit ist enthalten in:
Ursprung
ad3da63e65
Commit
a399347da9
313 geänderte Dateien mit 7708 neuen und 1399 gelöschten Zeilen
19
404.html
19
404.html
|
@ -62,6 +62,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2419,7 +2436,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "/mailcow-dockerized-docs/", "features": ["navigation.top", "navigation.tracking"], "search": "/mailcow-dockerized-docs/assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "/mailcow-dockerized-docs/", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "/mailcow-dockerized-docs/assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="/mailcow-dockerized-docs/assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="/mailcow-dockerized-docs/assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
BIN
assets/images/i_u_m/nightly_footer.png
Normale Datei
BIN
assets/images/i_u_m/nightly_footer.png
Normale Datei
Binäre Datei nicht angezeigt.
Nachher Breite: | Höhe: | Größe: 6,1 KiB |
|
@ -47,6 +47,7 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2440,10 +2457,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><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>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>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>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>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">¶</a></h3>
|
<h3 id="mail">Mail<a class="headerlink" href="#mail" title="Permanent link">¶</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>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>
|
<p>A deleted mailbox is copied in its encrypted form to <code>/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage</code>.</p>
|
||||||
|
@ -2451,8 +2468,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>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><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>
|
<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 '*'
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
||||||
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2460,7 +2477,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Last update:
|
Last update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2576,7 +2593,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2540,7 +2557,7 @@ fi
|
||||||
</code></pre></div></p>
|
</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.
|
<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>
|
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).
|
<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>
|
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>
|
||||||
|
|
||||||
|
@ -2549,7 +2566,7 @@ In case of a corrupted database you'd need to use the helper script to restore t
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Last update:
|
Last update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-07-11 21:14:01</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2665,7 +2682,7 @@ In case of a corrupted database you'd need to use the helper script to restore t
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2436,13 +2453,13 @@
|
||||||
<h3 id="backup">Backup<a class="headerlink" href="#backup" title="Permanent link">¶</a></h3>
|
<h3 id="backup">Backup<a class="headerlink" href="#backup" title="Permanent link">¶</a></h3>
|
||||||
<p>This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
|
<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
|
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
||||||
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
||||||
</code></pre></div></p>
|
</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.
|
<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>
|
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">¶</a></h3>
|
<h3 id="restore">Restore<a class="headerlink" href="#restore" title="Permanent link">¶</a></h3>
|
||||||
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
||||||
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2450,7 +2467,7 @@ docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if e
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Last update:
|
Last update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2566,7 +2583,7 @@ docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if e
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2437,16 +2454,16 @@
|
||||||
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
DATE=$(date +"%Y%m%d_%H%M%S")
|
DATE=$(date +"%Y%m%d_%H%M%S")
|
||||||
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h2 id="restore">Restore<a class="headerlink" href="#restore" title="Permanent link">¶</a></h2>
|
<h2 id="restore">Restore<a class="headerlink" href="#restore" title="Permanent link">¶</a></h2>
|
||||||
<div class="admonition warning">
|
<div class="admonition warning">
|
||||||
<p class="admonition-title">Warning</p>
|
<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>
|
||||||
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /path/to/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2454,7 +2471,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Last update:
|
Last update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2570,7 +2587,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2473,7 +2490,7 @@
|
||||||
<p>To find the paths 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 an override file. Local bind mounts may or may not work.</p>
|
<p>To find the paths 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 an override file. Local bind mounts may or may not work.</p>
|
||||||
<p>The script uses rsync with the <code>--delete</code> flag. The destination will be an exact copy of the source.</p>
|
<p>The script uses 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><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>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><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>
|
<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>
|
||||||
|
@ -2488,7 +2505,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>The key must be owned and readable by root only.</p>
|
<p>The key must be owned and readable by root only.</p>
|
||||||
<p>Both the source and destination require <code>rsync</code> >= v3.1.0.
|
<p>Both the source and destination require <code>rsync</code> >= v3.1.0.
|
||||||
The destination must have Docker and docker-compose <strong>v2</strong> available.</p>
|
The destination must have Docker and docker compose <strong>v2</strong> available.</p>
|
||||||
<p>The script will detect errors automatically and exit.</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>
|
<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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
|
@ -2521,7 +2538,7 @@ The destination must have Docker and docker-compose <strong>v2</strong> availabl
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Last update:
|
Last update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-27 19:14:02</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2637,7 +2654,7 @@ The destination must have Docker and docker-compose <strong>v2</strong> availabl
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2548,7 +2565,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2497,7 +2514,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2605,7 +2622,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2499,7 +2516,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2507,7 +2524,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2611,7 +2628,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2637,7 +2654,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2516,7 +2533,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2500,7 +2517,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Don't show this again">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2514,7 +2531,7 @@ Since you accessed this page after logging into your mailcow server, all of the
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
BIN
de/assets/images/i_u_m/nightly_footer.png
Normale Datei
BIN
de/assets/images/i_u_m/nightly_footer.png
Normale Datei
Binäre Datei nicht angezeigt.
Nachher Breite: | Höhe: | Größe: 6,1 KiB |
|
@ -47,6 +47,7 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2440,10 +2457,10 @@
|
||||||
<p><strong>Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem Mailcow-Backend existiert</strong>. Legen Sie diesen neu an, falls nicht mehr existent.</p>
|
<p><strong>Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem Mailcow-Backend existiert</strong>. 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>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>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>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>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">¶</a></h3>
|
<h3 id="mail">Mail<a class="headerlink" href="#mail" title="Permanent link">¶</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>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>
|
<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>
|
||||||
|
@ -2451,8 +2468,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 die gleichen Verschlüsselungsschlüssel in <code>crypt-vol-1</code> verwenden.</p>
|
<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 die gleichen Verschlüsselungsschlüssel in <code>crypt-vol-1</code> verwenden.</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><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>
|
<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 '*'
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
|
||||||
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2460,7 +2477,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-27 19:14:02</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2576,7 +2593,7 @@ docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.ne
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2540,7 +2557,7 @@ fi
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p>Am Zielort (in diesem Fall <code>/external_share/backups</code>) möchten Sie vielleicht Snapshot-Möglichkeiten 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.
|
<p>Am Zielort (in diesem Fall <code>/external_share/backups</code>) möchten Sie vielleicht Snapshot-Möglichkeiten 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 behalten!</p>
|
Führen Sie <strong>kein</strong> rsync auf eine Samba-Freigabe durch, Sie müssen die richtigen Berechtigungen behalten!</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 inkonsistent <em>sind</em>).
|
<p>Wenn Sie Glück haben, können Redis und MariaDB die inkonsistenten Datenbanken automatisch reparieren (wenn sie inkonsistent <em>sind</em>).
|
||||||
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>
|
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>
|
||||||
|
|
||||||
|
@ -2549,7 +2566,7 @@ Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-07-11 21:14:01</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2665,7 +2682,7 @@ Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2436,13 +2453,13 @@
|
||||||
<h3 id="sicherung">Sicherung<a class="headerlink" href="#sicherung" title="Permanent link">¶</a></h3>
|
<h3 id="sicherung">Sicherung<a class="headerlink" href="#sicherung" title="Permanent link">¶</a></h3>
|
||||||
<p>Diese Zeile sichert das vmail-Verzeichnis in eine Datei backup_vmail.tar.gz im mailcow-Root-Verzeichnis:
|
<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
|
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
||||||
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p>Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) zu einem beliebigen Pfad ändern, auf den Sie Schreibzugriff haben.
|
<p>Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) zu einem beliebigen Pfad ändern, 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_dateiname_.tar.gz</code></p>
|
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_dateiname_.tar.gz</code></p>
|
||||||
<h3 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">¶</a></h3>
|
<h3 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">¶</a></h3>
|
||||||
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
||||||
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:stretch-slim tar xvfz /backup/backup_vmail.tar.gz
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2450,7 +2467,7 @@ docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if e
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-27 19:14:02</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2566,7 +2583,7 @@ docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if e
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2437,16 +2454,16 @@
|
||||||
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
DATE=$(date +"%Y%m%d_%H%M%S")
|
DATE=$(date +"%Y%m%d_%H%M%S")
|
||||||
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h2 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">¶</a></h2>
|
<h2 id="wiederherstellen">Wiederherstellen<a class="headerlink" href="#wiederherstellen" title="Permanent link">¶</a></h2>
|
||||||
<div class="admonition warning">
|
<div class="admonition warning">
|
||||||
<p class="admonition-title">Warning</p>
|
<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>
|
||||||
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code>cd /pfad/zu/mailcow-dockerized
|
||||||
source mailcow.conf
|
source mailcow.conf
|
||||||
docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2454,7 +2471,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-27 19:14:02</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2570,7 +2587,7 @@ docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPAS
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2473,7 +2490,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>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>Das Skript verwendet rsync mit dem <code>--delete</code> Flag. Das Ziel wird eine exakte Kopie der Quelle sein.</p>
|
<p>Das Skript verwendet 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><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>Ihre Quelle wird zu keinem Zeitpunkt verändert.</p>
|
||||||
<p><strong>Sie sollten sicherstellen, dass Sie die gleiche <code>/etc/docker/daemon.json</code> auf dem entfernten Ziel verwenden.</strong></p>
|
<p><strong>Sie sollten sicherstellen, dass Sie die gleiche <code>/etc/docker/daemon.json</code> auf dem entfernten Ziel verwenden.</strong></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>
|
<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>
|
||||||
|
@ -2488,7 +2505,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Der Schlüssel muss im Besitz von root sein und darf nur von diesem gelesen werden können.</p>
|
<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> >= v3.1.0.
|
<p>Sowohl die Quelle als auch das Ziel benötigen <code>rsync</code> >= v3.1.0.
|
||||||
Das Ziel muss über Docker und docker-compose <strong>v2</strong> verfügen.</p>
|
Das Ziel muss über Docker und docker compose <strong>v2</strong> verfügen.</p>
|
||||||
<p>Das Skript wird Fehler automatisch erkennen und sich beenden.</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>
|
<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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
|
@ -2521,7 +2538,7 @@ Das Ziel muss über Docker und docker-compose <strong>v2</strong> verfügen.</p>
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-27 19:14:02</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2637,7 +2654,7 @@ Das Ziel muss über Docker und docker-compose <strong>v2</strong> verfügen.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2548,7 +2565,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2497,7 +2514,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2605,7 +2622,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2499,7 +2516,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2507,7 +2524,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2611,7 +2628,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2620,7 +2637,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2516,7 +2533,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2500,7 +2517,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2514,7 +2531,7 @@ Da Sie diese Seite aufgerufen haben, nachdem Sie sich in Ihren Mailcow-Server ei
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2369,7 +2386,7 @@
|
||||||
<h1>Deinstallation</h1>
|
<h1>Deinstallation</h1>
|
||||||
|
|
||||||
<p>Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:</p>
|
<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>
|
</code></pre></div>
|
||||||
<div class="admonition info">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<p class="admonition-title">Info</p>
|
||||||
|
@ -2377,7 +2394,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>-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>--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><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>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -2386,7 +2403,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2502,7 +2519,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -61,9 +61,31 @@
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
<div data-md-component="skip">
|
<div data-md-component="skip">
|
||||||
|
|
||||||
|
|
||||||
|
<a href="#docker-und-docker-compose-installation" class="md-skip">
|
||||||
|
Zum Inhalt
|
||||||
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -358,10 +380,134 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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">
|
<a href="./" class="md-nav__link md-nav__link--active">
|
||||||
Installation
|
Installation
|
||||||
</a>
|
</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="#docker-und-docker-compose-installation" class="md-nav__link">
|
||||||
|
Docker und Docker Compose Installation
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="Docker und Docker Compose Installation">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#docker" class="md-nav__link">
|
||||||
|
Docker
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#docker-compose" class="md-nav__link">
|
||||||
|
docker compose
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="docker compose">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#installation-via-paketmanager-plugin" class="md-nav__link">
|
||||||
|
Installation via Paketmanager (Plugin)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#installation-via-script-standalone" class="md-nav__link">
|
||||||
|
Installation via Script (Standalone)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#selinux-besonderheiten-prufen" class="md-nav__link">
|
||||||
|
SELinux Besonderheiten prüfen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-installieren" class="md-nav__link">
|
||||||
|
mailcow Installieren
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-initialisieren" class="md-nav__link">
|
||||||
|
mailcow Initialisieren
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#problembehandlungen" class="md-nav__link">
|
||||||
|
Problembehandlungen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="Problembehandlungen">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#benutzer-mit-einer-mtu-ungleich-1500-zb-openstack" class="md-nav__link">
|
||||||
|
Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#benutzer-ohne-ein-ipv6-aktiviertes-netzwerk-auf-ihrem-hostsystem" class="md-nav__link">
|
||||||
|
Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-starten" class="md-nav__link">
|
||||||
|
mailcow starten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2350,6 +2496,116 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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="#docker-und-docker-compose-installation" class="md-nav__link">
|
||||||
|
Docker und Docker Compose Installation
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="Docker und Docker Compose Installation">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#docker" class="md-nav__link">
|
||||||
|
Docker
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#docker-compose" class="md-nav__link">
|
||||||
|
docker compose
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="docker compose">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#installation-via-paketmanager-plugin" class="md-nav__link">
|
||||||
|
Installation via Paketmanager (Plugin)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#installation-via-script-standalone" class="md-nav__link">
|
||||||
|
Installation via Script (Standalone)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#selinux-besonderheiten-prufen" class="md-nav__link">
|
||||||
|
SELinux Besonderheiten prüfen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-installieren" class="md-nav__link">
|
||||||
|
mailcow Installieren
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-initialisieren" class="md-nav__link">
|
||||||
|
mailcow Initialisieren
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#problembehandlungen" class="md-nav__link">
|
||||||
|
Problembehandlungen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="Problembehandlungen">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#benutzer-mit-einer-mtu-ungleich-1500-zb-openstack" class="md-nav__link">
|
||||||
|
Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack)
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#benutzer-ohne-ein-ipv6-aktiviertes-netzwerk-auf-ihrem-hostsystem" class="md-nav__link">
|
||||||
|
Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#mailcow-starten" class="md-nav__link">
|
||||||
|
mailcow starten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2368,31 +2624,55 @@
|
||||||
|
|
||||||
<h1>Installation</h1>
|
<h1>Installation</h1>
|
||||||
|
|
||||||
|
<h2 id="docker-und-docker-compose-installation">Docker und Docker Compose Installation<a class="headerlink" href="#docker-und-docker-compose-installation" title="Permanent link">¶</a></h2>
|
||||||
<p>Sie benötigen Docker (eine Version >= <code>20.10.2</code> ist erforderlich) und Docker Compose (eine Version <code>>= 2.0</code> ist erforderlich).</p>
|
<p>Sie benötigen Docker (eine Version >= <code>20.10.2</code> ist erforderlich) und Docker Compose (eine Version <code>>= 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>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>Schnelle Installation für die meisten Betriebssysteme:</p>
|
<p>Schnelle Installation für die meisten Betriebssysteme:</p>
|
||||||
<ul>
|
<h3 id="docker">Docker<a class="headerlink" href="#docker" title="Permanent link">¶</a></h3>
|
||||||
<li>
|
<p><div class="highlight"><pre><span></span><code>curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||||
<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)
|
# Nachdem der Installationsprozess abgeschlossen ist, müssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7)
|
||||||
systemctl enable --now docker
|
systemctl enable --now docker
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
</li>
|
Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.</p>
|
||||||
<li>
|
<h3 id="docker-compose">docker compose<a class="headerlink" href="#docker-compose" title="Permanent link">¶</a></h3>
|
||||||
<p>Docker-Compose</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="admonition danger">
|
<div class="admonition danger">
|
||||||
<p class="admonition-title">Achtung</p>
|
<p class="admonition-title">Achtung</p>
|
||||||
<p><strong>mailcow benötigt die neueste Version von docker-compose v2.</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.
|
<p><strong>mailcow benötigt eine Version von Docker Compose >= v2</strong>.
|
||||||
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>
|
<br>Sollte die Installation von Docker über das obenstehende Skript erfolgt sein wird das Docker Compose Plugin bereits automatisch
|
||||||
|
in einer Version >=2.0 installiert. <br>
|
||||||
|
Ist die mailcow Installation älter oder Docker wurde auf einem anderen Weg installiert, muss das Compose Plugin bzw. die Standalone Version von Docker manuell installiert werden.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
<h4 id="installation-via-paketmanager-plugin">Installation via Paketmanager (Plugin)<a class="headerlink" href="#installation-via-paketmanager-plugin" title="Permanent link">¶</a></h4>
|
||||||
chmod +x /usr/local/bin/docker-compose
|
<div class="admonition info">
|
||||||
|
<p class="admonition-title">Hinweis</p>
|
||||||
|
<p>Diese Vorgehensweise mit den Paketquellen ist nur dann möglich, wenn das Docker Repository eingebunden wurde. Dies kann entweder durch die Anleitung oben (siehe <a href="#docker">Docker</a>) oder durch eine manuelle Einbindung passieren.</p>
|
||||||
|
</div>
|
||||||
|
<p>Auf Debian/Ubuntu Systemen:
|
||||||
|
<div class="highlight"><pre><span></span><code>apt update
|
||||||
|
apt install docker compose-plugin
|
||||||
|
</code></pre></div></p>
|
||||||
|
<p>Auf Centos 7 Systemen:
|
||||||
|
<div class="highlight"><pre><span></span><code>yum update
|
||||||
|
yum install docker compose-plugin
|
||||||
|
</code></pre></div></p>
|
||||||
|
<div class="admonition danger">
|
||||||
|
<p class="admonition-title">Achtung</p>
|
||||||
|
<p>Die Syntax der Docker Compose Befehle lautet <strong><code>docker compose</code></strong> bei der <strong>Plugin Variante</strong> von Docker Compose!!</p>
|
||||||
|
</div>
|
||||||
|
<h4 id="installation-via-script-standalone">Installation via Script (Standalone)<a class="headerlink" href="#installation-via-script-standalone" title="Permanent link">¶</a></h4>
|
||||||
|
<div class="admonition info">
|
||||||
|
<p class="admonition-title">Hinweis</p>
|
||||||
|
<p>Diese Installation ist die alt bekannte Weise. Sie installiert Docker Compose als Standalone Programm und ist nicht auf die Art und weise der Docker Installation angewiesen.</p>
|
||||||
|
</div>
|
||||||
|
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker compose/latest.php)/docker compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker compose
|
||||||
|
chmod +x /usr/local/bin/docker compose
|
||||||
</code></pre></div>
|
</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>
|
<div class="admonition danger">
|
||||||
<p><strong>1.1.1.</strong> Auf SELinux-aktivierten Systemen, z.B. CentOS 7:</p>
|
<p class="admonition-title">Achtung</p>
|
||||||
|
<p>Die Syntax der Docker Compose Befehle lautet <strong><code>docker compose</code></strong> bei der <strong>Standalone Variante</strong> von Docker Compose!!</p>
|
||||||
|
</div>
|
||||||
|
<h2 id="selinux-besonderheiten-prufen">SELinux Besonderheiten prüfen<a class="headerlink" href="#selinux-besonderheiten-prufen" title="Permanent link">¶</a></h2>
|
||||||
|
<p>Auf SELinux-aktivierten Systemen, z.B. CentOS 7:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Prüfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:</li>
|
<li>Prüfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2412,7 +2692,8 @@ 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>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.
|
<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>
|
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="mailcow-installieren">mailcow Installieren<a class="headerlink" href="#mailcow-installieren" title="Permanent link">¶</a></h2>
|
||||||
|
<p>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
|
<div class="highlight"><pre><span></span><code>$ su
|
||||||
# umask
|
# umask
|
||||||
0022 # <- Überprüfen, dass es 0022 ist
|
0022 # <- Überprüfen, dass es 0022 ist
|
||||||
|
@ -2420,18 +2701,20 @@ Wenn Sie daran interessiert sind, wie das funktioniert, können Sie sich die Rea
|
||||||
# git clone https://github.com/mailcow/mailcow-dockerized
|
# git clone https://github.com/mailcow/mailcow-dockerized
|
||||||
# cd mailcow-dockerized
|
# cd mailcow-dockerized
|
||||||
</code></pre></div>
|
</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.
|
<h2 id="mailcow-initialisieren">mailcow Initialisieren<a class="headerlink" href="#mailcow-initialisieren" title="Permanent link">¶</a></h2>
|
||||||
|
<p>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
|
<div class="highlight"><pre><span></span><code>./generate_config.sh
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>4.</strong> Ändern Sie die Konfiguration, wenn Sie das wollen oder müssen.
|
<p>Ändern Sie die Konfiguration, wenn Sie wollen oder müssen.
|
||||||
<div class="highlight"><pre><span></span><code>nano mailcow.conf
|
<div class="highlight"><pre><span></span><code>nano mailcow.conf
|
||||||
</code></pre></div>
|
</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>
|
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>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>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>
|
<h2 id="problembehandlungen">Problembehandlungen<a class="headerlink" href="#problembehandlungen" title="Permanent link">¶</a></h2>
|
||||||
|
<h3 id="benutzer-mit-einer-mtu-ungleich-1500-zb-openstack">Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack)<a class="headerlink" href="#benutzer-mit-einer-mtu-ungleich-1500-zb-openstack" title="Permanent link">¶</a></h3>
|
||||||
<p><strong>Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.</strong></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.
|
<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:
|
Fügen Sie den neuen Parameter driver_opts wie folgt hinzu:
|
||||||
<div class="highlight"><pre><span></span><code>networks:
|
<div class="highlight"><pre><span></span><code>networks:
|
||||||
mailcow-network:
|
mailcow-network:
|
||||||
|
@ -2440,12 +2723,13 @@ Fügen Sie den neuen Parameter driver_opts wie folgt hinzu:
|
||||||
com.docker.network.driver.mtu: 1450
|
com.docker.network.driver.mtu: 1450
|
||||||
...
|
...
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>4.2.</strong> Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem:</p>
|
<h3 id="benutzer-ohne-ein-ipv6-aktiviertes-netzwerk-auf-ihrem-hostsystem">Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem<a class="headerlink" href="#benutzer-ohne-ein-ipv6-aktiviertes-netzwerk-auf-ihrem-hostsystem" title="Permanent link">¶</a></h3>
|
||||||
<p><strong>Einschalten von IPv6. Endlich.</strong></p>
|
<p><strong>Schalten Sie IPv6 bitte nicht ab, auch wenn es Ihnen nicht gefällt. IPv6 ist die Zukunft und sollte nicht ignoriert werden.</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>Sollten Sie jedoch kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern wollen (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:
|
<h2 id="mailcow-starten">mailcow starten<a class="headerlink" href="#mailcow-starten" title="Permanent link">¶</a></h2>
|
||||||
<div class="highlight"><pre><span></span><code>docker-compose pull
|
<p>Laden Sie die Images herunter und führen Sie die Compose-Datei aus. Der Parameter <code>-d</code> wird ihre mailcow dann im Hintergrund starten:
|
||||||
docker-compose up -d
|
<div class="highlight"><pre><span></span><code>docker compose pull
|
||||||
|
docker compose up -d
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p>Geschafft!</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>
|
<p>Sie können nun auf <strong>https://${MAILCOW_HOSTNAME}</strong> mit den Standard-Zugangsdaten <code>admin</code> + Passwort <code>moohoo</code> zugreifen.</p>
|
||||||
|
@ -2454,14 +2738,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>
|
<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>
|
</div>
|
||||||
<p>Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zu MySQL hergestellt werden kann.</p>
|
<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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2577,7 +2861,7 @@ docker-compose up -d
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2377,7 +2394,7 @@
|
||||||
<p>Alternativ können Sie das Skript <code>./helper-scripts/backup_and_restore.sh</code> verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre <code>mailcow.conf</code> und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen.</p>
|
<p>Alternativ können Sie das Skript <code>./helper-scripts/backup_and_restore.sh</code> verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre <code>mailcow.conf</code> und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen.</p>
|
||||||
</div>
|
</div>
|
||||||
<p><strong>1.</strong>
|
<p><strong>1.</strong>
|
||||||
Installieren Sie <a href="https://docs.docker.com/engine/installation/linux/">Docker</a> und <a href="https://docs.docker.com/compose/install/">docker-compose</a> auf Ihrem neuen Server.</p>
|
Installieren Sie <a href="https://docs.docker.com/engine/installation/linux/">Docker</a> und <a href="https://docs.docker.com/compose/install/">docker compose</a> auf Ihrem neuen Server.</p>
|
||||||
<p>Schnelle Installation für die meisten Betriebssysteme:</p>
|
<p>Schnelle Installation für die meisten Betriebssysteme:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -2388,9 +2405,9 @@ systemctl enable docker.service
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>docker-compose
|
<p>docker compose
|
||||||
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
<div class="highlight"><pre><span></span><code>curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker compose/latest.php)/docker compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker compose
|
||||||
chmod +x /usr/local/bin/docker-compose
|
chmod +x /usr/local/bin/docker compose
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2405,7 +2422,7 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>4.</strong> Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
|
<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
|
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
|
||||||
docker-compose herunterfahren
|
docker compose herunterfahren
|
||||||
systemctl stop docker.service
|
systemctl stop docker.service
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p>**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal.</p>
|
<p>**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal.</p>
|
||||||
|
@ -2414,10 +2431,10 @@ systemctl stop docker.service
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>7.</strong> Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
|
<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
|
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
|
||||||
docker-compose pull
|
docker compose pull
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>8.</strong> Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
|
<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>
|
</code></pre></div></p>
|
||||||
<p><strong>9.</strong> Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen.</p>
|
<p><strong>9.</strong> Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen.</p>
|
||||||
|
|
||||||
|
@ -2426,7 +2443,7 @@ docker-compose pull
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-24 11:27:36</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2542,7 +2559,7 @@ docker-compose pull
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -62,13 +62,30 @@
|
||||||
<div data-md-component="skip">
|
<div data-md-component="skip">
|
||||||
|
|
||||||
|
|
||||||
<a href="#automatische-aktualisierung" class="md-skip">
|
<a href="#mailcow-automatisch-updaten" class="md-skip">
|
||||||
Zum Inhalt
|
Zum Inhalt
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -400,11 +417,11 @@
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#automatische-aktualisierung" class="md-nav__link">
|
<a href="#mailcow-automatisch-updaten" class="md-nav__link">
|
||||||
Automatische Aktualisierung
|
mailcow automatisch Updaten
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Automatische Aktualisierung">
|
<nav class="md-nav" aria-label="mailcow automatisch Updaten">
|
||||||
<ul class="md-nav__list">
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
|
@ -445,6 +462,47 @@
|
||||||
Update-Zyklus
|
Update-Zyklus
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#update-varianten" class="md-nav__link">
|
||||||
|
Update-Varianten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#neu-nightly-updates-beziehen" class="md-nav__link">
|
||||||
|
NEU: Nightly Updates beziehen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="NEU: Nightly Updates beziehen">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#infos-zu-den-nightly-updates" class="md-nav__link">
|
||||||
|
Infos zu den Nightly Updates
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#wie-bekomme-ich-nightly-updates" class="md-nav__link">
|
||||||
|
Wie bekomme ich Nightly Updates?
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#best-practice-nightly-update" class="md-nav__link">
|
||||||
|
Best Practice Nightly Update
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2432,11 +2490,11 @@
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#automatische-aktualisierung" class="md-nav__link">
|
<a href="#mailcow-automatisch-updaten" class="md-nav__link">
|
||||||
Automatische Aktualisierung
|
mailcow automatisch Updaten
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Automatische Aktualisierung">
|
<nav class="md-nav" aria-label="mailcow automatisch Updaten">
|
||||||
<ul class="md-nav__list">
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
|
@ -2477,6 +2535,47 @@
|
||||||
Update-Zyklus
|
Update-Zyklus
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#update-varianten" class="md-nav__link">
|
||||||
|
Update-Varianten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#neu-nightly-updates-beziehen" class="md-nav__link">
|
||||||
|
NEU: Nightly Updates beziehen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="md-nav" aria-label="NEU: Nightly Updates beziehen">
|
||||||
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#infos-zu-den-nightly-updates" class="md-nav__link">
|
||||||
|
Infos zu den Nightly Updates
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#wie-bekomme-ich-nightly-updates" class="md-nav__link">
|
||||||
|
Wie bekomme ich Nightly Updates?
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#best-practice-nightly-update" class="md-nav__link">
|
||||||
|
Best Practice Nightly Update
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2499,7 +2598,7 @@
|
||||||
|
|
||||||
<h1>Update</h1>
|
<h1>Update</h1>
|
||||||
|
|
||||||
<h2 id="automatische-aktualisierung">Automatische Aktualisierung<a class="headerlink" href="#automatische-aktualisierung" title="Permanent link">¶</a></h2>
|
<h2 id="mailcow-automatisch-updaten">mailcow automatisch Updaten<a class="headerlink" href="#mailcow-automatisch-updaten" title="Permanent link">¶</a></h2>
|
||||||
<p>Ein Update-Skript in Ihrem mailcow-dockerized Verzeichnis kümmert sich um Updates.</p>
|
<p>Ein Update-Skript in Ihrem mailcow-dockerized Verzeichnis kümmert sich um Updates.</p>
|
||||||
<p>Aber benutzen Sie es mit Bedacht! Wenn Sie denken, dass Sie viele Änderungen am mailcow-Code vorgenommen haben, sollten Sie die manuelle Update-Anleitung unten verwenden.</p>
|
<p>Aber benutzen Sie es mit Bedacht! Wenn Sie denken, dass Sie viele Änderungen am mailcow-Code vorgenommen haben, sollten Sie die manuelle Update-Anleitung unten verwenden.</p>
|
||||||
<p>Führen sie das Update-Skript aus:
|
<p>Führen sie das Update-Skript aus:
|
||||||
|
@ -2520,8 +2619,12 @@ Einige kleinere Konflikte werden automatisch korrigiert (zugunsten des mailcow-d
|
||||||
# - Überspringt den ICMP Check auf die öffentlichen DNS Resolver (Bitte nur nutzen, wenn keinerlei ICMP Verbindungen von und zur mailcow erlaubt sind)
|
# - Überspringt den ICMP Check auf die öffentlichen DNS Resolver (Bitte nur nutzen, wenn keinerlei ICMP Verbindungen von und zur mailcow erlaubt sind)
|
||||||
./update.sh --skip-ping-check
|
./update.sh --skip-ping-check
|
||||||
|
|
||||||
# - Überspringt den Docker-Compose Update Prozess, aktualisierung erfolgt dann vom Benutzer
|
# - Wechselt die Update Quellen der mailcow auf nightly (unstabile) Inhalte.
|
||||||
./update.sh --no-update-compose
|
NUR ZUM TESTEN VERWENDEN!! KEIN PRODUKTIV BETRIEB!!!
|
||||||
|
./update.sh --nightly
|
||||||
|
|
||||||
|
# - Wechselt die Update Quellen der mailcow auf stable (stabile) Inhalte (standard).
|
||||||
|
./update.sh --stable
|
||||||
|
|
||||||
# - Erzwinge Update (unbeaufsichtigt, aber nicht unterstützt, Benutzung auf eigenes Risiko)
|
# - Erzwinge Update (unbeaufsichtigt, aber nicht unterstützt, Benutzung auf eigenes Risiko)
|
||||||
./update.sh --force
|
./update.sh --force
|
||||||
|
@ -2545,11 +2648,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">¶</a></h3>
|
<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">¶</a></h3>
|
||||||
<p>Ja.</p>
|
<p>Ja.</p>
|
||||||
<p>Siehe das obige Thema, anstelle eines Diffs führen Sie checkout aus:</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
|
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
|
||||||
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
|
||||||
docker-compose pull
|
docker compose pull
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h3 id="hooks">Hooks<a class="headerlink" href="#hooks" title="Permanent link">¶</a></h3>
|
<h3 id="hooks">Hooks<a class="headerlink" href="#hooks" title="Permanent link">¶</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>
|
<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>
|
||||||
|
@ -2559,13 +2662,40 @@ docker-compose up -d
|
||||||
<li>Die Updates sind wie folgt nummeriert: <code>JJJJ-MM</code> (Beispiel: <code>2022-05</code>).</li>
|
<li>Die Updates sind wie folgt nummeriert: <code>JJJJ-MM</code> (Beispiel: <code>2022-05</code>).</li>
|
||||||
<li>Fehlerkorrekturen eines Hauptupdates werden bei uns als "Revisionen" wie a,b,c (Beispiele: <code>2022-05a</code>, <code>2022-05b</code> usw.) erscheinen.</li>
|
<li>Fehlerkorrekturen eines Hauptupdates werden bei uns als "Revisionen" wie a,b,c (Beispiele: <code>2022-05a</code>, <code>2022-05b</code> usw.) erscheinen.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<h2 id="update-varianten">Update-Varianten<a class="headerlink" href="#update-varianten" title="Permanent link">¶</a></h2>
|
||||||
|
<p><strong>stable (stabile Updates)</strong>: Diese Updates sind für den Produktivbetrieb geeignet. Sie erscheinen in einem Zyklus von mindest 1x im Monat.</p>
|
||||||
|
<p><strong>nightly (instabile Updates)</strong>: Diese Updates sind <strong>NICHT</strong> für den Produktivbetrieb geeignet und dienen lediglich dem Testen. Die nightly Updates sind den stabilen Updates vorraus, da in diesen neue und auch umfangreichere Funktionen getestet werden bevor diese für alle User Live gehen.</p>
|
||||||
|
<h2 id="neu-nightly-updates-beziehen">NEU: Nightly Updates beziehen<a class="headerlink" href="#neu-nightly-updates-beziehen" title="Permanent link">¶</a></h2>
|
||||||
|
<h3 id="infos-zu-den-nightly-updates">Infos zu den Nightly Updates<a class="headerlink" href="#infos-zu-den-nightly-updates" title="Permanent link">¶</a></h3>
|
||||||
|
<p>Seit dem 2022-08 Update gibt es die Möglichkeit die Update quellen zu ändern. Bisher diente der master Branch auf GitHub als einzige (offizieller) Update Quelle. Mit dem August 2022 Update gibt es aber nun noch den Nightly Branch welcher instabile und größere Änderungen zum testen und Feedback geben enthält.</p>
|
||||||
|
<p>Dabei bekommt der Nightly Branch immer dann neue Updates, wenn irgendetwas am mailcow Projekt fertig gemacht wurde was in die neue Hauptversion reinkommt.</p>
|
||||||
|
<p>Neben den offensichtlichen neuerungen welche sowieso im nächsten Major Update enthalten sein werden enthält er ebenfalls erstmal exklusive Features welche eine längere Testzeit brauchen (bspw. das UI Update auf Bootstrap 5).</p>
|
||||||
|
<h3 id="wie-bekomme-ich-nightly-updates">Wie bekomme ich Nightly Updates?<a class="headerlink" href="#wie-bekomme-ich-nightly-updates" title="Permanent link">¶</a></h3>
|
||||||
|
<p>Der Vorgang ist relativ simpel. Mit dem 2022-08 Update (ein Update auf die Version voraussgesetzt) ist es möglich die <code>update.sh</code> mit dem Parameter <code>--nightly</code> zu starten.</p>
|
||||||
|
<div class="admonition danger">
|
||||||
|
<p class="admonition-title">Achtung<p>Bitte machen Sie vorher ein Backup oder folgen Sie dem Abschnitt <a href="#best-practice-nightly-update">Best Practice Nightly Update</a> bevor Sie auf die Nightly Builds von mailcow wechseln. Wir sind für keinerlei Datenverluste/korruptionen verantwortlich, also arbeiten Sie mit bedacht!</p>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<p>Das Skript wird nun den Branch wechseln mit <code>git checkout nightly</code> d.h. es wird auch wieder nach den IPv6 Einstellungen fragen. Das ist aber normal.</p>
|
||||||
|
<p>Sollte alles problemlos geklappt haben (wofür wir ja auch vorsichtshalber ein Backup vorher gemacht haben) sollte nun in der mailcow UI unten rechts die aktuelle Versionsnummer samt Datumsstempel abgebildet sein: <br>
|
||||||
|
<img alt="nightly footer" src="../../assets/images/i_u_m/nightly_footer.png" /></p>
|
||||||
|
<h3 id="best-practice-nightly-update">Best Practice Nightly Update<a class="headerlink" href="#best-practice-nightly-update" title="Permanent link">¶</a></h3>
|
||||||
|
<div class="admonition info">
|
||||||
|
<p class="admonition-title">Info<p>Wir empfehlen die Benutzung des Nightly Updates nur dann, wenn Ihr eine weitere Maschine oder VM besitzt und diese <strong>NICHT</strong> Produktiv nutzt.</p>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ol>
|
||||||
|
<li>Das <a href="../../backup_restore/b_n_r-coldstandby/">Cold-Standby Skript</a> nutzen um die Maschine <strong>vor</strong> dem Schwenk auf die Nightly Builds auf ein anderes System zu kopieren.</li>
|
||||||
|
<li>Das <code>update.sh</code> Skript auf der neuen Maschine mit dem Parameter <code>--nightly</code> ausführen und bestätigen.</li>
|
||||||
|
<li>Die Nightly Updates auf der sekundären Maschine erleben/testen.</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:19:13</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2681,7 +2811,7 @@ docker-compose up -d
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2708,7 +2725,7 @@ Jeder Container repräsentiert eine einzelne Anwendung.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.top", "navigation.tracking"], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2519,7 +2536,7 @@ MaxZipTypeRcg 50M
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
</li>
|
</li>
|
||||||
<li>Starten Sie den ClamAV Container neu:
|
<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>
|
</code></pre></div></li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><strong>Bitte beachten Sie</strong>:</p>
|
<p><strong>Bitte beachten Sie</strong>:</p>
|
||||||
|
@ -2538,7 +2555,7 @@ DatabaseCustomURL http://sigs.interserver.net/shell.ldb
|
||||||
DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
||||||
</code></pre></div></li>
|
</code></pre></div></li>
|
||||||
<li>Starten Sie den ClamAV Container neu:
|
<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>
|
</code></pre></div></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
@ -2547,7 +2564,7 @@ DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2663,7 +2680,7 @@ DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2421,7 +2438,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">¶</a></h2>
|
<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">¶</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>
|
<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">"FOUND"</span>
|
<div class="highlight"><pre><span></span><code>docker compose logs clamd-mailcow <span class="p">|</span> grep <span class="s2">"FOUND"</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Diese Zeile bestätigt, dass ein solcher identifiziert wurde:</p>
|
<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 -> instream(local): PUA.Pdf.Trojan.EmbeddedJavaScript-1(e887d2ac324ce90750768b86b63d0749:363325) FOUND
|
<div class="highlight"><pre><span></span><code>clamd-mailcow_1 | Sat Sep 28 07:43:24 2019 -> instream(local): PUA.Pdf.Trojan.EmbeddedJavaScript-1(e887d2ac324ce90750768b86b63d0749:363325) FOUND
|
||||||
|
@ -2429,11 +2446,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>
|
<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">'PUA.Pdf.Trojan.EmbeddedJavaScript-1'</span> >> data/conf/clamav/whitelist.ign2
|
<div class="highlight"><pre><span></span><code><span class="nb">echo</span> <span class="s1">'PUA.Pdf.Trojan.EmbeddedJavaScript-1'</span> >> data/conf/clamav/whitelist.ign2
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker-compose neu:</p>
|
<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
|
<div class="highlight"><pre><span></span><code>docker compose restart clamd-mailcow
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis:</p>
|
<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 # redis-cli KEYS rs_cl* | xargs redis-cli DEL
|
||||||
/data # exit
|
/data # exit
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
@ -2443,7 +2460,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2559,7 +2576,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2371,13 +2388,13 @@
|
||||||
<h1>Dockerfiles anpassen</h1>
|
<h1>Dockerfiles anpassen</h1>
|
||||||
|
|
||||||
<p>Sie müssen die Override-Datei mit den entsprechenden Build-Tags in den mailcow: dockerized Root-Ordner (d.h. <code>/opt/mailcow-dockerized</code>) kopieren:</p>
|
<p>Sie müssen die Override-Datei mit den entsprechenden Build-Tags in den mailcow: dockerized Root-Ordner (d.h. <code>/opt/mailcow-dockerized</code>) kopieren:</p>
|
||||||
<div class="highlight"><pre><span></span><code>cp helper-scripts/docker-compose.override.yml.d/BUILD_FLAGS/docker-compose.override.yml docker-compose.override.yml
|
<div class="highlight"><pre><span></span><code>cp helper-scripts/docker compose.override.yml.d/BUILD_FLAGS/docker compose.override.yml docker compose.override.yml
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Nehmen Sie Ihre Änderungen in <code>data/Dockerfiles/$service</code> vor und erstellen Sie das Image lokal:</p>
|
<p>Nehmen Sie Ihre Änderungen in <code>data/Dockerfiles/$service</code> vor und erstellen Sie das Image lokal:</p>
|
||||||
<div class="highlight"><pre><span></span><code>docker build data/Dockerfiles/service -t mailcow/$service
|
<div class="highlight"><pre><span></span><code>docker build data/Dockerfiles/service -t mailcow/$service
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Nun werden die geänderten Container automatisch neu erstellt:</p>
|
<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>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2385,7 +2402,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2501,7 +2518,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2374,14 +2391,14 @@
|
||||||
<p>Diese Funktion kann wieder aktiviert werden, indem <code>ACL_ANYONE</code> auf <code>allow</code> in mailcow.conf gesetzt wird:</p>
|
<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
|
<div class="highlight"><pre><span></span><code>ACL_ANYONE=allow
|
||||||
</code></pre></div>
|
</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2497,7 +2514,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2494,7 +2511,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2477,16 +2494,16 @@
|
||||||
<h2 id="der-manuelle-weg">Der manuelle Weg<a class="headerlink" href="#der-manuelle-weg" title="Permanent link">¶</a></h2>
|
<h2 id="der-manuelle-weg">Der manuelle Weg<a class="headerlink" href="#der-manuelle-weg" title="Permanent link">¶</a></h2>
|
||||||
<p>Dann wollen wir mal loslegen:</p>
|
<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>
|
<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 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'Junk' SEEN not SINCE 4h
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Lösche <strong>alle</strong> Mails des Benutzers im Junk-Ordner, die <strong>älter</strong> als 7 Tage sind</p>
|
<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 'Junk' savedbefore 7d
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 7d
|
||||||
</code></pre></div>
|
</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 => <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>
|
<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 => <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>
|
</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>
|
<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 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow doveadm expunge -u 'mailbox@example.com' mailbox 'INBOX/custom-folder' not FLAGGED not SINCE 2w
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<div class="admonition info">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<p class="admonition-title">Info</p>
|
||||||
|
@ -2499,8 +2516,8 @@
|
||||||
# Pfad zu mailcow-dockerized, z.B. /opt/mailcow-dockerized
|
# Pfad zu mailcow-dockerized, z.B. /opt/mailcow-dockerized
|
||||||
cd /pfad/zu/ihrem/mailcow-dockerized
|
cd /pfad/zu/ihrem/mailcow-dockerized
|
||||||
|
|
||||||
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' savedbefore 2w
|
||||||
/usr/local/bin/docker-compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
/usr/local/bin/docker compose exec -T dovecot-mailcow doveadm expunge -A mailbox 'Junk' SEEN not SINCE 12h
|
||||||
[...]
|
[...]
|
||||||
</code></pre></div>
|
</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>
|
<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>
|
||||||
|
@ -2508,7 +2525,7 @@ cd /pfad/zu/ihrem/mailcow-dockerized
|
||||||
0 4 * * * /pfad/zu/ihr/expunge_mailboxes.sh
|
0 4 * * * /pfad/zu/ihr/expunge_mailboxes.sh
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h3 id="uber-docker-job-scheduler">über Docker Job Scheduler<a class="headerlink" href="#uber-docker-job-scheduler" title="Permanent link">¶</a></h3>
|
<h3 id="uber-docker-job-scheduler">über Docker Job Scheduler<a class="headerlink" href="#uber-docker-job-scheduler" title="Permanent link">¶</a></h3>
|
||||||
<p>Um dies mit einem Docker-Job-Scheduler zu archivieren, verwenden Sie diese docker-compose.override.yml mit Ihrer Mailcow: </p>
|
<p>Um dies mit einem Docker-Job-Scheduler zu archivieren, verwenden Sie diese docker compose.override.yml mit Ihrer Mailcow: </p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -2529,7 +2546,7 @@ services:
|
||||||
- "ofelia.job-exec.dovecot-expunge-trash.tty=false"
|
- "ofelia.job-exec.dovecot-expunge-trash.tty=false"
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Der Job-Controller braucht nur Zugriff auf den Docker Control Socket, um das Verhalten von "exec" zu emulieren. Dann fügen wir unserem Dovecot-Container ein paar Labels hinzu, um den Job-Scheduler zu aktivieren und ihm in einem Cron-kompatiblen Scheduling-Format mitzuteilen, wann er laufen soll. Wenn Sie Probleme mit dem Scheduling-String haben, können Sie <a href="https://crontab.guru/">crontab guru</a> verwenden.
|
<p>Der Job-Controller braucht nur Zugriff auf den Docker Control Socket, um das Verhalten von "exec" zu emulieren. Dann fügen wir unserem Dovecot-Container ein paar Labels hinzu, um den Job-Scheduler zu aktivieren und ihm in einem Cron-kompatiblen Scheduling-Format mitzuteilen, wann er laufen soll. Wenn Sie Probleme mit dem Scheduling-String haben, können Sie <a href="https://crontab.guru/">crontab guru</a> verwenden.
|
||||||
Diese docker-compose.override.yml löscht jeden Tag um 4 Uhr morgens alle Mails, die älter als 2 Wochen sind, aus dem Ordner "Junk". Um zu sehen, ob alles richtig gelaufen ist, können Sie nicht nur in Ihrer Mailbox nachsehen, sondern auch im Docker-Log von Ofelia, ob es etwa so aussieht:</p>
|
Diese docker compose.override.yml löscht jeden Tag um 4 Uhr morgens alle Mails, die älter als 2 Wochen sind, aus dem Ordner "Junk". Um zu sehen, ob alles richtig gelaufen ist, können Sie nicht nur in Ihrer Mailbox nachsehen, sondern auch im Docker-Log von Ofelia, ob es etwa so aussieht:</p>
|
||||||
<div class="highlight"><pre><span></span><code>common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)] Started - doveadm expunge -A mailbox 'Junk' savedbefore 2w,
|
<div class="highlight"><pre><span></span><code>common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)] Started - doveadm expunge -A mailbox 'Junk' savedbefore 2w,
|
||||||
common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)] Finished in "285.032291ms", failed: false, skipped: false, error: none,
|
common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)] Finished in "285.032291ms", failed: false, skipped: false, error: none,
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
@ -2541,7 +2558,7 @@ common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)]
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2657,7 +2674,7 @@ common.go:124 ▶ NOTICE [Job "dovecot-expunge-trash" (8759567efa66)]
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2372,7 +2389,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>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>
|
<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>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2380,7 +2397,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2496,7 +2513,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2467,17 +2484,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>
|
<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">¶</a></h3>
|
<h3 id="fts-bezogene-dovecot-befehle">FTS-bezogene Dovecot-Befehle<a class="headerlink" href="#fts-bezogene-dovecot-befehle" title="Permanent link">¶</a></h3>
|
||||||
<p><div class="highlight"><pre><span></span><code># Einzelbenutzer
|
<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
|
# alle Benutzer
|
||||||
docker-compose exec dovecot-mailcow doveadm fts rescan -A
|
docker compose exec dovecot-mailcow doveadm fts rescan -A
|
||||||
</code></pre></div>
|
</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>
|
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>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>
|
<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
|
<div class="highlight"><pre><span></span><code># einzelner Benutzer
|
||||||
docker-compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
docker compose exec dovecot-mailcow doveadm index -u user@domain '*'
|
||||||
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
|
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
|
||||||
docker-compose exec dovecot-mailcow doveadm index -A '*'
|
docker compose exec dovecot-mailcow doveadm index -A '*'
|
||||||
</code></pre></div>
|
</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>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>
|
<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>
|
||||||
|
@ -2489,7 +2506,7 @@ docker-compose exec dovecot-mailcow doveadm index -A '*'
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2605,7 +2622,7 @@ docker-compose exec dovecot-mailcow doveadm index -A '*'
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2494,12 +2511,12 @@ Fügen Sie die Einstellung ein, gefolgt von dem neuen Wert. Um zum Beispiel das
|
||||||
</div>
|
</div>
|
||||||
<h3 id="dovecot-neu-laden">Dovecot neu laden<a class="headerlink" href="#dovecot-neu-laden" title="Permanent link">¶</a></h3>
|
<h3 id="dovecot-neu-laden">Dovecot neu laden<a class="headerlink" href="#dovecot-neu-laden" title="Permanent link">¶</a></h3>
|
||||||
<p>Nun laden Sie Dovecot neu:</p>
|
<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>
|
</code></pre></div>
|
||||||
<div class="admonition info">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<p class="admonition-title">Info</p>
|
||||||
<p>Sie können den Wert dieser Einstellung überprüfen mit
|
<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 "imap_idle_notify_interval"
|
<div class="highlight"><pre><span></span><code>docker compose exec dovecot-mailcow dovecot -a | grep "imap_idle_notify_interval"
|
||||||
</code></pre></div>
|
</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>
|
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>
|
</div>
|
||||||
|
@ -2509,7 +2526,7 @@ Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn g
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2625,7 +2642,7 @@ Wenn Sie den Wert nicht geändert haben, sollte er auf 2m stehen. Wenn Sie ihn g
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2375,7 +2392,7 @@
|
||||||
<p>Die Mails werden komprimiert (lz4) und verschlüsselt gespeichert. Das Schlüsselpaar ist in crypt-vol-1 zu finden.</p>
|
<p>Die Mails werden komprimiert (lz4) und verschlüsselt gespeichert. Das Schlüsselpaar ist in crypt-vol-1 zu finden.</p>
|
||||||
</div>
|
</div>
|
||||||
<p>Wenn Sie vorhandene maildir-Dateien entschlüsseln/verschlüsseln wollen, können Sie das folgende Skript auf eigene Gefahr verwenden:</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
|
<div class="highlight"><pre><span></span><code># Entschlüsseln Sie /var/vmail
|
||||||
find /var/vmail/ -type f -regextype egrep -regex '.*S=.*W=.*' | while read -r file; do
|
find /var/vmail/ -type f -regextype egrep -regex '.*S=.*W=.*' | while read -r file; do
|
||||||
if [[ $(head -c7 "$file") == "CRYPTED" ]]; then
|
if [[ $(head -c7 "$file") == "CRYPTED" ]]; then
|
||||||
|
@ -2408,7 +2425,7 @@ done
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-07-23 01:17:49</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2524,7 +2541,7 @@ done
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2589,7 +2606,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2435,7 +2452,7 @@
|
||||||
<p><code>:INDEXPVT=~/public</code> kann weggelassen werden, wenn die Flags, die pro Benutzer gesehen werden, nicht gewünscht sind.</p>
|
<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>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>
|
<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 "Public/Develcow" "authenticated" 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 "Public/Develcow" "authenticated" lookup read write write-seen write-deleted insert post delete expunge create
|
||||||
</code></pre></div>
|
</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>
|
<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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
|
@ -2452,7 +2469,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-07-27 11:30:11</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2568,7 +2585,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2377,7 +2394,7 @@
|
||||||
<div class="highlight"><pre><span></span><code>DOVECOT_MASTER_USER=mymasteruser
|
<div class="highlight"><pre><span></span><code>DOVECOT_MASTER_USER=mymasteruser
|
||||||
DOVECOT_MASTER_PASS=mysecretpass
|
DOVECOT_MASTER_PASS=mysecretpass
|
||||||
</code></pre></div>
|
</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>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>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>)
|
<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>)
|
||||||
|
@ -2388,7 +2405,7 @@ Es wird kein Hauptbenutzer benötigt.</p>
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2504,7 +2521,7 @@ Es wird kein Hauptbenutzer benötigt.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2464,14 +2481,14 @@
|
||||||
<p class="admonition-title">Warning</p>
|
<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>
|
<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>
|
</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
|
<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
|
ln -s /mnt/volume-xy/vmail_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie anschließend mailcow.</p>
|
<p>Starten Sie anschließend mailcow.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<h2 id="der-alte-weg">Der "alte" Weg<a class="headerlink" href="#der-alte-weg" title="Permanent link">¶</a></h2>
|
<h2 id="der-alte-weg">Der "alte" Weg<a class="headerlink" href="#der-alte-weg" title="Permanent link">¶</a></h2>
|
||||||
<p>Wenn man einen anderen Ordner für das vmail-Volume verwenden möchte, kann man eine <code>docker-compose.override.yml</code> Datei erstellen und den folgenden Inhalt hinzufügen:</p>
|
<p>Wenn man einen anderen Ordner für das vmail-Volume verwenden möchte, kann man eine <code>docker compose.override.yml</code> Datei erstellen und den folgenden Inhalt hinzufügen:</p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
volumes:
|
volumes:
|
||||||
vmail-vol-1:
|
vmail-vol-1:
|
||||||
|
@ -2502,10 +2519,10 @@ volumes:
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<ul>
|
<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>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>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>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>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2513,7 +2530,7 @@ volumes:
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2629,7 +2646,7 @@ volumes:
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2551,8 +2568,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>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>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>
|
<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
|
<div class="highlight"><pre><span></span><code>docker compose restart nginx-mailcow
|
||||||
docker-compose restart php-fpm-mailcow
|
docker compose restart php-fpm-mailcow
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2560,7 +2577,7 @@ docker-compose restart php-fpm-mailcow
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2676,7 +2693,7 @@ docker-compose restart php-fpm-mailcow
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2393,19 +2410,19 @@
|
||||||
</span> }
|
</span> }
|
||||||
}
|
}
|
||||||
</code></pre></div>
|
</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>.
|
<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>
|
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
|
<div class="highlight"><pre><span></span><code>ADDITIONAL_SAN=webmail.example.org
|
||||||
</code></pre></div>
|
</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2521,7 +2538,7 @@ Fügen Sie <code>webmail.example.org</code> zu diesem Array hinzu, verwenden Sie
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2372,7 +2389,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>Ö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>
|
<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>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2380,7 +2397,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2496,7 +2513,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2495,7 +2512,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2445,7 +2462,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 [...]
|
<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>
|
</code></pre></div></p>
|
||||||
<p>Postmap auf check_sasl_access ausführen:</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>
|
</code></pre></div>
|
||||||
<p>Starten Sie den Postfix-Container neu.</p>
|
<p>Starten Sie den Postfix-Container neu.</p>
|
||||||
|
|
||||||
|
@ -2454,7 +2471,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2570,7 +2587,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2374,7 +2391,7 @@
|
||||||
<p>Postfix wird sich einmal nach dem Start von postfix-mailcow über doppelte Werte beschweren, dies ist beabsichtigt.</p>
|
<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>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>
|
<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>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2382,7 +2399,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2498,7 +2515,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2503,7 +2520,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2504,7 +2521,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2604,7 +2621,7 @@ Beachten Sie, dass die Anmeldedaten im Klartext gespeichert werden.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2472,14 +2489,14 @@
|
||||||
<p>Bearbeiten Sie <code>data/conf/postfix/extra.cf</code>:</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 192.168.2.0/24
|
<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>
|
</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">¶</a></h3>
|
<h3 id="ipv6-hostssubnets">IPv6-Hosts/Subnets<a class="headerlink" href="#ipv6-hostssubnets" title="Permanent link">¶</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>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>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>
|
<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
|
<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>
|
</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">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<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>
|
<p>Weitere Informationen über mynetworks finden Sie in der <a href="http://www.postfix.org/postconf.5.html#mynetworks">Postfix-Dokumentation</a>.</p>
|
||||||
|
@ -2490,7 +2507,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2606,7 +2623,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2500,13 +2517,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>
|
<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">¶</a></h2>
|
<h2 id="client">Client<a class="headerlink" href="#client" title="Permanent link">¶</a></h2>
|
||||||
<p>Um sich mit dem redis cli zu verbinden, führen Sie aus:</p>
|
<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>
|
</code></pre></div>
|
||||||
<h3 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">¶</a></h3>
|
<h3 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">¶</a></h3>
|
||||||
<p>Hier sind einige nützliche Befehle für den redis-cli zur Fehlersuche:</p>
|
<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">¶</a></h5>
|
<h5 id="monitor">MONITOR<a class="headerlink" href="#monitor" title="Permanent link">¶</a></h5>
|
||||||
<p>Überwacht alle vom Server empfangenen Anfragen in Echtzeit:</p>
|
<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> monitor
|
127.0.0.1:6379> monitor
|
||||||
OK
|
OK
|
||||||
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
|
||||||
|
@ -2529,7 +2546,7 @@ PONG
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-06 22:10:21</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2645,7 +2662,7 @@ PONG
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2552,11 +2569,11 @@ 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">¶</a></h3>
|
<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">¶</a></h3>
|
||||||
<p>Sie können einen Einzeiler verwenden, um Mails im Klartextformat (unkomprimiert) zu lernen:</p>
|
<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>
|
<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 < <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 < <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
|
||||||
<span class="c1"># Spam</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 < <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 < <span class="nv">$file</span><span class="p">;</span> <span class="k">done</span>
|
||||||
</code></pre></div>
|
</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>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
|
<p>``bash
|
||||||
for file in /data/old_mail/.Junk/cur/*; do rspamc learn_spam < zcat $file; done
|
for file in /data/old_mail/.Junk/cur/*; do rspamc learn_spam < zcat $file; done
|
||||||
<div class="highlight"><pre><span></span><code>### Gelernte Daten zurücksetzen (Bayes, Neural)
|
<div class="highlight"><pre><span></span><code>### Gelernte Daten zurücksetzen (Bayes, Neural)
|
||||||
|
@ -2570,15 +2587,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/
|
cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
|
||||||
</code></pre></div></p>
|
</code></pre></div></p>
|
||||||
<p><strong>Bayes-Daten zurücksetzen</strong></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">'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'</span>
|
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'</span>
|
||||||
docker-compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">'redis-cli --scan --pattern RS* | xargs redis-cli del'</span>
|
docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">'redis-cli --scan --pattern RS* | xargs redis-cli del'</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p><strong>Neurale Daten zurücksetzen</strong></p>
|
<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">'redis-cli --scan --pattern rn_* | xargs redis-cli del'</span>
|
<div class="highlight"><pre><span></span><code>docker compose <span class="nb">exec</span> redis-mailcow sh -c <span class="s1">'redis-cli --scan --pattern rn_* | xargs redis-cli del'</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p><strong>Fuzzy-Daten zurücksetzen</strong></p>
|
<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>
|
<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="c1"># In redis-cli:</span>
|
||||||
<span class="m">127</span>.0.0.1:6379> EVAL <span class="s2">"for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end"</span> <span class="m">0</span> fuzzy*
|
<span class="m">127</span>.0.0.1:6379> EVAL <span class="s2">"for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end"</span> <span class="m">0</span> fuzzy*
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
@ -2589,8 +2606,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>
|
<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">¶</a></h2>
|
<h2 id="cli-werkzeuge">CLI-Werkzeuge<a class="headerlink" href="#cli-werkzeuge" title="Permanent link">¶</a></h2>
|
||||||
<p>``bash
|
<p>``bash
|
||||||
docker-compose exec rspamd-mailcow rspamc --help
|
docker compose exec rspamd-mailcow rspamc --help
|
||||||
docker-compose exec rspamd-mailcow rspamadm --help
|
docker compose exec rspamd-mailcow rspamadm --help
|
||||||
<div class="highlight"><pre><span></span><code>## Greylisting deaktivieren
|
<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.
|
Nur Nachrichten mit einer höheren Punktzahl werden als Greylisting betrachtet (soft rejected). Es ist schlechte Praxis, Greylisting zu deaktivieren.
|
||||||
|
@ -2604,26 +2621,26 @@ Fügen Sie die Zeile hinzu:
|
||||||
```cpp
|
```cpp
|
||||||
enabled = false;
|
enabled = false;
|
||||||
</code></pre></div></p>
|
</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">¶</a></h2>
|
<h2 id="spamfilter-schwellenwerte-global">Spamfilter-Schwellenwerte (global)<a class="headerlink" href="#spamfilter-schwellenwerte-global" title="Permanent link">¶</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>
|
<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>
|
<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">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>
|
<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>
|
</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>Bestehende Einstellungen der Benutzer werden nicht überschrieben!</p>
|
||||||
<p>Um benutzerdefinierte Schwellenwerte zurückzusetzen, führen Sie aus:</p>
|
<p>Um benutzerdefinierte Schwellenwerte zurückzusetzen, führen Sie aus:</p>
|
||||||
<div class="highlight"><pre><span></span><code>source mailcow.conf
|
<div class="highlight"><pre><span></span><code>source mailcow.conf
|
||||||
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
|
||||||
# oder:
|
# oder:
|
||||||
# docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
# docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h2 id="benutzerdefinierte-ablehnungsnachrichten">Benutzerdefinierte Ablehnungsnachrichten<a class="headerlink" href="#benutzerdefinierte-ablehnungsnachrichten" title="Permanent link">¶</a></h2>
|
<h2 id="benutzerdefinierte-ablehnungsnachrichten">Benutzerdefinierte Ablehnungsnachrichten<a class="headerlink" href="#benutzerdefinierte-ablehnungsnachrichten" title="Permanent link">¶</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>
|
<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 = "Meine eigene Ablehnungsnachricht";
|
<div class="highlight"><pre><span></span><code>reject_message = "Meine eigene Ablehnungsnachricht";
|
||||||
</code></pre></div>
|
</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>
|
<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>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
|
@ -2643,27 +2660,27 @@ docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "del
|
||||||
}
|
}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<ol>
|
<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>
|
</ol>
|
||||||
<h2 id="verwerfen-statt-zuruckweisen">Verwerfen statt zurückweisen<a class="headerlink" href="#verwerfen-statt-zuruckweisen" title="Permanent link">¶</a></h2>
|
<h2 id="verwerfen-statt-zuruckweisen">Verwerfen statt zurückweisen<a class="headerlink" href="#verwerfen-statt-zuruckweisen" title="Permanent link">¶</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>
|
<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;
|
<div class="highlight"><pre><span></span><code>discard_on_reject = true;
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie Rspamd neu:</p>
|
<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>
|
</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">¶</a></h2>
|
<h2 id="losche-alle-ratelimit-schlussel">Lösche alle Ratelimit-Schlüssel<a class="headerlink" href="#losche-alle-ratelimit-schlussel" title="Permanent link">¶</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>
|
<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 >=4.) löscht im Hintergrund
|
# Unlink (verfügbar in Redis >=4.) löscht im Hintergrund
|
||||||
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
redis-cli --scan --pattern RL* | xargs redis-cli unlink
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie Rspamd neu:</p>
|
<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>
|
</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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
<p>Sollte nur zur Fehlersuche verwendet werden!</p>
|
<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 "update quarantine set notified = 0;"
|
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
|
||||||
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
redis-cli -h redis DEL Q_LAST_NOTIFIED
|
||||||
quarantine_notify.py
|
quarantine_notify.py
|
||||||
|
@ -2675,14 +2692,14 @@ quarantine_notify.py
|
||||||
<p>Bearbeiten Sie <code>data/conf/rspamd/local.d/history_redis.conf</code>:</p>
|
<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
|
<div class="highlight"><pre><span></span><code>nrows = 1000; # Ändern Sie diesen Wert
|
||||||
</code></pre></div>
|
</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-06 22:09:53</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2798,7 +2815,7 @@ quarantine_notify.py
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2509,7 +2526,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>
|
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>
|
<ol>
|
||||||
<li>Bearbeiten Sie <code>data/conf/sogo/sogo.conf</code> und fügen Sie <code>SOGoUIxDebugEnabled = YES;</code> ein.</li>
|
<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>SOGo im Browser öffnen</li>
|
||||||
<li>öffnen Sie die Entwicklerkonsole des Browsers, normalerweise ist die Tastenkombination F12</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>
|
<li>nur wenn Sie Firefox benutzen: schreiben Sie mit der Hand in die Entwicklerkonsole <code>allow pasting</code> und drücken Sie Enter</li>
|
||||||
|
@ -2524,7 +2541,7 @@ Nachdem Sie <code>data/conf/sogo/custom-theme.js</code> modifiziert und Änderun
|
||||||
<li>Öffnen Sie den Texteditor und fügen Sie die Daten aus der Zwischenablage ein (Strg+V), Sie sollten ein minimiertes CSS erhalten, speichern Sie es</li>
|
<li>Öffnen Sie den Texteditor und fügen Sie die Daten aus der Zwischenablage ein (Strg+V), Sie sollten ein minimiertes CSS erhalten, speichern Sie es</li>
|
||||||
<li>kopieren Sie die CSS-Datei auf den Mailcow-Server <code>data/conf/sogo/custom-theme.css</code></li>
|
<li>kopieren Sie die CSS-Datei auf den Mailcow-Server <code>data/conf/sogo/custom-theme.css</code></li>
|
||||||
<li>editiere <code>data/conf/sogo/sogo.conf</code> und setze <code>SOGoUIxDebugEnabled = NO;</code></li>
|
<li>editiere <code>data/conf/sogo/sogo.conf</code> und setze <code>SOGoUIxDebugEnabled = NO;</code></li>
|
||||||
<li>Anhängen/Erstellen von <code>docker-compose.override.yml</code> mit:
|
<li>Anhängen/Erstellen von <code>docker compose.override.yml</code> mit:
|
||||||
<div class="highlight"><pre><span></span><code>Version: '2.1'
|
<div class="highlight"><pre><span></span><code>Version: '2.1'
|
||||||
|
|
||||||
Dienste:
|
Dienste:
|
||||||
|
@ -2532,8 +2549,8 @@ Dienste:
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
- ./data/conf/sogo/custom-theme.css:/usr/lib/GNUstep/SOGo/WebServerResources/css/theme-default.css:z
|
||||||
</code></pre></div></li>
|
</code></pre></div></li>
|
||||||
<li>führen Sie <code>docker-compose up -d</code> aus</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>Ausführen von <code>docker compose restart memcached-mailcow</code></li>
|
||||||
</ol>
|
</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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
<ol>
|
<ol>
|
||||||
|
@ -2558,20 +2575,20 @@ Dienste:
|
||||||
und ersetzen Sie es durch:
|
und ersetzen Sie es durch:
|
||||||
<div class="highlight"><pre><span></span><code> $mdThemingProvider.theme('default');
|
<div class="highlight"><pre><span></span><code> $mdThemingProvider.theme('default');
|
||||||
</code></pre></div></li>
|
</code></pre></div></li>
|
||||||
<li>Entfernen Sie aus <code>docker-compose.override.yml</code> Volume Mount in <code>sogo-mailcow</code>:
|
<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
|
<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>
|
</code></pre></div></li>
|
||||||
<li>führen Sie <code>docker-compose up -d</code> aus</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>Starten Sie <code>docker compose restart memcached-mailcow</code>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h2 id="favicon-andern">Favicon ändern<a class="headerlink" href="#favicon-andern" title="Permanent link">¶</a></h2>
|
<h2 id="favicon-andern">Favicon ändern<a class="headerlink" href="#favicon-andern" title="Permanent link">¶</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.
|
<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.
|
<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.
|
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">¶</a></h2>
|
<h2 id="logo-andern">Logo ändern<a class="headerlink" href="#logo-andern" title="Permanent link">¶</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).
|
<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">¶</a></h2>
|
<h2 id="domains-verbinden-untereinander-sichtbar-machen">Domains verbinden (untereinander sichtbar machen)<a class="headerlink" href="#domains-verbinden-untereinander-sichtbar-machen" title="Permanent link">¶</a></h2>
|
||||||
<p>Domains sind normalerweise voneinander isoliert.</p>
|
<p>Domains sind normalerweise voneinander isoliert.</p>
|
||||||
<p>Sie können das ändern, indem Sie <code>data/conf/sogo/sogo.conf</code> modifizieren:</p>
|
<p>Sie können das ändern, indem Sie <code>data/conf/sogo/sogo.conf</code> modifizieren:</p>
|
||||||
|
@ -2586,19 +2603,19 @@ Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container
|
||||||
(beispiel.org, beispiel.com, beispiel.net)
|
(beispiel.org, beispiel.com, beispiel.net)
|
||||||
);
|
);
|
||||||
</code></pre></div>
|
</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">¶</a></h2>
|
<h2 id="deaktivieren-sie-die-passwortanderung">Deaktivieren Sie die Passwortänderung<a class="headerlink" href="#deaktivieren-sie-die-passwortanderung" title="Permanent link">¶</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>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">¶</a></h2>
|
<h2 id="totp-zurucksetzen-totp-deaktivieren">TOTP zurücksetzen / TOTP deaktivieren<a class="headerlink" href="#totp-zurucksetzen-totp-deaktivieren" title="Permanent link">¶</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2714,7 +2731,7 @@ Nachdem Sie diese Datei ersetzt haben, müssen Sie SOGo und Memcached Container
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2447,21 +2464,21 @@
|
||||||
forward-addr: 8.8.4.4 # VERWENDET KEINE ÖFFENTLICHEN DNS-SERVER - NUR EIN BEISPIEL
|
forward-addr: 8.8.4.4 # VERWENDET KEINE ÖFFENTLICHEN DNS-SERVER - NUR EIN BEISPIEL
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Unbound neu starten:</p>
|
<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>
|
</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">¶</a></h2>
|
<h2 id="methode-b-uberschreiben-der-datei">Methode B, Überschreiben der Datei<a class="headerlink" href="#methode-b-uberschreiben-der-datei" title="Permanent link">¶</a></h2>
|
||||||
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
|
<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 .
|
cp helper-scripts/docker compose.override.yml.d/EXTERNAL_DNS/docker compose.override.yml .
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Bearbeiten Sie <code>docker-compose.override.yml</code> und passen Sie die IP an.</p>
|
<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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2577,7 +2594,7 @@ cp helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.over
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2669,7 +2686,7 @@
|
||||||
|
|
||||||
<h1>Thresholds</h1>
|
<h1>Thresholds</h1>
|
||||||
|
|
||||||
<p>Watchdog verwendet Standardwerte für alle in <code>docker-compose.yml</code> definierten Thresholde.</p>
|
<p>Watchdog verwendet Standardwerte für alle in <code>docker compose.yml</code> definierten Thresholde.</p>
|
||||||
<p>Die Standardwerte sind für die meisten Konfigurationen geeignet.
|
<p>Die Standardwerte sind für die meisten Konfigurationen geeignet.
|
||||||
Beispiel:
|
Beispiel:
|
||||||
<div class="highlight"><pre><span></span><code>- NGINX_THRESHOLD=${NGINX_THRESHOLD:-5}
|
<div class="highlight"><pre><span></span><code>- NGINX_THRESHOLD=${NGINX_THRESHOLD:-5}
|
||||||
|
@ -2691,7 +2708,7 @@ Beispiel:
|
||||||
- MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
|
- MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
|
||||||
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
- MAILQ_CRIT=${MAILQ_CRIT:-30}
|
||||||
</code></pre></div></p>
|
</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">¶</a></h3>
|
<h3 id="threshold-beschreibungen">Threshold Beschreibungen<a class="headerlink" href="#threshold-beschreibungen" title="Permanent link">¶</a></h3>
|
||||||
<h4 id="nginx_threshold">NGINX_THRESHOLD<a class="headerlink" href="#nginx_threshold" title="Permanent link">¶</a></h4>
|
<h4 id="nginx_threshold">NGINX_THRESHOLD<a class="headerlink" href="#nginx_threshold" title="Permanent link">¶</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>
|
<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>
|
||||||
|
@ -2733,7 +2750,7 @@ Beispiel:
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2849,7 +2866,7 @@ Beispiel:
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2500,7 +2517,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2516,7 +2533,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2494,7 +2511,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2579,7 +2596,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2576,7 +2593,7 @@ Sollte das der Fall sein empfiehlt es sich mit einem Klick auf <code>Zurücksetz
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2504,7 +2521,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2495,7 +2512,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2499,7 +2516,7 @@ Für eine domainweite Black- und Whitelist lesen Sie bitte unsere Anleitung zu <
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2562,7 +2579,7 @@ index e047136e..933c4137 100644
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2602,7 +2619,7 @@ Um sie zu sehen, klicken Sie einfach auf das kleine Plus-Symbol auf der linken S
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2627,7 +2644,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">¶</a></h3>
|
<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">¶</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>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>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>
|
<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">¶</a></h5>
|
<h5 id="beispiel">Beispiel:<a class="headerlink" href="#beispiel" title="Permanent link">¶</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>.
|
<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>.
|
||||||
|
@ -2660,7 +2677,7 @@ Diese Herstellerzertifikate werden nur zur Überprüfung der Originalhardware ve
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2776,7 +2793,7 @@ Diese Herstellerzertifikate werden nur zur Überprüfung der Originalhardware ve
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2388,10 +2405,10 @@
|
||||||
}
|
}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Falls Sie den Parameter HTTP_BIND geändert haben, erstellen Sie den Container neu:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p>Andernfalls starten Sie Nginx neu:</p>
|
<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>
|
</code></pre></div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -2399,7 +2416,7 @@
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2515,7 +2532,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2536,7 +2553,7 @@ $autodiscover_config = array(
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2379,7 +2396,7 @@ smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||||
<div class="highlight"><pre><span></span><code>ssl_min_protocol = TLSv1
|
<div class="highlight"><pre><span></span><code>ssl_min_protocol = TLSv1
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie die betroffenen Dienste neu:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p>Tipp: Sie können TLS 1.2 in Windows 7 aktivieren.</p>
|
<p>Tipp: Sie können TLS 1.2 in Windows 7 aktivieren.</p>
|
||||||
|
|
||||||
|
@ -2388,7 +2405,7 @@ smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2504,7 +2521,7 @@ smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2498,7 +2515,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2495,7 +2512,7 @@ Wenn Sie einen öffentlichen Resolver wie Google 4x8, OpenDNS oder einen anderen
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2509,7 +2526,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2474,14 +2491,14 @@ Wenn SOGo deaktiviert ist, können alle unten aufgeführten Hashing-Methoden von
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Ich habe die Passwort-Hashes in der SQL-Tabelle "Mailbox" geändert und kann mich nicht anmelden.</p>
|
<p>Ich habe die Passwort-Hashes in der SQL-Tabelle "Mailbox" geändert und kann mich nicht anmelden.</p>
|
||||||
</blockquote>
|
</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2597,7 +2614,7 @@ Wenn SOGo deaktiviert ist, können alle unten aufgeführten Hashing-Methoden von
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2571,7 +2588,7 @@ Ihnen den Zugang wie oben beschrieben gewähren.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2371,10 +2388,10 @@
|
||||||
<p>Dies wird <strong>NUR</strong> empfohlen, wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben!</p>
|
<p>Dies wird <strong>NUR</strong> empfohlen, wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben!</p>
|
||||||
<p>Wenn Sie es wirklich brauchen, können Sie die Verwendung von IPv6 in der Compose-Datei deaktivieren.
|
<p>Wenn Sie es wirklich brauchen, können Sie die Verwendung von IPv6 in der Compose-Datei deaktivieren.
|
||||||
Zusätzlich können Sie auch den Start des Containers "ipv6nat-mailcow" deaktivieren, da er nicht benötigt wird, wenn Sie IPv6 nicht verwenden.</p>
|
Zusätzlich können Sie auch den Start des Containers "ipv6nat-mailcow" deaktivieren, da er nicht benötigt wird, wenn Sie IPv6 nicht verwenden.</p>
|
||||||
<p>Anstatt die Datei docker-compose.yml direkt zu bearbeiten, ist es besser, eine Override-Datei zu erstellen
|
<p>Anstatt die Datei docker compose.yml direkt zu bearbeiten, ist es besser, eine Override-Datei zu erstellen
|
||||||
zu erstellen und Ihre Änderungen am Dienst dort zu implementieren. Leider scheint dies im Moment nur für Dienste zu funktionieren, nicht für Netzwerkeinstellungen.</p>
|
zu erstellen und Ihre Änderungen am Dienst dort zu implementieren. Leider scheint dies im Moment nur für Dienste zu funktionieren, nicht für Netzwerkeinstellungen.</p>
|
||||||
<p>Um IPv6 im mailcow-Netzwerk zu deaktivieren, öffnen Sie docker-compose.yml mit Ihrem bevorzugten Texteditor und suchen Sie nach dem Netzwerk-Abschnitt (er befindet sich am Ende der Datei). </p>
|
<p>Um IPv6 im mailcow-Netzwerk zu deaktivieren, öffnen Sie docker compose.yml mit Ihrem bevorzugten Texteditor und suchen Sie nach dem Netzwerk-Abschnitt (er befindet sich am Ende der Datei). </p>
|
||||||
<p><strong>1.</strong> Ändern Sie docker-compose.yml</p>
|
<p><strong>1.</strong> Ändern Sie docker compose.yml</p>
|
||||||
<p>Ändern Sie <code>enable_ipv6: true</code> in <code>enable_ipv6: false</code>:</p>
|
<p>Ändern Sie <code>enable_ipv6: true</code> in <code>enable_ipv6: false</code>:</p>
|
||||||
<div class="highlight"><pre><span></span><code>networks:
|
<div class="highlight"><pre><span></span><code>networks:
|
||||||
mailcow-network:
|
mailcow-network:
|
||||||
|
@ -2383,10 +2400,10 @@ zu erstellen und Ihre Änderungen am Dienst dort zu implementieren. Leider schei
|
||||||
[...]
|
[...]
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p><strong>2.</strong> ipv6nat-mailcow deaktivieren</p>
|
<p><strong>2.</strong> ipv6nat-mailcow deaktivieren</p>
|
||||||
<p>Um den ipv6nat-mailcow Container ebenfalls zu deaktivieren, gehen Sie in Ihr mailcow Verzeichnis und erstellen Sie eine neue Datei namens "docker-compose.override.yml": </p>
|
<p>Um den ipv6nat-mailcow Container ebenfalls zu deaktivieren, gehen Sie in Ihr mailcow Verzeichnis und erstellen Sie eine neue Datei namens "docker compose.override.yml": </p>
|
||||||
<p><strong>HINWEIS:</strong> Wenn Sie bereits eine Override-Datei haben, erstellen Sie diese natürlich nicht neu, sondern fügen Sie die untenstehenden Zeilen entsprechend in Ihre bestehende Datei ein!</p>
|
<p><strong>HINWEIS:</strong> Wenn Sie bereits eine Override-Datei haben, erstellen Sie diese natürlich nicht neu, sondern fügen Sie die untenstehenden Zeilen entsprechend in Ihre bestehende Datei ein!</p>
|
||||||
<div class="highlight"><pre><span></span><code># cd /opt/mailcow-dockerized
|
<div class="highlight"><pre><span></span><code># cd /opt/mailcow-dockerized
|
||||||
# touch docker-compose.override.yml
|
# touch docker compose.override.yml
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Öffnen Sie die Datei in Ihrem bevorzugten Texteditor und tragen Sie folgendes ein:</p>
|
<p>Öffnen Sie die Datei in Ihrem bevorzugten Texteditor und tragen Sie folgendes ein:</p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
|
@ -2398,8 +2415,8 @@ services:
|
||||||
entrypoint: ["echo", "ipv6nat disabled in compose.override.yml"]
|
entrypoint: ["echo", "ipv6nat disabled in compose.override.yml"]
|
||||||
</code></pre></div>
|
</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>
|
<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
|
<div class="highlight"><pre><span></span><code>docker compose down
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p><strong>3.</strong> Deaktivieren Sie IPv6 in unbound-mailcow</p>
|
<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>
|
<p>Bearbeiten Sie <code>data/conf/unbound/unbound.conf</code> und setzen Sie <code>do-ip6</code> auf "no":</p>
|
||||||
|
@ -2409,7 +2426,7 @@ docker-compose up -d
|
||||||
[...]
|
[...]
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>unbound neu starten:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p><strong>4.</strong> Deaktivieren Sie IPv6 in postfix-mailcow</p>
|
<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>
|
<p>Erstellen Sie <code>data/conf/postfix/extra.cf</code> und setzen Sie <code>smtp_address_preference</code> auf <code>ipv4</code>:</p>
|
||||||
|
@ -2417,7 +2434,7 @@ docker-compose up -d
|
||||||
inet_protocols = ipv4
|
inet_protocols = ipv4
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie Postfix neu:</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>
|
</code></pre></div>
|
||||||
<p><strong>5.</strong> Wenn im Docker Daemon IPv6 komplett deaktiviert ist:</p>
|
<p><strong>5.</strong> Wenn im Docker Daemon IPv6 komplett deaktiviert ist:</p>
|
||||||
<p>Folgende NGINX, Dovecot und Php-fpm Konfigurationsdateien anpassen</p>
|
<p>Folgende NGINX, Dovecot und Php-fpm Konfigurationsdateien anpassen</p>
|
||||||
|
@ -2433,7 +2450,7 @@ sed -i 's/\[::\]://g' data/conf/phpfpm/php-fpm.d/pools.conf
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2549,7 +2566,7 @@ sed -i 's/\[::\]://g' data/conf/phpfpm/php-fpm.d/pools.conf
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2510,7 +2527,7 @@
|
||||||
keys_expire = 2d;
|
keys_expire = 2d;
|
||||||
}
|
}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Erstellen oder ändern Sie <code>docker-compose.override.yml</code> im mailcow-dockerized Basisverzeichnis:</p>
|
<p>Erstellen oder ändern Sie <code>docker compose.override.yml</code> im mailcow-dockerized Basisverzeichnis:</p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -2525,7 +2542,7 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
- rspamd-mailcow
|
- rspamd-mailcow
|
||||||
</code></pre></div>
|
</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">¶</a></h2>
|
<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">¶</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>
|
<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 {
|
<div class="highlight"><pre><span></span><code>reporting {
|
||||||
|
@ -2542,20 +2559,20 @@ services:
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">¶</a></h2>
|
<h2 id="fehlersuche">Fehlersuche<a class="headerlink" href="#fehlersuche" title="Permanent link">¶</a></h2>
|
||||||
<p>Prüfen Sie, wann der Berichtsplan zuletzt ausgeführt wurde:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p>Sehen Sie sich die letzte Berichtsausgabe an:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p>Manuelles Auslösen eines DMARC-Berichts:</p>
|
<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>
|
</code></pre></div>
|
||||||
<p>Bestätigen Sie, dass Rspamd Daten in Redis aufgezeichnet hat:
|
<p>Bestätigen Sie, dass Rspamd Daten in Redis aufgezeichnet hat:
|
||||||
Ändern Sie <code>20220428</code> in ein anderes interessantes Datum zum schauen.</p>
|
Ä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 "dmarc_idx;20220428"
|
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow redis-cli SMEMBERS "dmarc_idx;20220428"
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Nehmen Sie eine der Zeilen aus der Ausgabe, die Sie interessiert, und fordern Sie sie an, z. B.:</p>
|
<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 "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
<div class="highlight"><pre><span></span><code>docker compose exec redis-mailcow redis-cli ZRANGE "dmarc_rpt;microsoft.com;mailto:d@rua.agari.com;20220428" 0 49
|
||||||
</code></pre></div>
|
</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">¶</a></h2>
|
<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">¶</a></h2>
|
||||||
<p>Im obigen Beispiel werden die Berichte einmal alle 24 Stunden gesendet.</p>
|
<p>Im obigen Beispiel werden die Berichte einmal alle 24 Stunden gesendet.</p>
|
||||||
|
@ -2563,13 +2580,13 @@ services:
|
||||||
<p>Um den Zeitplan zu ändern:</p>
|
<p>Um den Zeitplan zu ändern:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
<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>
|
<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>
|
||||||
<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>
|
||||||
<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>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h2 id="dmarc-berichterstattung-deaktivieren">DMARC-Berichterstattung deaktivieren<a class="headerlink" href="#dmarc-berichterstattung-deaktivieren" title="Permanent link">¶</a></h2>
|
<h2 id="dmarc-berichterstattung-deaktivieren">DMARC-Berichterstattung deaktivieren<a class="headerlink" href="#dmarc-berichterstattung-deaktivieren" title="Permanent link">¶</a></h2>
|
||||||
|
@ -2579,10 +2596,10 @@ services:
|
||||||
<p>Setzen Sie <code>enabled</code> auf <code>false</code> in <code>data/conf/rspamd/local.d/dmarc.conf</code>.</p>
|
<p>Setzen Sie <code>enabled</code> auf <code>false</code> in <code>data/conf/rspamd/local.d/dmarc.conf</code>.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<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>
|
<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>
|
||||||
<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>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
@ -2591,7 +2608,7 @@ services:
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2707,7 +2724,7 @@ services:
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2463,11 +2480,11 @@ DOVEADM_PORT=127.0.0.1:19991
|
||||||
SQL_PORT=127.0.0.1:13306
|
SQL_PORT=127.0.0.1:13306
|
||||||
SOLR_PORT=127.0.0.1:18983
|
SOLR_PORT=127.0.0.1:18983
|
||||||
</code></pre></div>
|
</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">¶</a></h2>
|
<h2 id="ipv6-binding">IPv6-Binding<a class="headerlink" href="#ipv6-binding" title="Permanent link">¶</a></h2>
|
||||||
<p>Das Ändern von IPv6-Bindings ist anders als bei IPv4. Auch dies hat einen technischen Hintergrund.</p>
|
<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>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>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 <strong>beispielhafte</strong> IPv6 <strong>2001:db8:dead:beef::123</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 <u><strong>nicht</strong></u> verändert werden darf.</p>
|
<p>Es wird eine <strong>beispielhafte</strong> IPv6 <strong>2001:db8:dead:beef::123</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 <u><strong>nicht</strong></u> verändert werden darf.</p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
services:
|
services:
|
||||||
|
@ -2491,14 +2508,14 @@ services:
|
||||||
- '[2001:db8:dead:beef::123]:80:80'
|
- '[2001:db8:dead:beef::123]:80:80'
|
||||||
- '[2001:db8:dead:beef::123]:443:443'
|
- '[2001:db8:dead:beef::123]:443:443'
|
||||||
</code></pre></div>
|
</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>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2614,7 +2631,7 @@ services:
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2505,7 +2522,7 @@ Das Relaying über diese Schnittstelle ist notwendig (anstatt - zum Beispiel - d
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -562,10 +579,10 @@
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#uber-docker-composeoverrideyml" class="md-nav__link">
|
<a href="#uber-docker-composeoverrideyml" class="md-nav__link">
|
||||||
Über docker-compose.override.yml
|
Über docker compose.override.yml
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Über docker-compose.override.yml">
|
<nav class="md-nav" aria-label="Über docker compose.override.yml">
|
||||||
<ul class="md-nav__list">
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
|
@ -2454,10 +2471,10 @@
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#uber-docker-composeoverrideyml" class="md-nav__link">
|
<a href="#uber-docker-composeoverrideyml" class="md-nav__link">
|
||||||
Über docker-compose.override.yml
|
Über docker compose.override.yml
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Über docker-compose.override.yml">
|
<nav class="md-nav" aria-label="Über docker compose.override.yml">
|
||||||
<ul class="md-nav__list">
|
<ul class="md-nav__list">
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
|
@ -2513,7 +2530,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>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.
|
<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>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>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>
|
<p>Am Ende wird jede Zeile der Logs den Docker-Daemon erreichen - ungefiltert.</p>
|
||||||
|
@ -2526,9 +2543,9 @@ Führen Sie <code>docker-compose logs --help</code> aus, um mehr zu erfahren. </
|
||||||
ohne die Fähigkeit zu verlieren, Logs von der UI zu lesen oder verdächtige Clients mit netfilter-mailcow zu sperren.</p>
|
ohne die Fähigkeit zu verlieren, Logs von der UI zu lesen oder verdächtige Clients mit netfilter-mailcow zu sperren.</p>
|
||||||
<p>Redis-Schlüssel enthalten nur Logs von Anwendungen und filtern Systemmeldungen heraus (man denke an Cron etc.).</p>
|
<p>Redis-Schlüssel enthalten nur Logs von Anwendungen und filtern Systemmeldungen heraus (man denke an Cron etc.).</p>
|
||||||
<h3 id="logging-treiber">Logging-Treiber<a class="headerlink" href="#logging-treiber" title="Permanent link">¶</a></h3>
|
<h3 id="logging-treiber">Logging-Treiber<a class="headerlink" href="#logging-treiber" title="Permanent link">¶</a></h3>
|
||||||
<h4 id="uber-docker-composeoverrideyml">Über docker-compose.override.yml<a class="headerlink" href="#uber-docker-composeoverrideyml" title="Permanent link">¶</a></h4>
|
<h4 id="uber-docker-composeoverrideyml">Über docker compose.override.yml<a class="headerlink" href="#uber-docker-composeoverrideyml" title="Permanent link">¶</a></h4>
|
||||||
<p>Hier ist die gute Nachricht: Da Docker einige großartige Logging-Treiber hat, können Sie mailcow: dockerized mit Leichtigkeit in Ihre bestehende Logging-Umgebung integrieren.</p>
|
<p>Hier ist die gute Nachricht: Da Docker einige großartige Logging-Treiber hat, können Sie mailcow: dockerized mit Leichtigkeit in Ihre bestehende Logging-Umgebung integrieren.</p>
|
||||||
<p>Erstellen Sie eine <code>docker-compose.override.yml</code> und fügen Sie zum Beispiel diesen Block hinzu, um das "gelf" Logging-Plugin für <code>postfix-mailcow</code> zu verwenden:</p>
|
<p>Erstellen Sie eine <code>docker compose.override.yml</code> und fügen Sie zum Beispiel diesen Block hinzu, um das "gelf" Logging-Plugin für <code>postfix-mailcow</code> zu verwenden:</p>
|
||||||
<div class="highlight"><pre><span></span><code>version: '2.1'
|
<div class="highlight"><pre><span></span><code>version: '2.1'
|
||||||
services:
|
services:
|
||||||
postfix-mailcow: # oder ein anderer
|
postfix-mailcow: # oder ein anderer
|
||||||
|
@ -2595,7 +2612,7 @@ erstellen Sie die Datei <code>/etc/rsyslog.d/docker.conf</code>:</p>
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Starten Sie den Docker-Daemon neu und führen Sie <code>docker-compose down && 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 && 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">¶</a></h3>
|
<h3 id="log-rotation">Log rotation<a class="headerlink" href="#log-rotation" title="Permanent link">¶</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
|
<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>
|
komprimieren und zu löschen.</p>
|
||||||
|
@ -2620,7 +2637,7 @@ komprimieren und zu löschen.</p>
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2736,7 +2753,7 @@ komprimieren und zu löschen.</p>
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2497,7 +2514,7 @@ mailcow: dockerized vertraut auf das Standard-Gateway IP 172.22.1.1 als Proxy.</
|
||||||
</code></pre></div></p>
|
</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>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><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>
|
<p><strong>Wichtige Informationen, bitte lesen Sie diese sorgfältig durch!</strong></p>
|
||||||
<div class="admonition info">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<p class="admonition-title">Info</p>
|
||||||
|
@ -2648,8 +2665,8 @@ 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><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>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.
|
<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>
|
<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">'2.1'</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s">'2.1'</span><span class="w"></span>
|
||||||
|
|
||||||
<span class="nt">services</span><span class="p">:</span><span class="w"></span>
|
<span class="nt">services</span><span class="p">:</span><span class="w"></span>
|
||||||
|
@ -2681,7 +2698,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">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="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' Datei enthält</span><span class="w"></span>
|
<span class="w"> </span><span class="c1"># mounten Sie den Ordner, der Traefiks `acme.json' 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="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="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>
|
<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>
|
||||||
|
@ -2694,10 +2711,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">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>
|
<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>
|
</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>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>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>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>
|
<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">¶</a></h3>
|
<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">¶</a></h3>
|
||||||
|
@ -2715,14 +2732,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>
|
<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
|
<div class="highlight"><pre><span></span><code>ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
</code></pre></div>
|
</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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2838,7 +2855,7 @@ docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2498,7 +2515,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -64,6 +64,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2377,16 +2394,16 @@ SNAT_TO_SOURCE=1.2.3.4
|
||||||
# Benutze dieses IPv6 für ausgehende Verbindungen (SNAT)
|
# Benutze dieses IPv6 für ausgehende Verbindungen (SNAT)
|
||||||
SNAT6_TO_SOURCE=dead:beef
|
SNAT6_TO_SOURCE=dead:beef
|
||||||
</code></pre></div>
|
</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>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>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-06-23 15:17:00</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2502,7 +2519,7 @@ SNAT6_TO_SOURCE=dead:beef
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2605,7 +2622,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>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>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>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">¶</a></h3>
|
<h3 id="zusatzliche-domain-namen">Zusätzliche Domain-Namen<a class="headerlink" href="#zusatzliche-domain-namen" title="Permanent link">¶</a></h3>
|
||||||
<p>Bearbeiten Sie "mailcow.conf" und fügen Sie einen Parameter <code>ADDITIONAL_SAN</code> wie folgt hinzu:</p>
|
<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>
|
<p>Verwenden Sie keine Anführungszeichen (<code>"</code>) und keine Leerzeichen zwischen den Namen!</p>
|
||||||
|
@ -2613,7 +2630,7 @@
|
||||||
</code></pre></div>
|
</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>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>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">
|
<div class="admonition info">
|
||||||
<p class="admonition-title">Info</p>
|
<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>
|
<p>Die Verwendung anderer Namen als <code>MAILCOW_HOSTNAME</code> für den Zugriff auf das mailcow UI kann weitere Konfiguration erfordern.</p>
|
||||||
|
@ -2621,26 +2638,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>
|
<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
|
<div class="highlight"><pre><span></span><code>ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
|
||||||
</code></pre></div>
|
</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">¶</a></h3>
|
<h3 id="erneuerung-erzwingen">Erneuerung erzwingen<a class="headerlink" href="#erneuerung-erzwingen" title="Permanent link">¶</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>
|
<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
|
<div class="highlight"><pre><span></span><code>cd /opt/mailcow-dockerized
|
||||||
touch data/assets/ssl/force_renew
|
touch data/assets/ssl/force_renew
|
||||||
docker-compose restart acme-mailcow
|
docker compose restart acme-mailcow
|
||||||
# Prüfen Sie nun die Logs auf eine Erneuerung
|
# Prüfen Sie nun die Logs auf eine Erneuerung
|
||||||
docker-compose logs --tail=200 -f acme-mailcow
|
docker compose logs --tail=200 -f acme-mailcow
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>Die Datei wird automatisch gelöscht.</p>
|
<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">¶</a></h3>
|
<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">¶</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>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>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">¶</a></h3>
|
<h3 id="deaktivieren-sie-lets-encrypt">Deaktivieren Sie Let's Encrypt<a class="headerlink" href="#deaktivieren-sie-lets-encrypt" title="Permanent link">¶</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">¶</a></h4>
|
<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">¶</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">¶</a></h4>
|
<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">¶</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">¶</a></h3>
|
<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">¶</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>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
|
<p>Standardmäßig erstellt "acme-mailcow" ein einzelnes SAN-Zertifikat für alle validierten Domains
|
||||||
|
@ -2653,7 +2670,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>
|
<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>
|
</ul>
|
||||||
<p>Postfix, Dovecot und Nginx werden dann diese Zertifikate mit SNI bedienen.</p>
|
<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">
|
<div class="admonition warning">
|
||||||
<p class="admonition-title">Warning</p>
|
<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>.
|
<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>.
|
||||||
|
@ -2683,15 +2700,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>
|
<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">¶</a></h3>
|
<h3 id="test-gegen-das-acme-verzeichnis">Test gegen das ACME-Verzeichnis<a class="headerlink" href="#test-gegen-das-acme-verzeichnis" title="Permanent link">¶</a></h3>
|
||||||
<p>Bearbeiten Sie <code>mailcow.conf</code> und fügen Sie <code>LE_STAGING=y</code> hinzu.</p>
|
<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">¶</a></h3>
|
<h3 id="benutzerdefinierte-verzeichnis-url">Benutzerdefinierte Verzeichnis-URL<a class="headerlink" href="#benutzerdefinierte-verzeichnis-url" title="Permanent link">¶</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>
|
<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
|
<div class="highlight"><pre><span></span><code>DIRECTORY_URL=https://acme-custom-v9000.api.letsencrypt.org/directory
|
||||||
</code></pre></div>
|
</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>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">¶</a></h3>
|
<h3 id="uberprufen-sie-ihre-konfiguration">Überprüfen Sie Ihre Konfiguration<a class="headerlink" href="#uberprufen-sie-ihre-konfiguration" title="Permanent link">¶</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 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>
|
<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)
|
<div class="highlight"><pre><span></span><code># Verbindung über SMTP (587)
|
||||||
|
@ -2711,7 +2728,7 @@ bash helper-scripts/expiry-dates.sh
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
Letztes Update:
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-07-17 17:01:03</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_datetime">2022-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2827,7 +2844,7 @@ bash helper-scripts/expiry-dates.sh
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2572,7 +2589,7 @@
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2783,7 +2800,7 @@ Einzelheiten:
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
|
<aside class="md-banner">
|
||||||
|
<div class="md-banner__inner md-grid md-typeset">
|
||||||
|
|
||||||
|
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<center><h4>Alle Befehle sind gemäß der Syntax des Docker Compose Plugins beschrieben.<br>
|
||||||
|
All commands are written according to the Docker Compose Plugin syntax.</h4></center>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>var content,el=document.querySelector("[data-md-component=announce]");el&&(content=el.querySelector(".md-typeset"),__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0))</script>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2799,14 +2816,14 @@ iface eth0 inet6 static
|
||||||
<p>Starten Sie die Schnittstelle neu, um die Einstellungen zu übernehmen.
|
<p>Starten Sie die Schnittstelle neu, um die Einstellungen zu übernehmen.
|
||||||
Sie können außerdem die <a href="https://wiki.hetzner.de/index.php/Cloud_IP_static/en#disable_cloud-init_network_changes">cloud-init Netzwerkänderungen deaktivieren.</a></p>
|
Sie können außerdem die <a href="https://wiki.hetzner.de/index.php/Cloud_IP_static/en#disable_cloud-init_network_changes">cloud-init Netzwerkänderungen deaktivieren.</a></p>
|
||||||
<h2 id="mtu">MTU<a class="headerlink" href="#mtu" title="Permanent link">¶</a></h2>
|
<h2 id="mtu">MTU<a class="headerlink" href="#mtu" title="Permanent link">¶</a></h2>
|
||||||
<p>Besonders relevant für OpenStack-Benutzer: Überprüfen Sie Ihre MTU und setzen Sie sie entsprechend in docker-compose.yml. Siehe <strong>4.1</strong> in <a href="../../i_u_m/i_u_m_install/">unseren Installationsanleitungen</a>.</p>
|
<p>Besonders relevant für OpenStack-Benutzer: Überprüfen Sie Ihre MTU und setzen Sie sie entsprechend in docker compose.yml. Siehe <strong>4.1</strong> in <a href="../../i_u_m/i_u_m_install/">unseren Installationsanleitungen</a>.</p>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div class="md-source-file">
|
<div class="md-source-file">
|
||||||
<small>
|
<small>
|
||||||
|
|
||||||
Letztes Update:
|
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-08-31 14:45:46</span>
|
||||||
|
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
@ -2922,7 +2939,7 @@ Sie können außerdem die <a href="https://wiki.hetzner.de/index.php/Cloud_IP_st
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.tracking", "announce.dismiss"], "search": "../../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
|
||||||
|
|
||||||
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
<script src="../../../assets/javascripts/bundle.9c69f0bc.min.js"></script>
|
||||||
|
|
Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen
Laden …
In neuem Issue referenzieren