Aufrüsten
Upgrade von 1.6.X
Vorgehensweise
Docker
-
Sichern Sie die Datenbank:
- Bevor Sie mit dem Datenbank-Upgrade fortfahren, stellen Sie sicher, dass Sie eine vollständige Sicherung des aktuellen Zustands der Datenbank durchführen.
- Verwenden Sie geeignete Werkzeuge, um die gesamte Datenbank zu sichern, einschließlich Daten, Schemata und Konfigurationen.
docker exec -it -e BACKUP_DIRECTORY=/pfad/zum/sicherungsverzeichnis <scheduler_container> bwcli plugin backup save
docker cp <scheduler_container>:/pfad/zum/sicherungsverzeichnis /pfad/zum/sicherungsverzeichnis
-
Aktualisieren Sie BunkerWeb:
-
Aktualisieren Sie BunkerWeb auf die neueste Version.
-
Aktualisieren Sie die Docker Compose-Datei: Aktualisieren Sie die Docker Compose-Datei, um die neue Version des BunkerWeb-Images zu verwenden.
services: bunkerweb: image: bunkerity/bunkerweb:1.6.5 ... bw-scheduler: image: bunkerity/bunkerweb-scheduler:1.6.5 ... bw-autoconf: image: bunkerity/bunkerweb-autoconf:1.6.5 ... bw-ui: image: bunkerity/bunkerweb-ui:1.6.5 ...
-
Starten Sie die Container neu: Starten Sie die Container neu, um die Änderungen zu übernehmen.
docker compose down docker compose up -d
-
-
-
Überprüfen Sie die Protokolle: Überprüfen Sie die Protokolle des Scheduler-Dienstes, um sicherzustellen, dass die Migration erfolgreich war.
docker compose logs <scheduler_container>
-
Überprüfen Sie die Datenbank: Überprüfen Sie, ob das Datenbank-Upgrade erfolgreich war, indem Sie die Daten und Konfigurationen im neuen Datenbankcontainer überprüfen.
Linux
-
Schnellstart:
Um zu beginnen, laden Sie das Installationsskript und seine Prüfsumme herunter und überprüfen Sie dann die Integrität des Skripts, bevor Sie es ausführen.
LATEST_VERSION=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | jq -r .tag_name) # Skript und Prüfsumme herunterladen wget https://github.com/bunkerity/bunkerweb/releases/download/${LATEST_VERSION}/install-bunkerweb.sh wget https://github.com/bunkerity/bunkerweb/releases/download/${LATEST_VERSION}/install-bunkerweb.sh.sha256 # Prüfsumme überprüfen sha256sum -c install-bunkerweb.sh.sha256 # Wenn die Überprüfung erfolgreich ist, Skript ausführen chmod +x install-bunkerweb.sh sudo ./install-bunkerweb.sh
Sicherheitshinweis
Überprüfen Sie immer die Integrität des Installationsskripts, bevor Sie es ausführen.
Laden Sie die Prüfsummendatei herunter und verwenden Sie ein Werkzeug wie
sha256sum
, um zu bestätigen, dass das Skript nicht verändert oder manipuliert wurde.Wenn die Überprüfung der Prüfsumme fehlschlägt, führen Sie das Skript nicht aus – es könnte unsicher sein.
-
Wie es funktioniert:
Das gleiche vielseitige Installationsskript, das für Neuinstallationen verwendet wird, kann auch ein In-Place-Upgrade durchführen. Wenn es eine bestehende Installation und eine andere Zielversion erkennt, wechselt es in den Upgrade-Modus und wendet den folgenden Arbeitsablauf an:
- Erkennung & Validierung
- Erkennt Betriebssystem / Version und bestätigt die Unterstützungsmatrix.
- Liest die aktuell installierte BunkerWeb-Version aus
/usr/share/bunkerweb/VERSION
.
- Entscheidung über das Upgrade-Szenario
- Wenn die angeforderte Version der installierten entspricht, wird abgebrochen (es sei denn, Sie führen explizit erneut für den Status aus).
- Wenn sich die Versionen unterscheiden, wird ein Upgrade markiert.
- (Optional) Automatisches Pre-Upgrade-Backup
- Wenn
bwcli
und der Scheduler verfügbar sind und die automatische Sicherung aktiviert ist, wird eine Sicherung über das integrierte Backup-Plugin erstellt. - Ziel: entweder das von Ihnen mit
--backup-dir
angegebene Verzeichnis oder ein generierter Pfad wie/var/tmp/bunkerweb-backup-YYYYmmdd-HHMMSS
. - Sie können dies mit
--no-auto-backup
deaktivieren (die manuelle Sicherung liegt dann in Ihrer Verantwortung).
- Wenn
- Dienste stilllegen
- Stoppt
bunkerweb
,bunkerweb-ui
undbunkerweb-scheduler
, um ein konsistentes Upgrade zu gewährleisten (entspricht den Empfehlungen für das manuelle Verfahren).
- Stoppt
- Entfernen von Paketsperren
- Entfernt vorübergehend
apt-mark hold
/dnf versionlock
fürbunkerweb
undnginx
, damit die Zielversion installiert werden kann.
- Entfernt vorübergehend
- Upgrade-Ausführung
- Installiert nur die neue BunkerWeb-Paketversion (NGINX wird im Upgrade-Modus nicht neu installiert, es sei denn, es fehlt – dies vermeidet das Berühren eines korrekt fixierten NGINX).
- Wendet Holds/Versionlocks erneut an, um die aktualisierten Versionen einzufrieren.
- Abschluss & Status
- Zeigt den systemd-Status für Kerndienste und die nächsten Schritte an.
- Ihre Konfiguration und Datenbank bleiben unberührt – nur der Anwendungscode und die verwalteten Dateien werden aktualisiert.
Wichtige Verhaltensweisen / Hinweise:
- Das Skript ändert NICHT Ihre
/etc/bunkerweb/variables.env
oder den Datenbankinhalt. - Wenn die automatische Sicherung fehlgeschlagen ist (oder deaktiviert war), können Sie immer noch eine manuelle Wiederherstellung mit dem Rollback-Abschnitt unten durchführen.
- Der Upgrade-Modus vermeidet absichtlich die Neuinstallation oder das Downgrade von NGINX außerhalb der unterstützten fixierten Version, die bereits vorhanden ist.
- Protokolle zur Fehlerbehebung bleiben in
/var/log/bunkerweb/
.
Zusammenfassung des Rollbacks:
- Verwenden Sie das generierte Sicherungsverzeichnis (oder Ihre manuelle Sicherung) + die Schritte im Rollback-Abschnitt, um die DB wiederherzustellen, installieren Sie dann die vorherige Image-/Paketversion neu und sperren Sie die Pakete erneut.
- Erkennung & Validierung
-
Befehlszeilenoptionen:
Sie können unbeaufsichtigte Upgrades mit den gleichen Flags wie bei der Installation steuern. Die relevantesten für Upgrades:
Option Zweck -v, --version <X.Y.Z>
Ziel-BunkerWeb-Version, auf die aktualisiert werden soll. -y, --yes
Nicht-interaktiv (geht von Upgrade-Bestätigung aus und aktiviert die automatische Sicherung, es sei denn, --no-auto-backup
).--backup-dir <PFAD>
Ziel für die automatische Pre-Upgrade-Sicherung. Wird erstellt, wenn es fehlt. --no-auto-backup
Überspringt die automatische Sicherung (NICHT empfohlen). Sie müssen eine manuelle Sicherung haben. -q, --quiet
Unterdrückt die Ausgabe (mit Protokollierung / Überwachung kombinieren). -f, --force
Fährt mit einer ansonsten nicht unterstützten Betriebssystemversion fort. --dry-run
Zeigt die erkannte Umgebung, die beabsichtigten Aktionen an und beendet dann, ohne etwas zu ändern. Beispiele:
# Interaktiv auf 1.6.5 aktualisieren (fragt nach Sicherung) sudo ./install-bunkerweb.sh --version 1.6.5 # Nicht-interaktives Upgrade mit automatischer Sicherung in ein benutzerdefiniertes Verzeichnis sudo ./install-bunkerweb.sh -v 1.6.5 --backup-dir /var/backups/bw-2025-01 -y # Stilles unbeaufsichtigtes Upgrade (Protokolle unterdrückt) – verlässt sich auf die standardmäßige automatische Sicherung sudo ./install-bunkerweb.sh -v 1.6.5 -y -q # Einen Probelauf (Plan) durchführen, ohne Änderungen anzuwenden sudo ./install-bunkerweb.sh -v 1.6.5 --dry-run # Upgrade unter Überspringen der automatischen Sicherung (NICHT empfohlen) sudo ./install-bunkerweb.sh -v 1.6.5 --no-auto-backup -y
Überspringen von Sicherungen
Die Verwendung von
--no-auto-backup
ohne eine verifizierte manuelle Sicherung kann zu irreversiblem Datenverlust führen, wenn beim Upgrade Probleme auftreten. Halten Sie immer mindestens eine aktuelle, getestete Sicherung bereit.
-
Sichern Sie die Datenbank:
- Bevor Sie mit dem Datenbank-Upgrade fortfahren, stellen Sie sicher, dass Sie eine vollständige Sicherung des aktuellen Zustands der Datenbank durchführen.
- Verwenden Sie geeignete Werkzeuge, um die gesamte Datenbank zu sichern, einschließlich Daten, Schemata und Konfigurationen.
Informationen für Benutzer von Red Hat Enterprise Linux (RHEL) 8.10
Wenn Sie RHEL 8.10 verwenden und eine externe Datenbank nutzen möchten, müssen Sie das Paket
mysql-community-client
installieren, um sicherzustellen, dass der Befehlmysqldump
verfügbar ist. Sie können das Paket mit den folgenden Befehlen installieren:-
Installieren Sie das MySQL-Repository-Konfigurationspaket
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm
-
Aktivieren Sie das MySQL-Repository
sudo dnf config-manager --enable mysql80-community
-
Installieren Sie den MySQL-Client
sudo dnf install mysql-community-client
-
Installieren Sie das PostgreSQL-Repository-Konfigurationspaket
dnf install "https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-$(uname -m)/pgdg-redhat-repo-latest.noarch.rpm"
-
Installieren Sie den PostgreSQL-Client
dnf install postgresql<version>
BACKUP_DIRECTORY=/pfad/zum/sicherungsverzeichnis bwcli plugin backup save
-
Aktualisieren Sie BunkerWeb:
-
Aktualisieren Sie BunkerWeb auf die neueste Version.
-
Stoppen Sie die Dienste:
sudo systemctl stop bunkerweb sudo systemctl stop bunkerweb-ui sudo systemctl stop bunkerweb-scheduler
-
Aktualisieren Sie BunkerWeb:
Wenn Sie das BunkerWeb-Paket zuvor gehalten haben, heben Sie die Sperre auf:
Sie können eine Liste der gehaltenen Pakete mit
apt-mark showhold
anzeigensudo apt-mark unhold bunkerweb nginx
Dann können Sie das BunkerWeb-Paket aktualisieren:
sudo apt update && \ sudo apt install -y --allow-downgrades bunkerweb=1.6.5
Um zu verhindern, dass das BunkerWeb-Paket bei der Ausführung von
apt upgrade
aktualisiert wird, können Sie den folgenden Befehl verwenden:sudo apt-mark hold bunkerweb nginx
Weitere Details auf der Seite Integration Linux.
Wenn Sie das BunkerWeb-Paket zuvor gehalten haben, heben Sie die Sperre auf:
Sie können eine Liste der gehaltenen Pakete mit
dnf versionlock list
anzeigensudo dnf versionlock delete package bunkerweb && \ sudo dnf versionlock delete package nginx
Dann können Sie das BunkerWeb-Paket aktualisieren:
sudo dnf makecache && \ sudo dnf install -y --allowerasing bunkerweb-1.6.5
Um zu verhindern, dass das BunkerWeb-Paket bei der Ausführung von
dnf upgrade
aktualisiert wird, können Sie den folgenden Befehl verwenden:sudo dnf versionlock add bunkerweb && \ sudo dnf versionlock add nginx
Weitere Details auf der Seite Integration Linux.
-
Starten Sie die Dienste:
Oder starten Sie das System neu:sudo systemctl start bunkerweb sudo systemctl start bunkerweb-ui sudo systemctl start bunkerweb-scheduler
sudo reboot
-
-
-
Überprüfen Sie die Protokolle: Überprüfen Sie die Protokolle des Scheduler-Dienstes, um sicherzustellen, dass die Migration erfolgreich war.
journalctl -u bunkerweb --no-pager
-
Überprüfen Sie die Datenbank: Überprüfen Sie, ob das Datenbank-Upgrade erfolgreich war, indem Sie die Daten und Konfigurationen im neuen Datenbankcontainer überprüfen.
Rollback
Bei Problemen
Wenn während des Upgrades Probleme auftreten, können Sie auf die vorherige Version der Datenbank zurückgreifen, indem Sie die in Schritt 1 erstellte Sicherung wiederherstellen.
Holen Sie sich Unterstützung und weitere Informationen:
-
Entpacken Sie die Sicherung, falls sie gezippt ist.
Entpacken Sie zuerst die Sicherungs-Zip-Datei:
unzip /pfad/zum/sicherungsverzeichnis/backup.zip -d /pfad/zum/sicherungsverzeichnis/
-
Stellen Sie die Sicherung wieder her.
-
Entfernen Sie die vorhandene Datenbankdatei.
docker exec -u 0 -i <scheduler_container> rm -f /var/lib/bunkerweb/db.sqlite3
-
Stellen Sie die Sicherung wieder her.
docker exec -i <scheduler_container> sqlite3 /var/lib/bunkerweb/db.sqlite3 < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Korrigieren Sie die Berechtigungen.
docker exec -u 0 -i <scheduler_container> chown root:nginx /var/lib/bunkerweb/db.sqlite3 docker exec -u 0 -i <scheduler_container> chmod 770 /var/lib/bunkerweb/db.sqlite3
-
Stoppen Sie den Stack.
docker compose down
-
Stellen Sie die Sicherung wieder her.
docker exec -e MYSQL_PWD=<ihr_passwort> -i <database_container> mysql -u <username> <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Stoppen Sie den Stack.
docker compose down
-
Entfernen Sie die vorhandene Datenbank.
docker exec -i <database_container> dropdb -U <username> --force <database_name>
-
Erstellen Sie die Datenbank neu.
docker exec -i <database_container> createdb -U <username> <database_name>
-
Stellen Sie die Sicherung wieder her.
docker exec -i <database_container> psql -U <username> -d <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Stoppen Sie den Stack.
docker compose down
-
-
Downgrade von BunkerWeb.
services: bunkerweb: image: bunkerity/bunkerweb:<alte_version> ... bw-scheduler: image: bunkerity/bunkerweb-scheduler:<alte_version> ... bw-autoconf: image: bunkerity/bunkerweb-autoconf:<alte_version> ... bw-ui: image: bunkerity/bunkerweb-ui:<alte_version> ...
-
Starten Sie die Container.
docker compose up -d
-
Entpacken Sie die Sicherung, falls sie gezippt ist.
Entpacken Sie zuerst die Sicherungs-Zip-Datei:
unzip /pfad/zum/sicherungsverzeichnis/backup.zip -d /pfad/zum/sicherungsverzeichnis/
-
Stoppen Sie die Dienste.
sudo systemctl stop bunkerweb bunkerweb-ui bunkerweb-scheduler
-
Stellen Sie die Sicherung wieder her.
sudo rm -f /var/lib/bunkerweb/db.sqlite3 sudo sqlite3 /var/lib/bunkerweb/db.sqlite3 < /pfad/zum/sicherungsverzeichnis/backup.sql sudo chown root:nginx /var/lib/bunkerweb/db.sqlite3 sudo chmod 770 /var/lib/bunkerweb/db.sqlite3
mysql -u <username> -p <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Entfernen Sie die vorhandene Datenbank.
dropdb -U <username> --force <database_name>
-
Erstellen Sie die Datenbank neu.
createdb -U <username> <database_name>
-
Stellen Sie die Sicherung wieder her.
psql -U <username> -d <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
-
Starten Sie die Dienste.
sudo systemctl start bunkerweb bunkerweb-ui bunkerweb-scheduler
-
Downgrade von BunkerWeb.
- Führen Sie ein Downgrade von BunkerWeb auf die vorherige Version durch, indem Sie die gleichen Schritte wie beim Upgrade von BunkerWeb auf der Seite Integration Linux befolgen.
Upgrade von 1.5.X
Was hat sich geändert?
Scheduler
Im Gegensatz zu den 1.5.X-Versionen verwendet der Scheduler-Dienst nicht mehr den Docker-Socket-Proxy, um BunkerWeb-Instanzen abzurufen. Stattdessen verwendet er die neue Umgebungsvariable BUNKERWEB_INSTANCES
.
Über die Umgebungsvariable BUNKERWEB_INSTANCES
Diese neue Variable ist eine durch Leerzeichen getrennte Liste von BunkerWeb-Instanzen in diesem Format: http://bunkerweb:5000 bunkerweb1:5000 bunkerweb2:5000 ...
. Der Scheduler verwendet dann diese Liste, um die Konfiguration der Instanzen abzurufen und die Konfiguration an sie zu senden.
- Der Präfix
http://
ist optional. - Der Port ist optional und standardmäßig der Wert der Umgebungsvariable
API_HTTP_PORT
. - Der Standardwert der Umgebungsvariable
BUNKERWEB_INSTANCES
ist127.0.0.1
.
Mit anderen Worten, das neue System ist vollständig agnostisch und generisch: Der Scheduler ist für die Verwaltung einer Liste von BunkerWeb-Instanzen zuständig und muss sich nicht um die Umgebung kümmern.
Autoconf/Kubernetes/Swarm-Integrationen
Wenn Sie die Integrationen Autoconf
, Kubernetes
oder Swarm
verwenden, können Sie die Umgebungsvariable BUNKERWEB_INSTANCES
auf eine leere Zeichenfolge setzen (damit nicht versucht wird, die Konfiguration an die Standardinstanz 127.0.0.1
zu senden).
Die Instanzen werden automatisch vom Controller abgerufen. Sie können auch benutzerdefinierte Instanzen zur Liste hinzufügen, die möglicherweise nicht vom Controller erfasst werden.
Seit 1.6
verfügt der Scheduler auch über ein neues integriertes System zur Zustandsprüfung, das den Zustand der Instanzen überprüft. Wenn eine Instanz ungesund wird, sendet der Scheduler die Konfiguration nicht mehr an sie. Wenn die Instanz wieder gesund wird, beginnt der Scheduler wieder, die Konfiguration an sie zu senden.
BunkerWeb-Container
Eine weitere wichtige Änderung ist, dass die Einstellungen, die zuvor im BunkerWeb-Container deklariert wurden, jetzt im Scheduler deklariert werden. Das bedeutet, dass Sie Ihre Einstellungen vom BunkerWeb-Container in den Scheduler-Container verschieben müssen.
Obwohl die Einstellungen jetzt im Scheduler-Container deklariert werden, müssen Sie immer noch API-bezogene obligatorische Einstellungen im BunkerWeb-Container deklarieren, wie die Einstellung API_WHITELIST_IP
, die verwendet wird, um die IP-Adresse des Schedulers auf die Whitelist zu setzen, damit er die Konfiguration an die Instanz senden kann. Wenn Sie API_TOKEN
verwenden, müssen Sie es auch im BunkerWeb-Container setzen (und im Scheduler spiegeln), um authentifizierte API-Aufrufe zu ermöglichen.
Einstellungen des BunkerWeb-Containers
Jede API-bezogene Einstellung, die Sie im BunkerWeb-Container deklarieren, muss im Scheduler-Container gespiegelt werden, damit sie weiterhin funktioniert, da die Konfiguration durch die vom Scheduler generierte Konfiguration überschrieben wird.
Standardwerte und neue Einstellungen
Wir haben unser Bestes getan, um die Standardwerte nicht zu ändern, aber wir haben viele andere Einstellungen hinzugefügt. Es wird dringend empfohlen, die Abschnitte Sicherheits-Tuning und Einstellungen der Dokumentation zu lesen.
Vorlagen
Wir haben eine neue Funktion namens Vorlagen hinzugefügt. Vorlagen bieten einen strukturierten und standardisierten Ansatz zur Definition von Einstellungen und benutzerdefinierten Konfigurationen. Weitere Informationen finden Sie im Abschnitt Konzepte/Vorlagen.
Autoconf-Namespaces
Wir haben eine Namespace-Funktion zu den Autoconf-Integrationen hinzugefügt. Mit Namespaces können Sie Ihre Instanzen gruppieren und Einstellungen nur auf sie anwenden. Weitere Informationen finden Sie in den folgenden Abschnitten entsprechend Ihrer Integration:
Vorgehensweise
-
Sichern Sie die Datenbank:
- Bevor Sie mit dem Datenbank-Upgrade fortfahren, stellen Sie sicher, dass Sie eine vollständige Sicherung des aktuellen Zustands der Datenbank durchführen.
- Verwenden Sie geeignete Werkzeuge, um die gesamte Datenbank zu sichern, einschließlich Daten, Schemata und Konfigurationen.
docker exec -it -e BACKUP_DIRECTORY=/pfad/zum/sicherungsverzeichnis <scheduler_container> bwcli plugin backup save
docker cp <scheduler_container>:/pfad/zum/sicherungsverzeichnis /pfad/zum/sicherungsverzeichnis
Informationen für Benutzer von Red Hat Enterprise Linux (RHEL) 8.10
Wenn Sie RHEL 8.10 verwenden und eine externe Datenbank nutzen möchten, müssen Sie das Paket
mysql-community-client
installieren, um sicherzustellen, dass der Befehlmysqldump
verfügbar ist. Sie können das Paket mit den folgenden Befehlen installieren:-
Installieren Sie das MySQL-Repository-Konfigurationspaket
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm
-
Aktivieren Sie das MySQL-Repository
sudo dnf config-manager --enable mysql80-community
-
Installieren Sie den MySQL-Client
sudo dnf install mysql-community-client
-
Installieren Sie das PostgreSQL-Repository-Konfigurationspaket
dnf install "https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-$(uname -m)/pgdg-redhat-repo-latest.noarch.rpm"
-
Installieren Sie den PostgreSQL-Client
dnf install postgresql<version>
BACKUP_DIRECTORY=/pfad/zum/sicherungsverzeichnis bwcli plugin backup save
Zuerst müssen wir das
sqlite
-Paket im Container installieren.docker exec -u 0 -it <scheduler_container> apk add sqlite
Dann sichern Sie die Datenbank.
docker exec -it <scheduler_container> sqlite3 /var/lib/bunkerweb/db.sqlite3 ".dump" > /pfad/zum/sicherungsverzeichnis/backup.sql
sqlite3 /var/lib/bunkerweb/db.sqlite3 ".dump" > /pfad/zum/sicherungsverzeichnis/backup.sql
docker exec -it -e MYSQL_PWD=<database_password> <database_container> mariadb-dump -u <username> <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
MYSQL_PWD=<database_password> mariadb-dump -u <username> <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
docker exec -it -e MYSQL_PWD=<database_password> <database_container> mysqldump -u <username> <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
MYSQL_PWD=<database_password> mysqldump -u <username> <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
docker exec -it -e PGPASSWORD=<database_password> <database_container> pg_dump -U <username> -d <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
PGPASSWORD=<database_password> pg_dump -U <username> -d <database_name> > /pfad/zum/sicherungsverzeichnis/backup.sql
-
Aktualisieren Sie BunkerWeb:
-
Aktualisieren Sie BunkerWeb auf die neueste Version.
-
Aktualisieren Sie die Docker Compose-Datei: Aktualisieren Sie die Docker Compose-Datei, um die neue Version des BunkerWeb-Images zu verwenden.
services: bunkerweb: image: bunkerity/bunkerweb:1.6.5 ... bw-scheduler: image: bunkerity/bunkerweb-scheduler:1.6.5 ... bw-autoconf: image: bunkerity/bunkerweb-autoconf:1.6.5 ... bw-ui: image: bunkerity/bunkerweb-ui:1.6.5 ...
-
Starten Sie die Container neu: Starten Sie die Container neu, um die Änderungen zu übernehmen.
docker compose down docker compose up -d
-
Stoppen Sie die Dienste:
sudo systemctl stop bunkerweb sudo systemctl stop bunkerweb-ui sudo systemctl stop bunkerweb-scheduler
-
Aktualisieren Sie BunkerWeb:
Wenn Sie das BunkerWeb-Paket zuvor gehalten haben, heben Sie die Sperre auf:
Sie können eine Liste der gehaltenen Pakete mit
apt-mark showhold
anzeigensudo apt-mark unhold bunkerweb nginx
Dann können Sie das BunkerWeb-Paket aktualisieren:
sudo apt update && \ sudo apt install -y --allow-downgrades bunkerweb=1.6.5
Um zu verhindern, dass das BunkerWeb-Paket bei der Ausführung von
apt upgrade
aktualisiert wird, können Sie den folgenden Befehl verwenden:sudo apt-mark hold bunkerweb nginx
Weitere Details auf der Seite Integration Linux.
Wenn Sie das BunkerWeb-Paket zuvor gehalten haben, heben Sie die Sperre auf:
Sie können eine Liste der gehaltenen Pakete mit
dnf versionlock list
anzeigensudo dnf versionlock delete package bunkerweb && \ sudo dnf versionlock delete package nginx
Dann können Sie das BunkerWeb-Paket aktualisieren:
sudo dnf makecache && \ sudo dnf install -y --allowerasing bunkerweb-1.6.5
Um zu verhindern, dass das BunkerWeb-Paket bei der Ausführung von
dnf upgrade
aktualisiert wird, können Sie den folgenden Befehl verwenden:sudo dnf versionlock add bunkerweb && \ sudo dnf versionlock add nginx
Weitere Details auf der Seite Integration Linux.
-
Starten Sie die Dienste:
Oder starten Sie das System neu:sudo systemctl start bunkerweb sudo systemctl start bunkerweb-ui sudo systemctl start bunkerweb-scheduler
sudo reboot
-
-
-
Überprüfen Sie die Protokolle: Überprüfen Sie die Protokolle des Scheduler-Dienstes, um sicherzustellen, dass die Migration erfolgreich war.
docker compose logs <scheduler_container>
journalctl -u bunkerweb --no-pager
-
Überprüfen Sie die Datenbank: Überprüfen Sie, ob das Datenbank-Upgrade erfolgreich war, indem Sie die Daten und Konfigurationen im neuen Datenbankcontainer überprüfen.
Rollback
Bei Problemen
Wenn während des Upgrades Probleme auftreten, können Sie auf die vorherige Version der Datenbank zurückgreifen, indem Sie die in Schritt 1 erstellte Sicherung wiederherstellen.
Holen Sie sich Unterstützung und weitere Informationen:
-
Entpacken Sie die Sicherung, falls sie gezippt ist.
Entpacken Sie zuerst die Sicherungs-Zip-Datei:
unzip /pfad/zum/sicherungsverzeichnis/backup.zip -d /pfad/zum/sicherungsverzeichnis/
-
Stellen Sie die Sicherung wieder her.
-
Entfernen Sie die vorhandene Datenbankdatei.
docker exec -u 0 -i <scheduler_container> rm -f /var/lib/bunkerweb/db.sqlite3
-
Stellen Sie die Sicherung wieder her.
docker exec -i <scheduler_container> sqlite3 /var/lib/bunkerweb/db.sqlite3 < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Korrigieren Sie die Berechtigungen.
docker exec -u 0 -i <scheduler_container> chown root:nginx /var/lib/bunkerweb/db.sqlite3 docker exec -u 0 -i <scheduler_container> chmod 770 /var/lib/bunkerweb/db.sqlite3
-
Stoppen Sie den Stack.
docker compose down
-
Stellen Sie die Sicherung wieder her.
docker exec -e MYSQL_PWD=<ihr_passwort> -i <database_container> mysql -u <username> <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Stoppen Sie den Stack.
docker compose down
-
Entfernen Sie die vorhandene Datenbank.
docker exec -i <database_container> dropdb -U <username> --force <database_name>
-
Erstellen Sie die Datenbank neu.
docker exec -i <database_container> createdb -U <username> <database_name>
-
Stellen Sie die Sicherung wieder her.
docker exec -i <database_container> psql -U <username> -d <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Stoppen Sie den Stack.
docker compose down
-
-
Downgrade von BunkerWeb.
services: bunkerweb: image: bunkerity/bunkerweb:<alte_version> ... bw-scheduler: image: bunkerity/bunkerweb-scheduler:<alte_version> ... bw-autoconf: image: bunkerity/bunkerweb-autoconf:<alte_version> ... bw-ui: image: bunkerity/bunkerweb-ui:<alte_version> ...
-
Starten Sie die Container.
docker compose up -d
-
Entpacken Sie die Sicherung, falls sie gezippt ist.
Entpacken Sie zuerst die Sicherungs-Zip-Datei:
unzip /pfad/zum/sicherungsverzeichnis/backup.zip -d /pfad/zum/sicherungsverzeichnis/
-
Stoppen Sie die Dienste.
sudo systemctl stop bunkerweb bunkerweb-ui bunkerweb-scheduler
-
Stellen Sie die Sicherung wieder her.
sudo rm -f /var/lib/bunkerweb/db.sqlite3 sudo sqlite3 /var/lib/bunkerweb/db.sqlite3 < /pfad/zum/sicherungsverzeichnis/backup.sql sudo chown root:nginx /var/lib/bunkerweb/db.sqlite3 sudo chmod 770 /var/lib/bunkerweb/db.sqlite3
mysql -u <username> -p <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
Entfernen Sie die vorhandene Datenbank.
dropdb -U <username> --force <database_name>
-
Erstellen Sie die Datenbank neu.
createdb -U <username> <database_name>
-
Stellen Sie die Sicherung wieder her.
psql -U <username> -d <database_name> < /pfad/zum/sicherungsverzeichnis/backup.sql
-
-
Starten Sie die Dienste.
sudo systemctl start bunkerweb bunkerweb-ui bunkerweb-scheduler
-
Downgrade von BunkerWeb.
- Führen Sie ein Downgrade von BunkerWeb auf die vorherige Version durch, indem Sie die gleichen Schritte wie beim Upgrade von BunkerWeb auf der Seite Integration Linux befolgen.