OPNexus English Installieren

← Zur Startseite

opnexus – das Kommandozeilen-Werkzeug

Mit opnexus aktualisierst du OPNexus mit einem Befehl, rollst bei Problemen zurück und sicherst die Datenbank – ohne Handarbeit an Containern oder Datenbank.

Überblick

opnexus ist ein Bash-Skript für Installationen aus fertigen Release-Images. Es liegt im Release-Bundle neben der docker-compose.yml und kennt vier Befehle:

BefehlWas er tut
opnexus statusZeigt Version, Dienste und Datenbank-Revision.
opnexus update [VERSION]Zieht neue Images, wechselt, wartet auf „gesund“ und rollt bei Problemen automatisch zurück.
opnexus rollbackMacht das letzte Update rückgängig, bei Bedarf samt Datenbank.
opnexus backupSchreibt sofort ein Backup der Datenbank.

Voraussetzungen

cd /opt/opnexus-1.15.0
./opnexus status

status

Zeigt, was gerade läuft, und – falls vorhanden – das letzte Update, das sich zurückrollen lässt.

$ ./opnexus status
Image-Repo:        git.opnexus.dev/opnexus
OPNEXUS_VERSION:   1
Laufende Version:  1.15.0
DB-Revision:       0004
backend: healthy
frontend: healthy
proxy: running

OPNEXUS_VERSION ist die „Spur“, der die Installation folgt: eine feste Version (1.15.0), eine Minor-Spur (1.15), eine Major-Spur (1) oder latest.

update

./opnexus update            # der in .env gewählten Spur folgen
./opnexus update 1.15.0     # feste Version
./opnexus update 1.15       # neueste 1.15.x

Der Ablauf, Schritt für Schritt:

  1. Zustand lesen. Läuft das Backend nicht oder antwortet es nicht, bricht das Werkzeug ab – erst reparieren, dann updaten.
  2. Images ziehen. Dabei ändert sich am laufenden System nichts. Schlägt der Pull fehl, ist nichts verändert worden.
  3. Alten Zustand merken (Datei .opnexus-update-state), damit ein Rollback weiß, wohin.
  4. Wechseln. OPNEXUS_VERSION in .env wird gesetzt, dann docker compose up -d --no-build. Braucht die neue Version eine Datenbank-Migration, sichert das Backend die Datenbank vorher selbst (pre-upgrade-…dump).
  5. Warten. Bis backend, frontend und proxy gesund sind (höchstens 240 Sekunden).
  6. Bei Fehlern zeigt das Werkzeug das Backend-Log und rollt automatisch zurück.

Vor einem Update lohnt sich ein Blick in den Changelog. Ein Update dauert typischerweise nur den Neustart der Dienste; die Weboberfläche ist dabei kurz nicht erreichbar.

rollback

./opnexus rollback

Setzt die Installation auf den Stand vor dem letzten update zurück: exakt auf den Image-Tag, der vorher eingestellt war.

Wichtig: Log-Historie und Ressourcen-Messwerte sind in den Sicherungen nicht enthalten und nach einem Datenbank-Rollback leer. Alles andere – Hosts, Regeln, Benutzer, Audit-Verlauf – steht auf dem Stand vor dem Update. Zurückgerollt wird immer nur ein Schritt (das letzte Update).

backup

./opnexus backup

Schreibt sofort ein Backup als manual-<Zeit>.dump in das Docker-Volume postgres_backups. Die Daten der beiden großen Tabellen (Firewall-Logs und Ressourcen-Messwerte) fehlen darin bewusst, sonst wäre der Dump riesig; alle Einstellungen und der Verlauf der Änderungen sind enthalten. Zusätzlich legt ein Begleit-Container regelmäßig automatische Sicherungen im selben Volume ab.

docker compose exec postgres-backup ls -l /backups

Konfiguration

EinstellungWirkung
OPNEXUS_DIROrdner mit docker-compose.yml und .env, falls nicht der des Skripts.
OPNEXUS_UPDATE_TIMEOUTSekunden, die auf „gesund“ gewartet wird (Standard 240).
OPNEXUS_NO_AUTO_ROLLBACK=1Kein automatisches Zurückrollen bei fehlgeschlagenem Update; der Zustand bleibt zur Analyse stehen, manuell: opnexus rollback.
.env: OPNEXUS_IMAGE_REPO, OPNEXUS_VERSIONRegistry und Spur der Installation.
.env: POSTGRES_USER, POSTGRES_DB, POSTGRES_PASSWORDZugang zur Datenbank für Backup und Rollback (Standard-Benutzer und -Datenbank: opnexus).

Schutzmechanismen

Fehlerbehebung

MeldungWas zu tun ist
„OPNEXUS_IMAGE_REPO ist in .env nicht gesetzt“Die Installation läuft nicht aus Release-Images. Entweder auf Release-Images umstellen oder lokal mit git pull && docker compose up -d --build aktualisieren.
„Pull fehlgeschlagen — nichts wurde verändert“Registry erreichbar? Gibt es die Version? Dann einfach erneut versuchen.
„Backend läuft nicht oder antwortet nicht“Erst reparieren (docker compose logs backend), dann updaten.
„Update nicht gesund geworden“Das Backend-Log steht darunter; das Werkzeug rollt selbst zurück. Mit OPNEXUS_NO_AUTO_ROLLBACK=1 bleibt der Zustand zur Analyse stehen.
„Kein Update-Zustand … nichts zurückzurollen“Ein Rollback geht nur, wenn vorher ein opnexus update gelaufen ist; dabei wird die Zustandsdatei angelegt.
„Datenbank wurde migriert, aber es gibt kein pre-upgrade-Backup“Das Backup vor der Migration fehlt (z. B. wegen SKIP_MIGRATION_BACKUP). Das Backend bleibt gestoppt; manuell eingreifen, ein eigenes opnexus backup hilft für die Zukunft.

Grenzen

Weitere Hilfe

Ist der einzige Admin ohne Authenticator und ohne Wiederherstellungscodes ausgesperrt, schaltet dieser Befehl auf dem Server die Zwei-Faktor-Anmeldung für ein Konto ab (er braucht Shell-Zugriff auf den Server):

docker compose exec backend python -m app.reset_2fa BENUTZERNAME

Die vollständige Anleitung steht im Handbuch und in der README (Abschnitt „Release-Images & CI“).