From 2a0e50ca266f084979a0c73681555c3a23d874d1 Mon Sep 17 00:00:00 2001 From: DerLinkman Date: Sat, 29 Jan 2022 20:07:02 +0100 Subject: [PATCH] Translate I_U_M Section --- docs/i_u_m/i_u_m_deinstall.de.md | 11 ++ docs/i_u_m/i_u_m_deinstall.en.md | 11 ++ docs/i_u_m/i_u_m_install.de.md | 120 ++++++++++++++++++++ docs/i_u_m/i_u_m_install.en.md | 120 ++++++++++++++++++++ docs/i_u_m/i_u_m_migration.de.md | 64 +++++++++++ docs/i_u_m/i_u_m_migration.en.md | 64 +++++++++++ docs/i_u_m/i_u_m_update.de.md | 75 ++++++++++++ docs/i_u_m/i_u_m_update.en.md | 75 ++++++++++++ docs/prerequisite/prerequisite-system.de.md | 4 +- mkdocs.yml | 8 +- 10 files changed, 545 insertions(+), 7 deletions(-) create mode 100644 docs/i_u_m/i_u_m_deinstall.de.md create mode 100644 docs/i_u_m/i_u_m_deinstall.en.md create mode 100644 docs/i_u_m/i_u_m_install.de.md create mode 100644 docs/i_u_m/i_u_m_install.en.md create mode 100644 docs/i_u_m/i_u_m_migration.de.md create mode 100644 docs/i_u_m/i_u_m_migration.en.md create mode 100644 docs/i_u_m/i_u_m_update.de.md create mode 100644 docs/i_u_m/i_u_m_update.en.md diff --git a/docs/i_u_m/i_u_m_deinstall.de.md b/docs/i_u_m/i_u_m_deinstall.de.md new file mode 100644 index 000000000..69d5793d4 --- /dev/null +++ b/docs/i_u_m/i_u_m_deinstall.de.md @@ -0,0 +1,11 @@ +Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies: + +``` +docker-compose down -v --rmi all --remove-orphans +``` + +!!! info + - **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind. + - **--rmi ** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde. + - **--remove-orphans** Entfernt Container für Dienste, die nicht in der Compose-Datei definiert sind. + - Standardmäßig entfernt `docker-compose down` nur derzeit aktive Container und Netzwerke, die in der Datei `docker-compose.yml` definiert sind. \ No newline at end of file diff --git a/docs/i_u_m/i_u_m_deinstall.en.md b/docs/i_u_m/i_u_m_deinstall.en.md new file mode 100644 index 000000000..696351b67 --- /dev/null +++ b/docs/i_u_m/i_u_m_deinstall.en.md @@ -0,0 +1,11 @@ +To remove mailcow: dockerized with all it's volumes, images and containers do: + +``` +docker-compose down -v --rmi all --remove-orphans +``` + +!!! info + - **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers. + - **--rmi ** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field. + - **--remove-orphans** Remove containers for services not defined in the compose file. + - By default `docker-compose down` only removes currently active containers and networks defined in the `docker-compose.yml`. diff --git a/docs/i_u_m/i_u_m_install.de.md b/docs/i_u_m/i_u_m_install.de.md new file mode 100644 index 000000000..47d2d86c8 --- /dev/null +++ b/docs/i_u_m/i_u_m_install.de.md @@ -0,0 +1,120 @@ +Sie benötigen Docker (eine Version >= `20.10.2` ist erforderlich) und Docker Compose (eine Version `<= 2.0` ist erforderlich). + +**1\.** Erfahren Sie, wie Sie [Docker] (https://docs.docker.com/install/) und [Docker Compose] (https://docs.docker.com/compose/install/) installieren. + +Schnelle Installation für die meisten Betriebssysteme: + +- Docker +``` +curl -sSL https://get.docker.com/ | CHANNEL=stable sh +# Nachdem der Installationsprozess abgeschlossen ist, müssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7) +systemctl enable --now docker +``` + +- Docker-Zusammenstellung + +!!! Warnung + **mailcow benötigt die neueste Version von docker-compose v1.** Es wird dringend empfohlen, die untenstehenden Befehle zu verwenden, um `docker-compose` zu installieren. Paket-Manager (z.B. `apt`, `yum`) werden **wahrscheinlich** nicht die richtige Version liefern. + Hinweis: Dieser Befehl lädt docker-compose aus dem offiziellen Docker-Github-Repository herunter und ist eine sichere Methode. Das Snippet ermittelt die neueste unterstützte Version von mailcow. In fast allen Fällen ist dies die letzte verfügbare Version (Ausnahmen sind kaputte Versionen oder größere Änderungen, die noch nicht von mailcow unterstützt werden). + +``` +curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +``` + +Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird. + +**1.1.1.** Auf SELinux-aktivierten Systemen, z.B. CentOS 7: + +- Prüfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist: + +``` +rpm -qa | grep container-selinux +``` + +Wenn der obige Befehl eine leere oder keine Ausgabe liefert, sollten Sie es über Ihren Paketmanager installieren. + +- Prüfen Sie, ob Docker SELinux-Unterstützung aktiviert hat: + +``` +docker info | grep selinux +``` + +Wenn der obige Befehl eine leere oder keine Ausgabe liefert, erstellen oder bearbeiten Sie `/etc/docker/daemon.json` und fügen Sie `"selinux-enabled": true` hinzu. Beispielhafter Inhalt der Datei: + +``` +{ + "selinux-enabled": true +} +``` + +Starten Sie den Docker-Daemon neu und überprüfen Sie, ob SELinux nun aktiviert ist. + +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 https://github.com/containers/container-selinux ansehen, die auf viele nützliche Informationen zu diesem Thema verweist. + + +**2\.** Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist. Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root. Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch boosten und sicherstellen, dass alles gesichert ist. Das update.sh-Skript muss daher ebenfalls als root ausgeführt werden. Es kann notwendig sein, den Besitz und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben. **Wir geben die Berechtigungen für jede exponierte Anwendung** auf und führen einen exponierten Dienst nicht als root aus! Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit. Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch. + +``` +$ su +# umask +0022 # <- Überprüfen, dass es 0022 ist +# cd /opt +# git clone https://github.com/mailcow/mailcow-dockerized +# cd mailcow-dockerized +``` + +**3\.** Erzeugen Sie eine Konfigurationsdatei. Verwende einen FQDN (`host.domain.tld`) als Hostname, wenn du gefragt wirst. +``` +./generate_config.sh +``` + +**4\.** Ändern Sie die Konfiguration, wenn Sie das wollen oder müssen. +``` +nano mailcow.conf +``` +Wenn Sie planen, einen Reverse Proxy zu verwenden, können Sie zum Beispiel HTTPS an 127.0.0.1 auf Port 8443 und HTTP an 127.0.0.1 auf Port 8080 binden. + +Möglicherweise müssen Sie einen vorinstallierten MTA stoppen, der Port 25/tcp blockiert. Siehe [dieses Kapitel](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-local_mta/), um zu erfahren, wie man Postfix rekonfiguriert, um nach einer erfolgreichen Installation neben mailcow zu laufen. + +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. + +**4\.1\.** Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack): + +**Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.** + +Bearbeiten Sie `docker-compose.yml` und ändern Sie die Netzwerkeinstellungen entsprechend Ihrer MTU. +Fügen Sie den neuen Parameter driver_opts wie folgt hinzu: +``` +Netzwerke: + mailcow-network: + ... + driver_opts: + com.docker.network.driver.mtu: 1450 + ... +``` + +**4\.2\.** Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem: + +**Einschalten von IPv6. Endlich.** + +Wenn Sie kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern (thehe), ist es empfehlenswert, [IPv6 zu deaktivieren](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-disable_ipv6/) für das mailcow-Netzwerk, um unvorhergesehene Probleme zu vermeiden. + + +**5\.** Ziehen Sie die Images und führen Sie die Compose-Datei aus. Der Parameter `-d` wird mailcow starten: dockerized detached: +``` +docker-compose pull +docker-compose up -d +``` + +Geschafft! + +Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen. + +!!! info + Wenn Sie mailcow nicht hinter einem Reverse Proxy verwenden, sollten Sie [alle HTTP-Anfragen auf HTTPS umleiten](https://mailcow.github.io/mailcow-dockerized-docs/u_e-80_to_443/). + +Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zu MySQL hergestellt werden kann. + +Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie `docker volume ls` aus, um eine Liste aller Volumes zu sehen. Sie können `docker-compose down` sicher ausführen, ohne persistente Daten zu entfernen. diff --git a/docs/i_u_m/i_u_m_install.en.md b/docs/i_u_m/i_u_m_install.en.md new file mode 100644 index 000000000..e53644938 --- /dev/null +++ b/docs/i_u_m/i_u_m_install.en.md @@ -0,0 +1,120 @@ +You need Docker (a version >= `20.10.2` is required) and Docker Compose (a version `<= 2.0` is required). + +**1\.** Learn how to install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/). + +Quick installation for most operation systems: + +- Docker +``` +curl -sSL https://get.docker.com/ | CHANNEL=stable sh +# After the installation process is finished, you may need to enable the service and make sure it is started (e.g. CentOS 7) +systemctl enable --now docker +``` + +- Docker-Compose + +!!! warning + **mailcow requires the latest version of docker-compose v1.** It is highly recommended to use the commands below to install `docker-compose`. Package managers (e.g. `apt`, `yum`) **likely won't** give you the correct version. + _Note: This command downloads docker-compose from the official Docker Github repository and is a safe method. The snippet will determine the latest supported version by mailcow. In almost all cases this is the latest version available (exceptions are broken releases or major changes not yet supported by mailcow)._ + +``` +curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +``` + +Please use the latest Docker engine available and do not use the engine that ships with your distros repository. + +**1\.1\.** On SELinux enabled systems, e.g. CentOS 7: + +- Check if "container-selinux" package is present on your system: + +``` +rpm -qa | grep container-selinux +``` + +If the above command returns an empty or no output, you should install it via your package manager. + +- Check if docker has SELinux support enabled: + +``` +docker info | grep selinux +``` + +If the above command returns an empty or no output, create or edit `/etc/docker/daemon.json` and add `"selinux-enabled": true`. Example file content: + +``` +{ + "selinux-enabled": true +} +``` + +Restart the docker daemon and verify SELinux is now enabled. + +This step is required to make sure mailcows volumes are properly labeled as declared in the compose file. +If you are interested in how this works, you can check out the readme of https://github.com/containers/container-selinux which links to a lot of useful information on that topic. + + +**2\.** Clone the master branch of the repository, make sure your umask equals 0022. Please clone the repository as root user and also control the stack as root. We will modify attributes - if necessary - while boostrapping the containers automatically and make sure everything is secured. The update.sh script must therefore also be run as root. It might be necessary to change ownership and other attributes of files you will otherwise not have access to. **We drop permissions for every exposed application** and will not run an exposed service as root! Controlling the Docker daemon as non-root user does not give you additional security. The unprivileged user will spawn the containers as root likewise. The behaviour of the stack is identical. + +``` +$ su +# umask +0022 # <- Verify it is 0022 +# cd /opt +# git clone https://github.com/mailcow/mailcow-dockerized +# cd mailcow-dockerized +``` + +**3\.** Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked. +``` +./generate_config.sh +``` + +**4\.** Change configuration if you want or need to. +``` +nano mailcow.conf +``` +If you plan to use a reverse proxy, you can, for example, bind HTTPS to 127.0.0.1 on port 8443 and HTTP to 127.0.0.1 on port 8080. + +You may need to stop an existing pre-installed MTA which blocks port 25/tcp. See [this chapter](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-local_mta/) to learn how to reconfigure Postfix to run besides mailcow after a successful installation. + +Some updates modify mailcow.conf and add new parameters. It is hard to keep track of them in the documentation. Please check their description and, if unsure, ask at the known channels for advise. + +**4\.1\.** Users with a MTU not equal to 1500 (e.g. OpenStack): + +**Whenever you run into trouble and strange phenomena, please check your MTU.** + +Edit `docker-compose.yml` and change the network settings according to your MTU. +Add the new driver_opts parameter like this: +``` +networks: + mailcow-network: + ... + driver_opts: + com.docker.network.driver.mtu: 1450 + ... +``` + +**4\.2\.** Users without an IPv6 enabled network on their host system: + +**Enable IPv6. Finally.** + +If you do not have an IPv6 enabled network on your host and you don't care for a better internet (thehe), it is recommended to [disable IPv6](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-disable_ipv6/) for the mailcow network to prevent unforeseen issues. + + +**5\.** Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached: +``` +docker-compose pull +docker-compose up -d +``` + +Done! + +You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials `admin` + password `moohoo`. + +!!! info + If you are not using mailcow behind a reverse proxy, you should [redirect all HTTP requests to HTTPS](https://mailcow.github.io/mailcow-dockerized-docs/u_e-80_to_443/). + +The database will be initialized right after a connection to MySQL can be established. + +Your data will persist in multiple Docker volumes, that are not deleted when you recreate or delete containers. Run `docker volume ls` to see a list of all volumes. You can safely run `docker-compose down` without removing persistent data. diff --git a/docs/i_u_m/i_u_m_migration.de.md b/docs/i_u_m/i_u_m_migration.de.md new file mode 100644 index 000000000..2ccac7180 --- /dev/null +++ b/docs/i_u_m/i_u_m_migration.de.md @@ -0,0 +1,64 @@ +!!! warning + Diese Anleitung geht davon aus, dass Sie beabsichtigen, einen bestehenden Mailcow-Server (Quelle) auf einen brandneuen, leeren Server (Ziel) zu migrieren. Sie kümmert sich nicht um die Erhaltung bestehender Daten auf dem Zielserver und löscht alles innerhalb von `/var/lib/docker/volumes` und somit alle Docker-Volumes, die Sie bereits eingerichtet haben. + +!!! tip + Alternativ können Sie das Skript `./helper-scripts/backup_and_restore.sh` verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre `mailcow.conf` und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen. + +**1\.** +Installieren Sie [Docker] (https://docs.docker.com/engine/installation/linux/) und [Docker Compose] (https://docs.docker.com/compose/install/) auf Ihrem neuen Server. + +Schnelle Installation für die meisten Betriebssysteme: + +- Docker +``` +curl -sSL https://get.docker.com/ | CHANNEL=stable sh +# Nachdem der Installationsprozess abgeschlossen ist, müssen Sie den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7) +systemctl enable docker.service +``` + +- docker-compose +``` +curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +``` + +Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird. + +**2\.** Stoppen Sie Docker und stellen Sie sicher, dass Docker gestoppt wurde: +``` +systemctl stop docker.service +systemctl status docker.service +``` + +**3\.** Führen Sie die folgenden Befehle auf dem Quellcomputer aus (achten Sie darauf, die abschließenden Schrägstriche im ersten Pfadparameter wie unten gezeigt hinzuzufügen!) - **WARNUNG: Dieser Befehl löscht alles, was bereits unter `/var/lib/docker/volumes` auf dem Zielrechner existiert**: +``` +rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@target-machine.example.com:/opt/mailcow-dockerized +rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.example.com:/var/lib/docker/volumes +``` + +**4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner. +``` +cd /opt/mailcow-dockerized +docker-compose herunterfahren +systemctl stop docker.service +``` + +**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal. + +**6\.** Wechseln Sie auf den Zielrechner und starten Sie Docker. +``` +systemctl start docker.service +``` + +**7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner. +``` +cd /opt/mailcow-dockerized +docker-compose pull +``` + +**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein! +``` +docker-compose up -d +``` + +**9\.** Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen. \ No newline at end of file diff --git a/docs/i_u_m/i_u_m_migration.en.md b/docs/i_u_m/i_u_m_migration.en.md new file mode 100644 index 000000000..2890f9cd9 --- /dev/null +++ b/docs/i_u_m/i_u_m_migration.en.md @@ -0,0 +1,64 @@ +!!! warning + This guide assumes you intend to migrate an existing mailcow server (source) over to a brand new, empty server (target). It takes no care about preserving any existing data on your target server and will erase anything within `/var/lib/docker/volumes` and thus any Docker volumes you may have already set up. + +!!! tip + Alternatively, you can use the `./helper-scripts/backup_and_restore.sh` script to create a full backup on the source machine, then install mailcow on the target machine as usual, copy over your `mailcow.conf` and use the same script to restore your backup to the target machine. + +**1\.** +Install [Docker](https://docs.docker.com/engine/installation/linux/) and [Docker Compose](https://docs.docker.com/compose/install/) on your new server. + +Quick installation for most operation systems: + +- Docker +``` +curl -sSL https://get.docker.com/ | CHANNEL=stable sh +# After the installation process is finished, you may need to enable the service and make sure it is started (e.g. CentOS 7) +systemctl enable docker.service +``` + +- docker-compose +``` +curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +``` + +Please use the latest Docker engine available and do not use the engine that ships with your distros repository. + +**2\.** Stop Docker and assure Docker has stopped: +``` +systemctl stop docker.service +systemctl status docker.service +``` + +**3\.** Run the following commands on the source machine (take care of adding the trailing slashes in the first path parameter as shown below!) - **WARNING: This command will erase anything that may already exist under `/var/lib/docker/volumes` on the target machine**: +``` +rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@target-machine.example.com:/opt/mailcow-dockerized +rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.example.com:/var/lib/docker/volumes +``` + +**4\.** Shut down mailcow and stop Docker on the source machine. +``` +cd /opt/mailcow-dockerized +docker-compose down +systemctl stop docker.service +``` + +**5\.** Repeat step 3 with the same commands. This will be much quicker than the first time. + +**6\.** Switch over to the target machine and start Docker. +``` +systemctl start docker.service +``` + +**7\.** Now pull the mailcow Docker images on the target machine. +``` +cd /opt/mailcow-dockerized +docker-compose pull +``` + +**8\.** Start the whole mailcow stack and everything should be done! +``` +docker-compose up -d +``` + +**9\.** Finally, change your DNS settings to point to the target server. diff --git a/docs/i_u_m/i_u_m_update.de.md b/docs/i_u_m/i_u_m_update.de.md new file mode 100644 index 000000000..10e760480 --- /dev/null +++ b/docs/i_u_m/i_u_m_update.de.md @@ -0,0 +1,75 @@ +## Automatische Aktualisierung + +Ein Update-Skript in Ihrem mailcow-dockerized Verzeichnis kümmert sich um Updates. + +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. + +Führen sie das Update-Skript aus: +``` +./update.sh +``` + +Wenn es nötig ist, wird es Sie fragen, wie Sie fortfahren möchten. +Merge-Fehler werden gemeldet. +Einige kleinere Konflikte werden automatisch korrigiert (zugunsten des mailcow: dockerized repository code). + +### Optionen + +``` +# Optionen können kombiniert werden + +# - Prüft auf Updates und zeigt Änderungen an +./update.sh --check + +# Versuchen Sie nicht, docker-compose zu aktualisieren, **stellen Sie sicher, dass Sie die neueste verfügbare Version von docker-compose verwenden** +./update.sh --no-update-compose + +# - Starten Sie mailcow nicht, nachdem Sie ein Update durchgeführt haben +./update.sh --skip-start + +# - Erzwinge Update (unbeaufsichtigt, aber nicht unterstützt, Benutzung auf eigenes Risiko) +./update.sh --force + +# - Garbage Collector ausführen, um alte Image-Tags zu bereinigen und beenden +./update.sh --gc + +# - Update mit der Merge-Strategie-Option "ours" statt "theirs" +# Dies wird **Konflikte** beim Zusammenführen zugunsten Ihrer lokalen Änderungen lösen und sollte vermieden werden. Lokale Änderungen werden immer beibehalten, es sei denn, wir haben auch die Datei XY geändert. +./update.sh --ours + +# - Nicht aktualisieren, sondern Bilder vorholen und beenden +./update.sh --prefetch +``` + +### Ich habe vergessen, was ich vor dem Ausführen von update.sh geändert habe. + +Siehe `git log --pretty=oneline | grep -i "before update"`, Sie werden eine Ausgabe ähnlich dieser haben: + +``` +22cd00b5e28893ef9ddef3c2b5436453cc5223ab Vor der Aktualisierung am 2020-09-28_19_25_45 +dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Vor der Aktualisierung am 2020-08-07_13_31_31 +``` + +Führen Sie `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` aus, um zu sehen, was sich geändert hat. + +### Kann ich ein Rollback durchführen? + +Ja. + +Siehe das obige Thema, anstelle eines Diffs führen Sie checkout aus: + +``` +docker-compose down +# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID +git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab +docker-compose pull +docker-compose up -d +``` + +### Hooks + +Sie können sich in den Update-Mechanismus einklinken, indem Sie Skripte namens `pre_commit_hook.sh` und `post_commit_hook.sh` zu Ihrem mailcows-Root-Verzeichnis hinzufügen. Siehe [this](./u_e-update-hooks.md) für weitere Details. + +## Fußnoten + +- Wir planen einen monatlichen Release-Zyklus für Updates ein. \ No newline at end of file diff --git a/docs/i_u_m/i_u_m_update.en.md b/docs/i_u_m/i_u_m_update.en.md new file mode 100644 index 000000000..4b1f49761 --- /dev/null +++ b/docs/i_u_m/i_u_m_update.en.md @@ -0,0 +1,75 @@ +## Automatic update + +An update script in your mailcow-dockerized directory will take care of updates. + +But use it with caution! If you think you made a lot of changes to the mailcow code, you should use the manual update guide below. + +Run the update script: +``` +./update.sh +``` + +If it needs to, it will ask you how you wish to proceed. +Merge errors will be reported. +Some minor conflicts will be auto-corrected (in favour for the mailcow: dockerized repository code). + +### Options + +``` +# Options can be combined + +# - Check for updates and show changes +./update.sh --check + +# Do not try to update docker-compose, **make sure to use the latest docker-compose available** +./update.sh --no-update-compose + +# - Do not start mailcow after applying an update +./update.sh --skip-start + +# - Force update (unattended, but unsupported, use at own risk) +./update.sh --force + +# - Run garbage collector to cleanup old image tags and exit +./update.sh --gc + +# - Update with merge strategy option "ours" instead of "theirs" +# This will **solve conflicts** when merging in favor for your local changes and should be avoided. Local changes will always be kept, unless we changed file XY, too. +./update.sh --ours + +# - Don't update, but prefetch images and exit +./update.sh --prefetch +``` + +### I forgot what I changed before running update.sh + +See `git log --pretty=oneline | grep -i "before update"`, you will have an output similar to this: + +``` +22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45 +dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31 +``` + +Run `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` to see what changed. + +### Can I roll back? + +Yes. + +See the topic above, instead of a diff, you run checkout: + +``` +docker-compose down +# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID +git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab +docker-compose pull +docker-compose up -d +``` + +### Hooks + +You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](./u_e-update-hooks.md) for more details. + +## Footnotes + +- We schedule a monthly release cycle for updates. diff --git a/docs/prerequisite/prerequisite-system.de.md b/docs/prerequisite/prerequisite-system.de.md index 17a3a306d..0a24f895c 100644 --- a/docs/prerequisite/prerequisite-system.de.md +++ b/docs/prerequisite/prerequisite-system.de.md @@ -1,8 +1,6 @@ -# Systemvorraussetzungen - Bevor Sie **mailcow: dockerized** ausführen, sollten Sie einige Voraussetzungen überprüfen: -!!! Warnung +!!! warning Versuchen Sie **nicht**, mailcow auf einem Synology/QNAP-Gerät (jedes NAS), OpenVZ, LXC oder anderen Container-Plattformen zu installieren. KVM, ESX, Hyper-V und andere vollständige Virtualisierungsplattformen werden unterstützt. !!! info diff --git a/mkdocs.yml b/mkdocs.yml index 8e1f695fa..07a806673 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -127,10 +127,10 @@ nav: - 'Prepare your system': 'prerequisite/prerequisite-system.md' - 'DNS setup': 'prerequisite/prerequisite-dns.md' - 'Installation, Update & Migration': - - 'Installation': 'i_u_m_install.md' - - 'Update': 'i_u_m_update.md' - - 'Migration': 'i_u_m_migration.md' - - 'Deinstallation': 'i_u_m_deinstall.md' + - 'Installation': 'i_u_m/i_u_m_install.md' + - 'Update': 'i_u_m/i_u_m_update.md' + - 'Migration': 'i_u_m/i_u_m_migration.md' + - 'Deinstallation': 'i_u_m/i_u_m_deinstall.md' - 'Post Installation Tasks': - 'Advanced SSL': 'firststeps-ssl.md' - 'Disable IPv6': 'firststeps-disable_ipv6.md'