Befehlsübersicht
Alle Befehle, die Administratoren auf dem Server brauchen, an einer Stelle. Die Seiten, auf die jeder Abschnitt verweist, erklären die Hintergründe.
Wo Sie sie ausführen. Das Installationsskript legt den Stack in /opt/restow ab, root gehört er. Führen Sie die Befehle dort aus (cd /opt/restow), mit sudo. Bei einer Installation von Hand führen Sie sie im Verzeichnis ihrer docker-compose.yml aus. Die Dienste des Stacks heißen postgres, api, worker, scheduler, caddy (die Edge mit der Weboberfläche) und, nur wenn Sie ihn gestartet haben, updater.
Installieren
Abschnitt betitelt „Installieren“Empfohlen: Skript herunterladen, prüfen, ausführen (Erste Schritte):
curl -fsSLO https://github.com/restow-backup/restow/releases/download/v0.1.0/install.shcurl -fsSLO https://github.com/restow-backup/restow/releases/download/v0.1.0/install.sh.sha256sha256sum -c install.sh.sha256sudo bash install.shDer Einzeiler für das neueste Release, mit Fragen oder unbeaufsichtigt. Er führt das Skript aus, ohne es vorher zu prüfen (warum der Weg oben besser ist):
curl -fsSL https://github.com/restow-backup/restow/releases/latest/download/install.sh | sudo bashcurl -fsSL https://github.com/restow-backup/restow/releases/latest/download/install.sh | sudo bash -s -- --non-interactive --domain backup.example.com --edition fullUnbeaufsichtigt zeigt das Skript den Master-Key nicht an: Kopieren Sie ihn sofort aus /opt/restow/.env (siehe Master-Key und Datenbank).
| Befehl | Was er tut |
|---|---|
sudo bash install.sh --dry-run |
Führt die Prüfungen aus und zeigt, was es tun würde; ändert nichts. |
sudo bash install.sh --local |
Eine Evaluierung ohne öffentliche Domain, mit einem Zertifikat von Caddys eigener Zertifizierungsstelle. Nicht für den Produktivbetrieb. |
sudo bash install.sh --with-updater |
Startet zusätzlich den Opt-in-Updater. Lesen Sie zuerst Updates. |
bash install.sh --help |
Jede Option und die Exit-Codes. |
bash install.sh --upgrade |
Zeigt, wie Sie aktualisieren; das Skript selbst aktualisiert nie. |
Das Installations-Log ist /var/log/restow-install.log, ohne Secrets.
Status und Zustand
Abschnitt betitelt „Status und Zustand“sudo docker compose pscurl -fsS http://127.0.0.1:3000/healthzcurl -fsS http://127.0.0.1:3000/readyz/healthz sagt, dass der api-Prozess läuft. /readyz antwortet mit 503 not_ready, bis die Datenbank antwortet und sich Worker und Scheduler gemeldet haben; der Inhalt der Antwort nennt, was fehlt. Die laufende Version steht unten in der Seitenleiste der Weboberfläche.
sudo docker compose logs -f api # fortlaufend; Strg+C beendet die Anzeige, nicht den Dienstsudo docker compose logs --tail 200 worker # die letzten 200 Zeilensudo docker compose logs --since 1h scheduler # die letzte Stundesudo docker compose logs caddy # die Edge: Zertifikate, AnfragenStarten, stoppen, neu starten
Abschnitt betitelt „Starten, stoppen, neu starten“sudo docker compose up -d # starten und eine geänderte .env oder neue Images übernehmensudo docker compose restart api # einen Dienst mit seinem jetzigen Image und seiner Umgebung neu startensudo docker compose stop # alles anhalten; alle Daten bleibendocker compose restart übernimmt weder eine geänderte .env noch ein neues Image; docker compose up -d tut beides.
Ersteinrichtung: das Setup-Token
Abschnitt betitelt „Ersteinrichtung: das Setup-Token“Der Einrichtungsassistent fragt nach einem einmaligen Setup-Token. Bis die Einrichtung abgeschlossen ist, gibt die api es bei jedem Start aus; nehmen Sie das zuletzt ausgegebene:
sudo docker compose logs api | grep 'SETUP TOKEN'Siehe Einrichtungsassistent.
Admin-Zugang
Abschnitt betitelt „Admin-Zugang“Wenn der letzte Inhaber seinen Passkey, seine Authenticator-App oder sein Passwort verloren hat:
sudo docker compose exec api restow admin listsudo docker compose exec api restow admin recover --email owner@example.comsudo docker compose exec api restow helpadmin recover gilt nur für Inhaber, fragt nach einer Bestätigung und einem neuen Passwort und wird im Audit-Log vermerkt. Siehe Admin-Zugang wiederherstellen.
Master-Key und Datenbank
Abschnitt betitelt „Master-Key und Datenbank“Bewahren Sie eine Offline-Kopie von RESTOW_MASTER_KEY auf. Ohne ihn lässt sich keine Sicherung lesen, und es gibt keinen Weg zurück. Dieser Befehl zeigt ihn an; kopieren Sie ihn an einen Offline-Ort:
sudo grep '^RESTOW_MASTER_KEY=' /opt/restow/.envEine Datenbanksicherung, von root geschrieben und nur für root lesbar (vor jedem Update und regelmäßig):
sudo sh -c 'umask 077; docker compose exec -T postgres pg_dump -U restow -Fc restow > restow-$(date +%F).dump'Was Sie sonst noch sichern und wie Sie Sicherungen ohne laufenden Server lesen (restow-restore), steht unter Restow selbst sichern.
Aktualisieren
Abschnitt betitelt „Aktualisieren“Lesen Sie zuerst die Release-Notes jeder Version dazwischen. Kurz, für Version X.Y.Z:
cd /opt/restowsudo sh -c 'umask 077; docker compose exec -T postgres pg_dump -U restow -Fc restow > restow-$(date +%F).dump'NEW=X.Y.Zsudo cp -p .env .env.before-updatesudo sed -i -E 's#^(RESTOW_(WEB_)?IMAGE=ghcr\.io/restow-backup/restow(-web)?(-community)?):.*$#\1:'"$NEW"'#' .envsudo docker compose pullsudo docker compose up -dsudo docker compose logs -f apiDie Schritte einzeln, mit Prüfung der Images vorab und dem Weg zurück: Updates, Schritt für Schritt.
Ein Release prüfen
Abschnitt betitelt „Ein Release prüfen“Ein Image, mit der Identität genau seines Releases (hier 0.1.0; ebenso für restow-web, restow-community und restow-web-community):
cosign verify ghcr.io/restow-backup/restow:0.1.0 \ --certificate-identity https://github.com/restow-backup/restow/.github/workflows/release.yml@refs/tags/v0.1.0 \ --certificate-oidc-issuer https://token.actions.githubusercontent.comDie signierte Prüfsummenliste der Release-Dateien (install.sh, docker-compose.yml, env.example und die übrigen), neben ihnen heruntergeladen:
cosign verify-blob SHA256SUMS --bundle SHA256SUMS.sigstore.json \ --certificate-identity https://github.com/restow-backup/restow/.github/workflows/release.yml@refs/tags/v0.1.0 \ --certificate-oidc-issuer https://token.actions.githubusercontent.comsha256sum -c --ignore-missing SHA256SUMSDie eigene Signatur des Agents, die SBOM und was die Release-Prüfungen abgedeckt haben: Ein Release verifizieren.
Der Updater (opt-in)
Abschnitt betitelt „Der Updater (opt-in)“sudo docker compose --profile updater up -d # starten (nachdem er eingerichtet ist)sudo docker compose --profile updater ps updater # läuft er?sudo docker compose --profile updater logs --tail 100 updatersudo docker compose --profile updater up -d updater # neu erstellen, etwa nach einer Änderung von RESTOW_UPDATER_IMAGEsudo docker compose --profile updater rm -sf updater # wieder entfernenOb er bereit ist oder was ihn blockiert, zeigt die Installationskarte unter Einstellungen → Updates. Lesen Sie vor dem Start Der Updater (opt-in): Er bindet den Docker-Socket ein.
Der Agent auf Servern und Clients
Abschnitt betitelt „Der Agent auf Servern und Clients“Auf dem Rechner selbst. restow-agent ist ein Link in /usr/local/bin, wo dieser Ordner root gehört; sonst nehmen Sie den vollen Pfad, /opt/restow-agent/bin/restow-agent (Linux) oder '/Library/Application Support/Restow/bin/restow-agent' (macOS).
restow-agent status # lokaler Zustand; ohne root (--json für Skripte)sudo restow-agent status # zusätzlich die Hook-Richtliniesudo restow-agent service status # der Systemdienstsudo restow-agent service restartsudo restow-agent backup-now # ein Backup im Vordergrund (mit --debug für Details)sudo restow-agent hooks status # ob Hooks vom Server hier laufen dürfenrestow-agent versionjournalctl -u restow-agent # Linux: das Log des Agents im Journalsudo tail -f /var/log/restow-agent/agent.logsudo restow-agent uninstall # den Agent entfernen (fragt vorher; --yes überspringt die Frage)Mehr unter Installation unter Linux und macOS, Fehlerbehebung und Deinstallation.
Restow entfernen
Abschnitt betitelt „Restow entfernen“Das Installationsskript hat mit Absicht keine Deinstallation: Das Entfernen einer Installation kann Sicherungen zerstören. Dies hält die Container an und entfernt sie; die Datenbank, der lokale Chunk-Store, Caddys Zertifikate, die Sicherungen des Updaters und .env bleiben:
cd /opt/restowsudo docker compose --profile updater downNur wenn Sie sicher sind, dass keine Sicherung darin mehr gebraucht wird:
sudo docker compose --profile updater down --volumes # löscht die Datenbank und den lokalen Chunk-Storecd / && sudo rm -r /opt/restow # .env enthält RESTOW_MASTER_KEYBewahren Sie eine Offline-Kopie von RESTOW_MASTER_KEY auf, solange Sicherungen auf anderem Speicher (S3, NFS, SMB) noch gebraucht werden könnten: restow-restore liest sie allein mit dem Schlüssel. Diese Sicherungen löschen die Schritte oben nicht; entfernen Sie sie im Speicher selbst. Docker bleibt installiert.