mailcow-dockerized-docs/docs/i_u_m/i_u_m_update.de.md

129 Zeilen
6,1 KiB
Markdown

## mailcow automatisch Updaten
2022-01-29 20:07:02 +01:00
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).
2022-01-29 20:07:02 +01:00
### Optionen
```
# Optionen können kombiniert werden
# - PrĂĽft auf Updates und zeigt Ă„nderungen an
./update.sh --check
# - Starten Sie mailcow nicht, nachdem Sie ein Update durchgefĂĽhrt haben
./update.sh --skip-start
# - Ü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
# - Wechselt die Update Quellen der mailcow auf nightly (unstabile) Inhalte.
NUR ZUM TESTEN VERWENDEN!! KEIN PRODUKTIV BETRIEB!!!
./update.sh --nightly
# - Wechselt die Update Quellen der mailcow auf stable (stabile) Inhalte (standard).
./update.sh --stable
2022-06-23 15:19:13 +02:00
2022-01-29 20:07:02 +01:00
# - 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
2022-02-06 12:00:58 +01:00
# - Nicht aktualisieren, nur holen von Docker Images
2022-01-29 20:07:02 +01:00
./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:
```
2022-02-06 12:00:58 +01:00
22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
2022-01-29 20:07:02 +01:00
```
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:
2022-12-15 15:31:09 +01:00
=== "docker compose (Plugin)"
2022-12-14 22:09:09 +01:00
``` bash
docker compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker compose pull
docker compose up -d
```
2022-12-15 15:31:09 +01:00
=== "docker-compose (Standalone)"
2022-12-14 22:09:09 +01:00
``` bash
docker-compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
2022-01-29 20:07:02 +01:00
### 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 [hier](../manual-guides/u_e-update-hooks.md) für weitere Details.
2022-01-29 20:07:02 +01:00
## Update-Zyklus
2022-01-29 20:07:02 +01:00
2023-01-13 18:17:09 +01:00
- Wir planen in jedem Monat ein neues Hauptupdate zu veröffentlichen.
- Die Updates sind wie folgt nummeriert: `JJJJ-MM` (Beispiel: `2022-05`).
- Fehlerkorrekturen eines Hauptupdates werden bei uns als "Revisionen" wie a,b,c (Beispiele: `2022-05a`, `2022-05b` usw.) erscheinen.
## Update-Varianten
**stable (stabile Updates)**: Diese Updates sind fĂĽr den Produktivbetrieb geeignet. Sie erscheinen in einem Zyklus von mindest 1x im Monat.
**nightly (instabile Updates)**: Diese Updates sind **NICHT** 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.
## NEU: Nightly Updates beziehen
### Infos zu den Nightly Updates
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.
Dabei bekommt der Nightly Branch immer dann neue Updates, wenn irgendetwas am mailcow Projekt fertig gemacht wurde was in die neue Hauptversion reinkommt.
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).
### Wie bekomme ich Nightly Updates?
Der Vorgang ist relativ simpel. Mit dem 2022-08 Update (ein Update auf die Version voraussgesetzt) ist es möglich die `update.sh` mit dem Parameter `--nightly` zu starten.
!!! danger "Achtung"
Bitte machen Sie vorher ein Backup oder folgen Sie dem Abschnitt [Best Practice Nightly Update](#best-practice-nightly-update) bevor Sie auf die Nightly Builds von mailcow wechseln. Wir sind fĂĽr keinerlei Datenverluste/korruptionen verantwortlich, also arbeiten Sie mit bedacht!
Das Skript wird nun den Branch wechseln mit `git checkout nightly` d.h. es wird auch wieder nach den IPv6 Einstellungen fragen. Das ist aber normal.
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>
![nightly footer](../assets/images/i_u_m/nightly_footer.png)
### Best Practice Nightly Update
!!! info
Wir empfehlen die Benutzung des Nightly Updates nur dann, wenn Ihr eine weitere Maschine oder VM besitzt und diese **NICHT** Produktiv nutzt.
1. Das [Cold-Standby Skript](../backup_restore/b_n_r-coldstandby.de.md) nutzen um die Maschine **vor** dem Schwenk auf die Nightly Builds auf ein anderes System zu kopieren.
2. Das `update.sh` Skript auf der neuen Maschine mit dem Parameter `--nightly` ausführen und bestätigen.
2022-12-14 22:09:09 +01:00
3. Die Nightly Updates auf der sekundären Maschine erleben/testen.