Rediacc CLI-Referenz
Überblick
Die **Rediacc CLI** (`rdc`) ist eine Befehlszeilenschnittstelle zur Verwaltung selbst gehosteter Infrastruktur — Maschinen, Repositories, Speicher, Backups und mehr.
Installationsanleitung
Laden Sie die neueste Version für Ihre Plattform von der [Rediacc-Releases-Seite](https://www.rediacc.com) herunter oder installieren Sie über Ihren Paketmanager:
# macOS / Linux
curl -fsSL https://www.rediacc.com | sh
# Or use the packaged binary directly
./rdc --help
Globale Optionen
Jeder Befehl unterstützt diese globalen Flags:
| Option | Beschreibung |
|---|---|
--output | Ausgabeformat (table|json|yaml|csv). Standard mit REDIACC_DEFAULT_OUTPUT überschreiben. |
--config | Bestimmte Konfiguration für diesen Befehl verwenden |
--lang | Sprache überschreiben ({{languages}}) |
--force | Bestätigungsaufforderungen überspringen |
1. Konfigurationsverwaltung
Konfigurationsdateien verwalten: erstellen, wechseln, bearbeiten, Zustand abgleichen und übergreifende Funktionen (Felder, Audit, SSH-Schlüssel, Remote-Sync).
Konfigurationsdateien speichern Verbindungsdetails (API-URL, Anmeldedaten, Standard-Team/Region/Bridge), damit Sie schnell zwischen Umgebungen wechseln können.
1.1 prune
Entfernt überflüssigen Ballast aus der lokalen Konfigurationsdatei unter ~/.config/rediacc/<config>.json. Drei Bereiche werden bereinigt, alle rein lokal (keine SSH/renet-Aufrufe): (1) ACME-Zertifikat-Cache-Einträge, deren Anker GUID/Repo/Maschine nicht mehr in der aktiven Konfiguration steht; (2) archivierte Repositories, deren Schonfrist abgelaufen ist (Standard 7 Tage, siehe defaults.pruneGraceDays); (3) verwaiste Querverweise (machine→strategy, strategy→repo). Aktive Ressourcen, Anmeldedaten, Speicher-Tokens und Known-Hosts werden niemals angerührt. Standardverhalten ist Änderungen anwenden; mit --dry-run nur eine Vorschau anzeigen.
rdc config prune [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Vorschau dessen, was entfernt würde, ohne die Konfigurationsdatei zu ändern. Spiegelt die Standard-Aus-Semantik der anderen prune-Befehle. | Nein | - |
--certs-only | Auf den ACME-Zertifikat-Cache-Bereich beschränken. Überspringt Archivbereinigung und Querverweis-Bereinigung. Schließt sich gegenseitig mit --archives-only und --refs-only aus. | Nein | - |
--archives-only | Auf das Bereinigen abgelaufener Archive beschränken. Überspringt Zertifikat-Cache und Querverweis-Bereinigung. Schließt sich mit --certs-only und --refs-only aus. | Nein | - |
--refs-only | Auf verwaiste Querverweise (machine→strategy, strategy→repo excludes/includes) beschränken. Überspringt Zertifikat-Cache und Archive. Schließt sich mit --certs-only und --archives-only aus. | Nein | - |
--purge-archived | ALLE archivierten Repositories unabhängig vom Alter verwerfen, nicht nur die nach Schonfrist. Äquivalent zum Ausführen von 'rdc repo admin archive purge' für jedes archivierte Repository. Nur verwenden, wenn Sie sicher sind, dass keine der gespeicherten Anmeldedaten zur Wiederherstellung benötigt werden. | Nein | - |
--orphan-repos | Entfernt Repository-Einträge, die keiner Maschine zugeordnet sind. Jeder Eintrag enthält die Zugangsdaten und den SSH-Schlüssel des jeweiligen Repos. Das Löschen ist daher nicht rückgängig zu machen. Führen Sie zuerst 'rdc config reconcile' aus, damit die Zuordnung die tatsächlichen Maschinen widerspiegelt. | Nein | - |
--grace-days <days> | Überschreibt das Archiv-Schonfristfenster (in Tagen) für diesen Aufruf. Greift auf defaults.pruneGraceDays in der Konfiguration zurück, dann auf 7, wenn keines gesetzt ist. | Nein | - |
1.2 init
Eine neue benannte Konfigurationsdatei erstellen
Im lokalen Modus können Sie Machines direkt hinzufügen:
rdc config init [name] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--ssh-key <path> | Pfad zum SSH-Private-Key (z. B. ~/.ssh/id_rsa) | Nein | - |
--renet-path <path> | Pfad zur renet-Binärdatei (Standard: renet in PATH) | Nein | - |
--master-password <password> | Ressourcen mit einem Master-Passwort verschlüsseln | Nein | - |
--server <url> | Account-Server-URL | Nein | - |
1.3 list
Alle Konfigurationsdateien auflisten
rdc config list
1.4 show
Aktuelle Konfigurationsdetails anzeigen
rdc config show [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--reveal | Klartext für sensible Werte anzeigen (nur interaktiv) | Nein | - |
1.5 current
Die aktive Konfiguration anzeigen: Name, Datei, aufgelöster Server und Kanal, Token-Status
rdc config current
1.6 delete
Eine Konfigurationsdatei löschen
rdc config delete <name>
1.7 set
Einen Standardwert setzen (Team, Region, Bridge)
rdc config set <key> <value>
1.8 clear
Standardwerte löschen (alle oder einen bestimmten Schlüssel)
rdc config clear [key]
1.9 recover
Konfiguration aus Sicherungsdatei (.bak) wiederherstellen
rdc config recover [name] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
1.10 ssh
SSH-Schlüsselkonfiguration verwalten
set
SSH-Schlüssel für die aktuelle Konfiguration festlegen
rdc config ssh set [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <path> | Pfad zur privaten SSH-Schlüsseldatei | Ja | - |
--embed | Schlüsselinhalt in der Konfiguration einbetten statt Pfad zu speichern | Nein | - |
show
Aktuelle SSH-Schlüsselkonfiguration anzeigen
rdc config ssh show
remove
SSH-Schlüssel aus der aktuellen Konfiguration entfernen
rdc config ssh remove
1.11 remote
Remote-Konfigurationsspeicher-Verbindung verwalten
enable
Diese Konfiguration mit verschlüsseltem Remote-Speicher verknüpfen
rdc config remote enable [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--headless | Gerätecode-Authentifizierung verwenden (für Server ohne GUI) | Nein | - |
--password | Headless mit einem vorab bereitgestellten Passwort-Slot anmelden (kein Browser) | Nein | - |
--api-url <url> | Account-Server-URL | Nein | - |
--force | Abweichenden lokalen Inhalt ohne Bestätigung durch die Serverkopie ersetzen | Nein | - |
disable
Verbindung zum Remote-Speicher trennen und Konfiguration lokal speichern
rdc config remote disable
status
Remote-Verbindungsstatus anzeigen
rdc config remote status
refresh
Konfiguration erneut vom Remote-Speicher abrufen
rdc config remote refresh
1.12 field
Feldoperationen der Konfiguration mit Pointer-Adressierung (get/set/unset/rotate/list). JSON-Pointer (RFC 6901), z. B. /credentials/cfDnsApiToken.
get
Einzelnen Konfigurationswert per JSON-Pointer lesen. Sensible Felder werden zensiert, außer mit --reveal (nur interaktiv).
rdc config field get [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--pointer <pointer> | JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken) | Ja | - |
--reveal | Klartext für sensible Werte anzeigen (nur interaktives TTY; Audit-Log) | Nein | - |
--digest | SHA-256-Prüfsumme statt des Werts ausgeben (ist für KI-Agenten freigegeben) | Nein | - |
set
Konfigurationswert an einem JSON-Pointer schreiben. Sensible Pfade erfordern --current (Wissensnachweis).
rdc config field set [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--pointer <pointer> | JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken) | Ja | - |
--new <value> | Neuer Wert (als JSON interpretiert, falls er mit {, [, ", true, false, null oder einer Zahl beginnt) | Ja | - |
--current <value> | Aktueller Klartextwert — für Änderungen sensibler Pfade erforderlich (Wissensnachweis) | Nein | - |
unset
Konfigurationswert an einem JSON-Pointer löschen. Sensible Pfade erfordern --current.
rdc config field unset [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--pointer <pointer> | JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken) | Ja | - |
--current <value> | Aktueller Klartextwert — für Löschungen sensibler Pfade erforderlich | Nein | - |
rotate
Einen sensiblen Wert ohne --current rotieren. Nur interaktives TTY; laut geloggt.
rdc config field rotate [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--pointer <pointer> | JSON-Pointer zum sensiblen Feld (z. B. /credentials/cfDnsApiToken) | Ja | - |
--new <value> | Neuer Wert | Ja | - |
list
Alle registrierten Pointer-Vorlagen mit Art und Commit/Verschlüsselungs-Policy auflisten.
rdc config field list [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--sensitive | Nur sensible (nicht-öffentliche) Vorlagen anzeigen | Nein | - |
1.13 edit
Aktive Konfiguration in $EDITOR als zensiertes JSONC öffnen. Nur für Menschen; Agenten werden abgelehnt.
rdc config edit [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--reveal | Klartext für sensible Werte anzeigen (nur interaktives TTY; Audit-Log) | Nein | - |
--dump | Aktuelle Konfiguration als JSONC an stdout ausgeben, statt den Editor zu öffnen (schreibgeschützt; für Agenten sicher, wenn zensiert) | Nein | - |
--apply <file> | Eine bearbeitete JSONC-Datei anwenden (überspringt das Öffnen von $EDITOR) | Nein | - |
--current-secrets <file> | JSON-Datei mit Pointer→alter-Klartext-Zuordnung für den Wissensnachweis bei --apply | Nein | - |
--editor <cmd> | Editor-Befehl (folgt git-Reihenfolge: --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR) | Nein | - |
1.14 audit
Konfigurations-Audit-Log inspizieren (hash-verkettete JSONL in ~/.config/rediacc/audit.log.jsonl)
log
Kürzliche Audit-Einträge als JSON ausgeben
rdc config audit log [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--since <spec> | Nur Einträge nach (z. B. '24h', '7d', ISO-Zeitstempel) | Nein | - |
--path <glob> | Nach JSON-Pointer-Glob filtern (z. B. /credentials/*) | Nein | - |
--actor <kind> | Nach Akteur-Typ filtern (human|agent) | Nein | - |
tail
Neue Audit-Einträge live streamen (Ctrl+C zum Beenden)
rdc config audit tail
verify
Integrität der SHA-256-Hash-Kette über alle Audit-Einträge prüfen
rdc config audit verify
1.15 reconcile
Baut den Laufzeitzustand aus der auf den Maschinen tatsächlich vorhandenen Wahrheit neu auf. Behebt veraltete Anhänge- und Routing-Daten.
rdc config reconcile [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--machine <m...> | Den Abgleich auf diese Maschinen beschränken | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
--accept-observed | Eine deklarierte Platzierung so umschreiben, dass sie mit dem tatsächlichen Standort des Images übereinstimmt, aber nur wenn das eindeutig ist (auf genau einer Maschine beobachtet). Duplikate bleiben Konflikte. | Nein | - |
1.16 rotate-cek
Den Konfigurations-Verschlüsselungsschlüssel der Organisation rotieren
rdc config rotate-cek [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--api-url <url> | Account-Server-URL | Nein | - |
2. Datenspeicherverwaltung
Benannte Speicher-Pools, die Repositories enthalten. Ein Datenspeicher ist mobil (an eine Maschine anhängen, auf eine andere verschieben) und Single-Mounter (immer genau eine Maschine hält ihn). Der implizite Standard-Datenspeicher jeder Maschine wird hier nicht verwaltet.
2.1 resize
Einen Datenspeicher vergrößern oder verkleinern. Dies ist eine Offline-Operation: die Repositories darin müssen gestoppt sein.
rdc datastore resize <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--size <size> | Neue Größe (z. B. 200G) | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.2 fork
Einen Datenspeicher per Copy-on-Write forken. Der Fork erfolgt sofort, und seine Kosten wachsen nicht mit der Größe des Pools. Erfordert das rbd-Backend: ein local-Datenspeicher hat keinen blockebenen Klon, daher forken Repositories darin stattdessen einzeln per Reflink (rdc repo fork).
rdc datastore fork <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--tag <tag> | Tag für den Fork (das Ergebnis ist name:tag) | Ja | - |
--attach-to <machine> | Den Fork sofort an diese Maschine anhängen (erfordert --writes) | Nein | - |
--writes <disposition> | Wohin die Schreibvorgänge des Forks gehen: local (sofort, kurzlebig) oder ceph (dauerhafter Klon) | Nein | - |
--cow-size <size> | Overlay-Größe für --writes local | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.3 status
Einen Datenspeicher anzeigen: sein Backend, seine Anbindung, Nutzung, Repositories und Snapshots. Ein getrennter Datenspeicher meldet weiterhin seinen Datensatz.
rdc datastore status <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.4 create
Einen zusätzlichen benannten Datenspeicher auf einer Maschine erstellen. Ein local-Backend ist ein dateibasierter Pool auf dieser Maschine und bleibt dort. Ein rbd-Backend liegt in Ceph und kann daher auf jede Maschine verschoben werden, die denselben Cluster erreicht. Übergeben Sie --cluster, um ihn zu einem Kubernetes-Datenspeicher zu machen; dieser Rückverweis wird bei der Erstellung festgelegt.
rdc datastore create <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Maschine, auf der der Datenspeicher erstellt werden soll | Ja | - |
--size <size> | Datenspeichergröße (z. B. 100G) | Ja | - |
--backend <type> | Speicher-Backend: local (dateibasiert, verbleibt auf dieser Maschine) oder rbd (Ceph, verschiebbar) | Nein | local |
--pool <name> | Ceph-Pool für das rbd-Backend (Standard: rbd) | Nein | - |
--image <name> | RBD-Image-Name für das rbd-Backend (Standard: der Datenspeichername) | Nein | - |
--cluster <name> | Kubernetes-Cluster, zu dem dieser Datenspeicher gehört. Gesetzt bedeutet nur Kubernetes-Repositories; nicht gesetzt bedeutet nur Docker-Repositories. Bei der Erstellung festgelegt. | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.5 list
Benannte Datenspeicher auflisten: wo sie angehängt sind und was sie enthalten.
rdc datastore list [place]
2.6 attach
Einen Datenspeicher an eine Maschine anhängen. Immer genau eine Maschine hält einen Datenspeicher; ihn woanders anzuhängen verschiebt ihn also: der bisherige Halter gibt ihn zuerst frei, und eine fehlgeschlagene Übergabe lässt die ursprüngliche Anbindung intakt. Ein Fork muss angeben, wohin seine Schreibvorgänge gehen.
rdc datastore attach <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <machine> | Maschine, an die der Datenspeicher angehängt werden soll | Ja | - |
--writes <disposition> | Wohin die Schreibvorgänge eines Forks gehen: local (sofort, kurzlebig, geht beim Trennen verloren) oder ceph (dauerhafter Klon im Pool). Für einen Fork erforderlich. | Nein | - |
--cow-size <size> | Overlay-Größe für --writes local | Nein | - |
--no-auto | Diesen Datenspeicher beim Booten nicht automatisch erneut anhängen | Nein | - |
--force | Einen veralteten Halter zwangstrennen, der den Datenspeicher nicht sauber freigegeben hat | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.7 detach
Einen Datenspeicher von seiner Maschine trennen. Repositories darin werden zuerst gestoppt. Ein mit --writes local angehängter Fork hat keinen Ort, um sein Overlay zurückzuschreiben; das Trennen wirft das Overlay daher weg und erfordert --discard.
rdc datastore detach <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--discard | Einen Fork mit lokalen Schreibvorgängen samt Overlay verwerfen. Die Daten sind nicht wiederherstellbar. | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.8 snapshot
Zeitpunktgenaue Snapshots eines Datenspeichers erstellen und auflisten. Ein ruhender Snapshot kostet nichts und ist das, wovon ein Fork klont.
create
Einen zeitpunktgenauen Snapshot eines Datenspeichers erstellen. Nichts wird gestoppt. Der Zeitpunkt ist crash-konsistent, nicht anwendungskonsistent: Wenn ein bestimmter Schreibvorgang IM Snapshot enthalten sein muss, synchronisieren Sie ihn vorher.
rdc datastore snapshot create <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--snapshot <label> | Snapshot-Label (Standard: ein UTC-Zeitstempel) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
list
Die Snapshots eines Datenspeichers auflisten.
rdc datastore snapshot list <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
2.9 delete
Einen Datenspeicher und alles darin zerstören. Er wird zuerst getrennt; lässt er sich nicht sauber trennen, schlägt das Löschen fehl, statt einen eingehängten Pool verwaist zurückzulassen.
rdc datastore delete <datastore> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--force | Löschen, obwohl noch Repositories darauf verweisen. Deren Daten gehen dabei mit verloren. | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3. Maschinenverwaltung
Zustand einer Remote-Maschine abfragen: Systemressourcen, laufende Container, systemd-Dienste, deployte Repositories und Health-Diagnose. Reine Lesezugriffe; zum Ändern von Repos `repo` verwenden. Wichtige Unterbefehle: status (vollständiger Zustand, eingrenzbar mit --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.
3.1 list
Machines auflisten
rdc machine list [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--search <text> | Suchen in {{field}} | Nein | - |
--sort <field> | Sortieren nach Feld | Nein | - |
--desc | In absteigender Reihenfolge sortieren | Nein | - |
3.2 health
Machine-Zustand für CI/CD-Pipelines prüfen
Der Health-Befehl gibt Systemmetriken, Container-Status, Dienststabilität und Speicherinformationen aus — nützlich für CI/CD-Pipeline-Prüfungen.
rdc machine health <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-t, --team <name> | Team-Name | Nein | - |
3.3 provision
Neue Maschine bei einem Cloud-Anbieter mit OpenTofu bereitstellen
rdc machine provision <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--provider <name> | Name des Cloud-Anbieters (aus machine provider add) | Ja | - |
--region <region> | Standard-Region überschreiben | Nein | - |
--type <type> | Standard-Instanztyp überschreiben | Nein | - |
--image <image> | Standard-Betriebssystem-Image überschreiben | Nein | - |
--ssh-user <user> | SSH-Benutzername für die neue VM (Standard: root) | Nein | - |
--base-domain <domain> | Basisdomain für Infrastruktur (z.B. example.com). Impliziert --infra | Nein | - |
--no-infra | Infrastrukturkonfiguration überspringen (Proxy + DNS) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.4 deprovision
Cloud-bereitgestellte Maschine zerstören und aus Konfiguration entfernen
rdc machine deprovision <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Bestätigungsaufforderung überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.5 prune
Verwaiste Datenspeicher-Ressourcen und veraltete Snapshots von einer Maschine entfernen
rdc machine prune <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Anzeigen, was entfernt würde, ohne Änderungen vorzunehmen | Nein | - |
--orphaned-repos | Löscht jedes Repo-Image auf der Maschine, das nicht in Ihrer lokalen CLI-Konfiguration steht. Grobkörnig — entfernt auch Forks, die von anderen Tools erstellt wurden und keinen lokalen Konfigurationseintrag haben, selbst wenn deren renet-Mirror sie korrekt als Forks identifiziert. Verwenden Sie --prune-unknown für das engere Verhalten, das den Mirror respektiert. | Nein | - |
--prune-unknown | Löscht nur Repos, die der renet .interim/state Mirror nicht klassifizieren kann (nicht in lokaler Konfiguration UND kein fork-markierter Mirror). Strikt enger als --orphaned-repos: Forks ohne Konfiguration werden bewahrt, wenn der Mirror sie identifiziert. Pre-mirror Legacy-Waisen und veraltete Grands mit gelöschtem Konfigurationseintrag fallen beide in diesen Bereich. | Nein | - |
--force-delete-mounted | Setzt die Mount-Sicherheitsprüfung außer Kraft und löscht Repos, auch wenn sie aktuell gemountet sind oder laufende Docker-Container haben. Unterscheidet sich von --force (das nur die Archiv-Schonfrist überschreibt). Gilt sowohl für --orphaned-repos als auch für --prune-unknown. | Nein | - |
--force | Bestätigungsaufforderungen überspringen | Nein | - |
--grace-days <days> | Schonfrist in Tagen für kürzlich archivierte Repos (Standard: 7) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.6 add
Maschine zur aktuellen Konfiguration hinzufügen
rdc machine add <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--ip <address> | Machine-IP-Adresse oder Hostname | Ja | - |
--user <username> | SSH-Benutzername | Ja | - |
--port <port> | SSH-Port | Nein | 22 |
3.7 infra
Infrastrukturkonfiguration verwalten (Proxy, DNS, Zertifikate)
cert
Zwischengespeicherte TLS-Zertifikate verwalten
Zertifikats-Cache entfernen
rdc machine infra cert clear
TLS-Zertifikate von einer Maschine herunterladen und zwischenspeichern
rdc machine infra cert pull <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--no-prune | Bereinigung veralteter Netzwerk-ID-Zertifikate überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
Zwischengespeicherte TLS-Zertifikate auf eine Maschine hochladen
rdc machine infra cert push <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
Zwischengespeicherten Zertifikatsbestand anzeigen
rdc machine infra cert status
push
Infrastrukturkonfiguration auf Maschine übertragen (Traefik-Proxy, Router, Cloudflare DNS). Führen Sie zuerst 'machine infra set <machine>' aus
rdc machine infra push <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
set
Infrastrukturkonfiguration für eine Maschine festlegen (maschinenspezifisch: IPs, Domain, Ports; gemeinsam: Zertifikats-E-Mail, Cloudflare DNS-Token)
rdc machine infra set <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--public-ipv4 <ip> | Öffentliche IPv4-Adresse (pro Maschine) | Nein | - |
--public-ipv6 <ip> | Öffentliche IPv6-Adresse (pro Maschine) | Nein | - |
--base-domain <domain> | Basisdomain für Anwendungen (pro Maschine) | Nein | - |
--cert-email <email> | E-Mail für TLS-Zertifikatsbenachrichtigungen (maschinenübergreifend) | Nein | - |
--cf-dns-token <token> | Cloudflare DNS API-Token für ACME DNS-01-Challenge (maschinenübergreifend) | Nein | - |
--tcp-ports <ports> | Weiterzuleitende TCP-Ports (kommagetrennt, z.B. 25,143,465) | Nein | - |
--udp-ports <ports> | Weiterzuleitende UDP-Ports (kommagetrennt, z.B. 53) | Nein | - |
show
Infrastrukturkonfiguration für eine Maschine anzeigen
rdc machine infra show <machine>
3.8 provider
Cloud-Provider für automatische Maschinenbereitstellung verwalten
add
Cloud-Provider hinzufügen
rdc machine provider add <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--provider <source> | Bekannte Anbieterquelle (z.B. linode/linode, hetznercloud/hcloud) | Nein | - |
--source <source> | Benutzerdefinierte OpenTofu-Anbieterquelle (z.B. vultr/vultr) | Nein | - |
--token <token> | API-Token für den Cloud-Provider | Ja | - |
--region <region> | Standardregion für neue Maschinen | Nein | - |
--type <type> | Standard-Instanztyp/-größe | Nein | - |
--image <image> | Standard-Betriebssystem-Image | Nein | - |
--ssh-user <user> | SSH-Benutzername für neue VMs (Standard: root) | Nein | - |
--resource <type> | Benutzerdefiniert: OpenTofu-Ressourcentyp für VMs | Nein | - |
--label-attr <attr> | Benutzerdefiniert: Attributname für VM-Bezeichnung | Nein | - |
--region-attr <attr> | Benutzerdefiniert: Attributname für Region | Nein | - |
--size-attr <attr> | Benutzerdefiniert: Attributname für Instanztyp | Nein | - |
--image-attr <attr> | Benutzerdefiniert: Attributname für Betriebssystem-Image | Nein | - |
--ipv4-output <attr> | Benutzerdefiniert: Ausgabeattribut für IPv4-Adresse | Nein | - |
--ipv6-output <attr> | Benutzerdefiniert: Ausgabeattribut für IPv6-Adresse | Nein | - |
--ssh-key-attr <attr> | Benutzerdefiniert: Attributname für SSH-Schlüssel | Nein | - |
--ssh-key-format <format> | Benutzerdefiniert: SSH-Schlüsselformat (inline_list oder resource_id) | Nein | - |
--ssh-key-resource <type> | Benutzerdefiniert: OpenTofu-Ressourcentyp für SSH-Schlüssel | Nein | - |
list
Konfigurierte Cloud-Provider auflisten
rdc machine provider list
remove
Cloud-Provider-Konfiguration entfernen
rdc machine provider remove <name>
3.9 remove
Maschine aus der aktuellen Konfiguration entfernen
rdc machine remove <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--force | Die Maschine auch entfernen, wenn noch Repositories darauf platziert sind, sodass diese Platzierungen hängend zurückbleiben. | Nein | - |
3.10 scan-keys
SSH-Hostschlüssel für Maschinen in der aktuellen Konfiguration scannen
rdc machine scan-keys [name]
3.11 setup
Remote-Maschine für Repositories einrichten (installiert renet, konfiguriert Docker, BTRFS-Datenspeicher). Idempotent. Erforderlich nach config machine add und vor repo create
rdc machine setup <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--datastore-path <path> | Datenspeicherpfad auf Remote-Maschine | Nein | /mnt/rediacc |
--datastore-size <size> | Datenspeichergröße (z.B. 95%, 100G) | Nein | 95% |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.12 status
Vollständigen Maschinenstatus anzeigen (System, Repos, Container, Dienste)
rdc machine status [name] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--system | Nur Systeminformationen einbeziehen | Nein | - |
--repositories | Nur Repositories einbeziehen | Nein | - |
--containers | Nur Container einbeziehen | Nein | - |
--services | Nur Dienste einbeziehen | Nein | - |
--network | Nur Netzwerkschnittstellen einbeziehen | Nein | - |
--block-devices | Nur Blockgeräte einbeziehen | Nein | - |
--licenses | Lizenzstatus der Repositorys einbeziehen | Nein | - |
--storage-health | BTRFS-Fragmentierung und reflink-Einsparungen pro Repository anzeigen | Nein | - |
--datastores | Angehängte Datenspeicher anzeigen (Mount, Anhang, Nutzung) | Nein | - |
--health-check | Zustandsprüfungsmodus - beendet mit Code 2 bei ungesunden Containern | Nein | - |
--stability-check | Stabilitätsprüfungsmodus - beendet mit Code 2 bei fehlgeschlagenen/neu startenden Diensten | Nein | - |
--search <text> | Repositories nach Name filtern | Nein | - |
--sync-certs | Auch den ACME-Zertifikats-Cache nach einer Abfrage von der Maschine abrufen | Nein | - |
--strict | Mit Nicht-Null-Code (Code 2) beenden, wenn ein Container den Health-Drift-Schwellenwert überschritten hat | Nein | - |
4. Clusterverwaltung
Cluster provisionieren und verwalten: benannte Sätze von Node-Pools (ceph, k8s-server, k8s-agent, hyperconverged) in einem privaten Netzwerk. Pool-Mitglieder materialisieren sich als Maschinen, sodass jeder -m-Befehl auf ihnen funktioniert.
4.1 create
Einen Cluster deklarieren und provisionieren: Maschinen, Ceph-Pools und Kubernetes. Übergeben Sie --provider und --pool, um in einem Schritt zu deklarieren; ein bloßes create provisioniert einen bereits deklarierten Cluster.
rdc cluster create <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--provider <provider> | Provider: ein cloudProviders-Schlüssel oder 'kvm' | Nein | - |
--pool <spec...> | Pool-Spezifikation name:rolle:anzahl[:größe] (rolle: ceph|k8s-server|k8s-agent|hyperconverged) | Nein | - |
--declare-only | Den Cluster in der Konfiguration erfassen, ohne ihn zu provisionieren | Nein | - |
--network-cidr <cidr> | Privates Netzwerk-CIDR (z. B. 10.0.0.0/24) | Nein | - |
--network-primitive <primitive> | Netzwerk-Primitive (z. B. vlan, vpc, network) | Nein | - |
--control-node <machine> | Explizite Control-Knoten-Maschine (Standard: erstes k8s-server-Mitglied) | Nein | - |
--net-name <name> | KVM: libvirt-Netzwerk für diesen Cluster (z. B. renet12) | Nein | - |
--net-base <prefix> | KVM: Netzwerkpräfix, die ersten drei Oktette (z. B. 192.168.112) | Nein | - |
--net-offset <n> | KVM: Offset, der beim Ableiten der Adresse zu jeder VM id addiert wird | Nein | - |
--control-id <n> | KVM: VM id des Control- und Registry-Knotens (Standard: 1) | Nein | - |
--docker-registry <endpoint> | KVM: In-VM-Docker-Registry-Endpunkt für diesen Cluster | Nein | - |
--ssh-user <user> | SSH-Benutzer für provisionierte Mitglieder | Nein | - |
--base-domain <domain> | Basis-Domain für die öffentliche DNS des Clusters (sonst von einer benachbarten Maschine geerbt) | Nein | - |
--control-ds-size <size> | Größe des Anker-Control-Datenspeichers (Standard 10G) | Nein | - |
--control-ds-backend <backend> | Backend des Anker-Control-Datenspeichers: local | ceph (Standard: ceph, falls der Cluster Ceph nutzt, sonst local) | Nein | - |
--control-ds-pool <pool> | Ceph RBD-Pool für den Anker-Control-Datenspeicher (Ceph-Backend) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.2 status
Alle Cluster auflisten oder die vollständige Konfiguration eines Clusters mit --name anzeigen.
rdc cluster status [cluster]
4.3 scale
Die Mitgliederanzahl eines Pools ändern (fügt Maschinen hinzu/entfernt sie und joint/drained Knoten). k8s-agent-Pools skalieren an Ort und Stelle; ceph-Pool-Wachstum erfolgt direkt über cephadm.
rdc cluster scale <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--pool <pool> | Pool-Name | Ja | - |
--count <n> | Gewünschte Mitgliederanzahl | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.4 destroy
Die provisionierten Mitglieder abbauen und den Cluster sowie seine Maschinen aus der Konfiguration entfernen.
rdc cluster destroy <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Bestätigung überspringen und trotz Abbau-Fehlern fortfahren | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.5 kubeconfig
Die Kubeconfig vom Cluster-Control-Knoten über SSH abrufen und lokal (0600) für kubectl zwischenspeichern.
rdc cluster kubeconfig <cluster>
4.6 fork
Einen ganzen Cluster, einschließlich der Daten seiner Repos, in einen neuen Cluster klonen: koordiniertes Copy-on-Write der Cluster- und PV-Images, dann Neuschreiben der Knoten-Identität, sodass der Fork auf neuen Adressen hochkommt. Das Original läuft weiter.
rdc cluster fork <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--tag <tag> | Fork-Tag | Ja | - |
--to <dest-cluster> | Ziel-Cluster, dessen Knoten den Fork hosten (dessen Control-Knoten und Agenten; ein Cluster kann nicht auf seine eigenen Maschinen forken, da sich zwei k3s keinen Host-Netzwerk-Namespace teilen können) | Ja | - |
--writes <disposition> | Schreibverhalten des Forks: local (kurzlebiges dm-COW-Overlay, kein Ceph-Fußabdruck) | ceph (dauerhafter Klon). Standard: local | Nein | - |
--up | Geforkte Repos hochfahren und die Cluster-Gesundheit prüfen, sobald der Fork hochgekommen ist | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.7 migrate
Einen ganzen Cluster, einschließlich der Daten seiner Repos, auf eine andere Maschine oder ein Rechenzentrum mit kurzem Cutover verschieben (heißes Pre-Copy, dann Stop-and-Restart am Ziel).
rdc cluster migrate <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <dest-cluster> | Ziel | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.8 join
Eine bereits registrierte Maschine als Kubernetes-Agent-Knoten in einen Cluster aufnehmen – mit demselben CA-abgeleiteten Beitritts-Token wie beim Anker- und beim erneuten Beitritt.
rdc cluster join <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--cluster <name> | Cluster, dem die Maschine beitreten soll | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.9 evict
Den Knoten leeren, sein Node-Objekt löschen und seine Cluster-Mitgliedschaft aufheben. Der Cluster wird von der Maschine abgeleitet; eine Maschine, die noch einen Datenspeicher eingehängt hat, wird abgelehnt.
rdc cluster evict <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Draining überspringen, wenn der Knoten bereits tot ist | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.10 rehearse
Ein Release oder Upgrade proben: den Cluster als kurzlebigen Wegwerf-Fork (writes=local, role=rehearsal, ohne Secrets) auf ein Ziel forken, hochfahren, die Gesundheit prüfen und ihn anschließend verwerfen. Das Original wird dabei nie angefasst.
rdc cluster rehearse <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--on <dest-cluster> | Ziel-Cluster, auf dem die Wegwerf-Probe gestartet wird | Ja | - |
--tag <tag> | Optionaler Tag für den Proben-Fork (Standard: mit Zeitstempel) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
4.11 snapshot
Zeitpunktgenaue Snapshots des gesamten Clusters. Ein crash-konsistenter Zeitpunkt über jeden rbd-gestützten Datenspeicher des Clusters, erstellt über Cephs Gruppen-Snapshot: nichts wird gestoppt, und der Cluster bemerkt es nicht. Datenspeicher mit local-Backend haben keine blockebenen-Gruppenprimitive und fallen daher außerhalb dieses Zeitpunkts; dies wird entsprechend gemeldet. Der Zeitpunkt ist crash-konsistent, nicht anwendungskonsistent: Wenn ein bestimmter Schreibvorgang IM Snapshot enthalten sein muss, synchronisieren Sie ihn vorher.
create
Erstellt zu EINEM Zeitpunkt einen Snapshot jedes rbd-gestützten Datenspeichers im Cluster. Nichts wird gestoppt. Jeder Datenspeicher mit local-Backend im Cluster wird als außerhalb dieses Zeitpunkts aufgeführt: er ist nicht Teil des Snapshots. Der Zeitpunkt ist crash-konsistent, nicht anwendungskonsistent: Wenn ein bestimmter Schreibvorgang IM Snapshot enthalten sein muss, synchronisieren Sie ihn vorher.
rdc cluster snapshot create <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--snapshot <label> | Snapshot-Label (Standard: ein UTC-Zeitstempel) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
list
Die Gruppen-Snapshots des Clusters auflisten.
rdc cluster snapshot list <cluster> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
5. MCP-Server
Model Context Protocol Server für KI-Agenten
5.1 serve
MCP-Server starten (stdio-Transport)
rdc mcp serve [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--config <name> | Konfigurationsname für alle Befehle | Nein | - |
--timeout <ms> | Standard-Befehls-Timeout in Millisekunden | Nein | 120000 |
6. Repository-Lebenszyklus
Verschlüsselte Repositories auf Maschinen deployen und verwalten. Wichtige Unterbefehle: create, up (deploy), down (stop), fork (sofortiger CoW-Klon), delete, push/pull (Backup), sync (Dateiübertragung). Lebenszyklus: repo create → repo up → repo down. Details zu Architektur, Routing und Umgebungsvariablen finden Sie unter „Kernkonzepte“ in rdc --help.
6.1 up
Ein Repository bereitstellen oder aktualisieren (einhängen, Rediaccfile up ausführen, das renet compose aufruft). Die Maschine wird aus der Referenz-Platzierung abgeleitet. Proxy-Routen benötigen nach der Bereitstellung ~3s, bis sie aktiv werden. Gibt bei Abschluss das URL-Muster für HTTP-exponierte Dienste aus (rediacc.service_port-Label). Erste Bereitstellung und Forks werden automatisch eingehängt. Die CRIU-Checkpoint-Wiederherstellung wird automatisch erkannt; verwenden Sie --skip-checkpoint, um einen frischen Start zu erzwingen. Verwenden Sie --all --machine <m>, um alle Repositories auf einer Maschine bereitzustellen.
rdc repo up [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--no-start | Das Repository einhängen und vorbereiten, ohne dessen up()-Schritte auszuführen (vereint das ausgemusterte 'repo mount'; LUKS-Öffnen und, bei Cluster-Repositories, PV-Generierung). | Nein | - |
--skip-checkpoint | CRIU checkpoint-Wiederherstellung überspringen, auch wenn checkpoint-Daten vorhanden sind (Neustart erzwingen) | Nein | - |
--tls | Dediziertes TLS-Zertifikat für dieses Repository anfordern (Forks verwenden standardmäßig das gemeinsame Maschinenzertifikat) | Nein | - |
--no-wait | Rückkehr, sobald Container gestartet sind; Healthchecks laufen im Hintergrund weiter | Nein | - |
--all | Alle Repositories bereitstellen, deren Zuhause --machine ist (Stapelform) | Nein | - |
-m, --machine <name> | Mit --all: die Maschine, deren Repositories die Stapeloperation betrifft | Nein | - |
--include-forks | Auch geforkte Repositories einbinden/starten | Nein | - |
--parallel | Repositories parallel starten | Nein | - |
--concurrency <n> | Maximale gleichzeitige Repositories (Standard: 3) | Nein | 3 |
-y, --yes | Bestätigung für Stapeloperationen überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
6.2 down
Docker-Container des Repositorys stoppen (führt Rediaccfile down über renet compose aus). Die Maschine wird aus der Referenz-Platzierung abgeleitet. Hängt das verschlüsselte Volume NICHT aus — das Repository bleibt eingehängt und kann mit 'repo up' neu gestartet werden. Verwenden Sie --unmount, um den LUKS-Container nach dem Stoppen zusätzlich zu schließen (vereint das ausgemusterte 'repo unmount'). Verwenden Sie --checkpoint, um den CRIU-Prozesszustand vor dem Stoppen zu sichern (das nächste 'repo up' stellt ihn automatisch wieder her). Verwenden Sie --all --machine <m>, um alle Repositories auf einer Maschine zu stoppen.
rdc repo down [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--unmount | Nach dem Stoppen zusätzlich aushängen (LUKS-Container schließen). Erforderlich vor 'repo resize' oder um das Volume vollständig zu sichern | Nein | - |
--checkpoint | CRIU checkpoint vor dem Stoppen erstellen (Prozessspeicherzustand für spätere Wiederherstellung via 'repo up' sichern) | Nein | - |
--all | Alle Repositories stoppen, deren Zuhause --machine ist (Stapelform) | Nein | - |
-m, --machine <name> | Mit --all: die Maschine, deren Repositories die Stapeloperation betrifft | Nein | - |
--parallel | Repositories parallel starten | Nein | - |
--concurrency <n> | Maximale gleichzeitige Repositories (Standard: 3) | Nein | 3 |
-y, --yes | Bestätigung für Stapeloperationen überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
6.3 status
Repository-Status abrufen
rdc repo status <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.4 cat
Einen begrenzten Ausschnitt einer Datei innerhalb eines Repositories lesen und auf stdout ausgeben (serverseitig begrenzt; Diagnosemeldungen gehen an stderr)
rdc repo cat <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--remote-file <path> | Zu lesender Dateipfad, relativ zum Mount-Wurzelverzeichnis des Repositories | Ja | - |
--max-bytes <n> | Maximale Anzahl zu lesender und auszugebender Bytes (Standard 1 MiB, Obergrenze 50 MiB) | Nein | - |
--offset <n> | Byte-Offset, ab dem gelesen wird | Nein | - |
--head <lines> | Nur die ersten N Zeilen ausgeben (nicht kombinierbar mit Byte-Bereich) | Nein | - |
--tail <lines> | Nur die letzten N Zeilen ausgeben (nicht kombinierbar mit Byte-Bereich) | Nein | - |
--stat | Nur Größe, Typ und Änderungszeit ausgeben; keinen Inhalt lesen | Nein | - |
--force-binary | Lesen von Binärinhalten (mit NUL-Zeichen) erlauben | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.5 diff
Git-artiger Datei-Diff zwischen zwei Copy-on-Write-geforkten Repositories. Meldet hinzugefügte, geänderte, gelöschte und umbenannte Dateien. Vergleicht das per --name angegebene Repository (Ziel/Neuseite) mit seinem aus der lokalen Konfiguration aufgelösten Eltern-Repository oder mit einem explizit per --base angegebenen Repository (Basis/Altseite). Nur Metadaten und größenunabhängig: vergleicht die verschlüsselten LUKS-Images auf Blockebene ohne Entschlüsselung — ein 1-GB- und ein 100-GB-Repo werden in denselben Millisekunden gediff.
rdc repo diff <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--base <ref> | Vergleichs-Repository (Basis/Altseite); standardmäßig das Eltern-Repository von --name | Nein | - |
--name-only | Nur geänderte Dateipfade ausgeben, einer pro Zeile (ohne Statusbuchstaben) | Nein | - |
--stat | Änderungsumfang pro Datei (Byte- und Block-Deltas) und Summen anzeigen | Nein | - |
--content [path] | Vereinheitlichten Text-Diff für eine einzelne Datei anzeigen (benötigt Dateipfad) | Nein | - |
--fast | Block-Filter vertrauen; Inhalts-Hash-Bestätigung überspringen (kann „Modified“ überschätzen) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.6 list
Repositories auf einer Maschine auflisten
rdc repo list [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--datastore <name> | Die Repositories in diesem Datenspeicher auflisten (aufgelöst zu der Maschine, die ihn aktuell hält) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.7 create
Ein neues Repository erstellen. Geben Sie sein Zuhause einmal an: eine Maschine oder einen Datenspeicher.
rdc repo create <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--datastore <name> | Benannter Datenspeicher, der das Repository hält (Docker-Tiering oder die Cluster-Form) | Nein | - |
--size <size> | Repository-Größe (z.B. 10G, 100G, 1T) | Nein | - |
--no-docker | Docker-Daemon nach der Erstellung nicht starten | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.8 delete
Ein Repository und seine Daten löschen. Der Konfigurationseintrag bleibt erhalten; verwenden Sie --archive-config, um Anmeldedaten für die Wiederherstellung über 'repo admin archive restore' nach deletedRepositories zu verschieben. Nimmt eine positionale <ref> entgegen; ein bloßer Name löst zur Grand-Linie auf und wird abgelehnt, wenn mehrere Repositories denselben Basisnamen teilen — übergeben Sie name:tag, um einen Fork anzusprechen.
rdc repo delete <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--archive-config | Konfigurationseintrag nach deletedRepositories verschieben zur späteren Wiederherstellung | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
6.9 commit
Friert den aktuellen Zustand eines gemounteten Arbeits-Forks in einen neuen unveränderlichen commit ein (wie bei git). Der commit speichert seine Nachricht, den Autor, den Zeitstempel und den Parent im Volume (sodass diese Angaben beim push mitwandern) und wird schreibgeschützt markiert — er verweigert das Mounten. Der Arbeits-Fork bleibt unverändert, so wie git den Arbeitsbaum unangetastet lässt. Checke einen commit mit 'rdc repo checkout' aus, um eine beschreibbare Kopie zu erhalten.
rdc repo commit <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--message <msg> | commit-Nachricht | Ja | - |
--author <author> | commit-Autor | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.10 branch
Erstellt eine benannte branch-Referenz, die auf den aktuellen commit (dessen Spitze) des Arbeits-Forks zeigt. branch-Referenzen liegen in der CLI-Konfiguration (Maschine = Objektspeicher, Konfiguration = Referenzspeicher).
rdc repo branch <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--branch <branch> | Name des neuen Branches | Ja | - |
6.11 checkout
Klont einen unveränderlichen commit (oder eine branch-Spitze) per Reflink in einen frischen beschreibbaren Arbeits-Fork und richtet HEAD darauf aus. Nahezu sofort und von konstanter Dauer (BTRFS-Reflink).
rdc repo checkout <commit-or-branch-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--tag <name> | Name für den neuen beschreibbaren Arbeits-Fork | Ja | - |
--from <workingFork> | Das positionale <commit-or-branch-ref> als Branch-Namen auf diesem Arbeits-Fork auflösen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.12 log
Gibt die commit-Historie aus, die vom aktuellen commit eines Arbeits-Forks (oder von einer commit-Referenz) aus erreichbar ist, und durchläuft dabei die von 'rdc repo commit' aufgezeichnete Parent-Kette. Liest den Spiegel außerhalb des Volumes, sodass kein commit entsperrt wird.
rdc repo log <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.13 merge
Führt einen Quell-Commit oder -Fork in einen Ziel-Arbeits-Fork zusammen. Das aktive Ziel wird niemals direkt verändert: Das Ergebnis wird in einem Reflink-Klon erstellt und atomar eingewechselt. Ein eingehängtes oder laufendes Ziel wird abgelehnt, sofern nicht --force angegeben ist, das es zuvor sauber stilllegt. Ohne --resolve erfolgt eine bildweite Übernahme der Quelle (take-theirs; das Ziel wird zur Quelle); mit --resolve ours|theirs erfolgt eine dateiweise Drei-Wege-Zusammenführung gegen den gemeinsamen Vorfahren, wobei die jeweils einzigartigen Änderungen beider Seiten übernommen und beidseitige Konflikte gemäß dem Flag (ours oder theirs) aufgelöst werden.
rdc repo merge <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--from <source> | Quell-commit oder -fork, aus dem zusammengeführt wird | Ja | - |
--force | Ein eingehängtes/laufendes Ziel zuerst stilllegen, dann zusammenführen (verändert niemals einen aktiven Mount) | Nein | - |
| `—resolve <ours | theirs>` | Dateiweise Konfliktauflösung für einen Three-Way-Merge: 'ours' behält die Version des Ziels, 'theirs' übernimmt die der Quelle. Für ein Fast-Forward des gesamten Images (take-theirs) weglassen. | Nein |
--base <guid> | GUID des gemeinsamen Vorgänger-commits für einen three-way-merge (mit --resolve verwendet). Standardmäßig das Eltern-Element des Quell-commits oder der aktuelle commit des Ziels. | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.14 gc
Löscht unveränderliche Commit-Objekte auf einer Maschine, die kein Branch und kein HEAD erreicht (Erreichbarkeits-GC). Die Maschine ist der Objektspeicher; die CLI-Konfiguration ist der Referenzspeicher. Standardmäßig Probelauf: mit --apply löschen. Berührt niemals ein eingehängtes Objekt oder einen Arbeits-Fork.
rdc repo gc [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
--apply | Die unerreichbaren Commits tatsächlich löschen (Standard ist eine Probelauf-Vorschau) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.15 fork
Einen CoW-Fork (Copy-on-Write) eines Repositorys erstellen. DER FORK IST NAHEZU SOFORT UND VON KONSTANTER DAUER, unabhängig von der Repository-Größe — BTRFS-Reflink klont das zugrunde liegende Image, sodass ein 100-GB-Repository und ein 1-GB-Repository in denselben ~Sekunden forken. Der Fork erhält eine NEUE GUID, networkId, einen neuen IP-Bereich und eine Auto-Route-Domain ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) und ist eine vollständig unabhängige Kopie. Online-Forking wird unterstützt, das Original kann weiterlaufen. Der Fork erbt automatisch die Verschlüsselungs-Anmeldedaten des Originals. Verwenden Sie --checkpoint, um den CRIU-Prozesszustand vor dem Forken zu erfassen; der Fork stellt ihn beim ersten 'repo up' automatisch wieder her (Zustand im Speicher bleibt erhalten). MASCHINENÜBERGREIFENDER FORK: zuerst lokal forken, dann übertragen: (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine>, (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. WARNUNG: Verwenden Sie NICHT "repo push" allein zum Forken — das erzeugt eine Rohkopie mit DERSELBEN GUID (kein unabhängiger Fork). Forken Sie immer zuerst, um eine neue Identität zu erhalten. Auto-Routes verwenden den Repository-Namen, sodass jeder Fork automatisch eine eindeutige Domain erhält.
rdc repo fork <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--tag <name> | Tag für den Fork (erstellt Name:Tag) | Ja | - |
--checkpoint | CRIU checkpoint auf der Quelle vor dem fork erstellen (Prozessspeicherzustand für Wiederherstellung beim fork erfassen) | Nein | - |
--immutable | Markiert den Fork als schreibgeschützt: Er verweigert das Einhängen und hält sein Image dauerhaft byte-stabil (ein eingefrorener Commit/eine Basis für maschinenübergreifenden Delta-Push) | Nein | - |
--up | Nach dem Fork mounten und Dienste starten (Fork + Mount + Up in einem Befehl) | Nein | - |
--no-wait | Mit --up: Rückkehr, sobald Container gestartet sind; Healthchecks laufen im Hintergrund weiter (ideal für Wegwerf-Forks) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.16 replicate
Erzeugt in Sekunden N Lesereplikate eines Repositorys, unabhängig von der Datenbankgröße. Erstellt EINEN Datenspeicher-Snapshot und dann N zeitkonstante Fork-Attaches (Copy-on-Write, verwerfbare lokale Schreibvorgänge), verteilt über die Knoten des Clusters, und wendet ein generiertes Overlay an: ein gepinntes PersistentVolume pro Replikat, ein StatefulSet und zwei Services ({repo}-rw zur Primärinstanz, {repo}-ro über alle Replikate). Replikate sind Point-in-Time-Kopien: kein Replikationsstream, kein Read-your-Writes; jedes Replikat durchläuft vor der Bereitstellung einen Crash-Recovery-Durchlauf. Mit 'repo replicate refresh' werden sie aktualisiert. Replikat-Sets sind verwalteter Zustand: siehe 'repo replicate status', entfernen mit 'repo replicate remove'.
status
Verwaltete Replikat-Sets anzeigen: Replikate, Hosting-Knoten, Fork-Datenspeicher, Snapshot und Refresh-Zeitstempel.
rdc repo replicate status <ref>
remove
Ein Replikat-Set entfernen: seine generierten k8s-Objekte löschen (auf Labels begrenzt), seine Fork-Datenspeicher verwerfen, seinen Snapshot löschen und den Zustand vergessen. Infra-Schritte laufen best-effort, sodass die Entfernung auch bei einem teilweise verschwundenen Cluster konvergiert.
rdc repo replicate remove <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
refresh
Jedes Replikat NACHEINANDER auf einen frischen Point-in-Time-Snapshot aktualisieren: den Replikat-Pod neu starten, seinen Datenspeicher unter demselben Pfad verwerfen und neu forken, und es per Readiness-Prüfung wieder aufnehmen lassen. N-1 Replikate bedienen währenddessen weiterhin Anfragen.
rdc repo replicate refresh <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.17 canary
Ein NEUES Image parallel zum stabilen laufen lassen und den Live-Traffic prozentual zwischen beiden aufteilen (Stufe 2 der Release-Leiter). Legt ein Canary-Deployment + einen Service auf DENSELBEN Live-Daten an (kein Fork: Canary-Nutzer auf geforkten Daten würden veraltete Daten lesen und in eine zum Scheitern verurteilte Kopie schreiben) und weist den Rediacc-Proxy an, den angegebenen Prozentsatz des Traffics des stabilen Hostnamens dorthin zu leiten. Gewicht 0 hält den Canary dark; Gewicht 100 ist der Blue/Green-Umschalt. Vor jeder Canary-Änderung wird automatisch ein Gruppen-Snapshot der Datenspeicher des Clusters erstellt (Stufe 0 der Release-Leiter) als universelles Undo. Die Schema-Kompatibilität zwischen den beiden Versionen (expand-contract) liegt in der Verantwortung der Anwendung. Für schema-BRECHENDE Releases stattdessen Blue/Green verwenden: das Repository forken (sofort, inklusive Daten), den Service des Forks hier mit Gewicht 100 einsetzen und per Neustart des unangetasteten Originals zurückrollen; nach dem Umschalten vorgenommene Schreibvorgänge existieren nur in der neuen Kopie – das Rollback-Fenster ist somit eine Policy-Entscheidung.
status
Verwaltete Canary-Sets anzeigen: Gewicht, Images, stabiler Service und der letzte Release-Undo-Snapshot.
rdc repo canary status <ref>
weight
Den Prozentsatz des zum Canary geleiteten Traffics ändern. Erstellt zuerst einen frischen Release-Undo-Gruppen-Snapshot und wendet dann das Overlay erneut an; der Proxy übernimmt die neue Aufteilung bei seinem nächsten Refresh-Tick. Gewicht 100 leitet den gesamten Traffic zur neuen Version (der Blue/Green-Umschalt).
rdc repo canary weight <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--weight <percent> | Prozentsatz des Traffics, der zum Canary geleitet wird (Ganzzahl 0-100; 0 = dark, 100 = vollständige Umschaltung) | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
remove
Deployment und Service eines Canary entfernen (auf Labels begrenzt); der stabile Service bedient wieder 100 %. Release-Undo-Snapshots bleiben erhalten; sie werden mit den Datenspeicher-Snapshot-Befehlen bereinigt.
rdc repo canary remove <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
create
Ein NEUES Image parallel zum stabilen laufen lassen und ihm einen Prozentsatz des Live-Traffics zuweisen. Der Canary teilt sich die Live-Daten des Repositorys (kein Fork), daher liegt die Schema-Kompatibilität zwischen den beiden Versionen in der Verantwortung der Anwendung. Zuvor wird als Undo ein Gruppen-Snapshot der Datenspeicher des Clusters erstellt.
rdc repo canary create <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--image <image> | Neues Image, mit dem das Canary-Deployment läuft (gegen dieselben Live-Daten) | Ja | - |
--port <port> | Port, auf dem die App lauscht (muss mit dem stabilen Service übereinstimmen) | Ja | - |
--weight <percent> | Prozentsatz des Traffics, der zum Canary geleitet wird (Ganzzahl 0-100; 0 = dark, 100 = vollständige Umschaltung) | Ja | - |
--service <name> | Stabiler Service, mit dem der Traffic aufgeteilt wird (Standard: der Repository-Name) | Nein | - |
--replicas <n> | Anzahl der Canary-Deployment-Replikate (Standard: 1) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.18 resize
Repository offline skalieren (unterstützt Vergrößern und Verkleinern)
rdc repo resize <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--size <size> | Neue Repository-Größe (z.B. 10G, 100G, 1T) | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.19 expand
Eingehängtes Repository online erweitern (ohne Ausfallzeit)
rdc repo expand <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--size <size> | Neue Repository-Größe (z.B. 10G, 100G, 1T) | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.20 trim
Gibt Datenspeicher-Poolspeicher aus eingehängten Repositories zurück (online, ohne Ausfallzeit). In Repositories gelöschte Blöcke werden per fstrim an den Pool zurückgegeben. Ohne Referenz werden alle eingehängten Repositories auf -m sowie der Datenspeicher selbst getrimmt. Für Repositories mit laufendem Backup wird fstrim übersprungen; die Bereinigung über --docker läuft trotzdem
rdc repo trim [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--docker | Docker-Speicher freigeben (gestoppte Container, ungenutzte Images, Build-Cache); läuft auch bei einem aktiven Backup-Snapshot | Nein | - |
--docker-volumes | Zusätzlich ungenutzte Docker-Volumes entfernen | Nein | - |
--report-only | Discard-Status und rückgewinnbaren Speicher anzeigen, ohne zu trimmen | Nein | - |
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.21 policy
Verwaltet die automatische Größenrichtlinie des Speicher-Maintainers der Maschine: vergrößert das Kontingent eines Repositorys online, wenn es voll läuft (nie über max-quota hinaus, nie bei knappem Pool), und führt geplante Trims aus. Automatisches Verkleinern gibt es nicht; dafür 'repo resize' verwenden. Ohne Referenz wird die maschinenweite Standardrichtlinie auf -m angesprochen
set
Setzt Felder der Größenrichtlinie. Nur übergebene Flags werden geändert; andere gespeicherte Felder behalten ihre Werte. Auto-Grow erfordert --max-quota: die Obergrenze ist die ausdrückliche Zustimmung zur Überprovisionierung des Pools
rdc repo policy set [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--auto-grow <bool> | Automatisches Online-Wachstum des Kontingents aktivieren (true/false) | Nein | - |
--max-quota <size> | Obergrenze für Auto-Grow (z. B. 200G); für Auto-Grow erforderlich | Nein | - |
--grow-threshold <percent> | Belegungs-% des Dateisystems, das ein Wachstum auslöst (Standard 85) | Nein | - |
--grow-step <step> | Wachstum pro Schritt: absolut (10G) oder Prozent des Kontingents (20%) | Nein | - |
--auto-trim <bool> | Geplanten Trim aktivieren (true/false) | Nein | - |
--trim-interval <hours> | Mindestabstand in Stunden zwischen automatischen Trims (Standard 24) | Nein | - |
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
get
Zeigt den gespeicherten Maschinenstandard, die Repository-Überschreibung (mit einer Referenz) und die effektive zusammengeführte Richtlinie, nach der der Maintainer handelt
rdc repo policy get [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.22 push
Repository an ein Remote (Rechner oder Speicher) pushen. Der Zieltyp wird automatisch aus der Konfiguration erkannt. Bei Rechner-zu-Rechner-Transfer wird das verschlüsselte Repo-Image mit derselben GUID kopiert — dies ist ein Backup/Migration, kein Fork. Für einen unabhängigen Fork verwenden Sie zuerst 'repo fork', dann push. Eine gepushte Kopie landet als Backup-ARTEFAKT: starten Sie es auf dem Ziel mit 'backup restore <ref> --as <name> -m <target> --up'
rdc repo push <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <remote> | Name des Zielrechners oder Speichers (wird automatisch aus der Konfiguration erkannt) | Nein | - |
--to-machine <machine> | — | Nein | - |
--provision <provider> | Zielrechner automatisch über Cloud-Anbieter bereitstellen, wenn nicht vorhanden | Nein | - |
--checkpoint | CRIU-Checkpoint vor Backup erstellen (erfasst Prozessspeicherstatus für Live-Migration) | Nein | - |
--force | Vorhandenes Backup überschreiben erzwingen | Nein | - |
-w, --watch | Auf Änderungen achten | Nein | - |
--bwlimit <limit> | Bandbreitenlimit für rsync-Transfer (z.B. "6M", "10M") | Nein | - |
--delta-base <guid> | Unveränderliche Basis-GUID, die auf beiden Rechnern byte-identisch vorliegt; nur geänderte Blöcke übertragen (Rechnerziel). Weglassen für automatische Basiswahl | Nein | - |
--strategy <strategy> | Block-Delta-Strategie bei Verwendung einer Delta-Basis: auto, physical oder shared | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.23 pull
Repository von einem Remote (Rechner oder Speicher) pullen. Namen weglassen, um alle Repos zu pullen. Der Quelltyp wird automatisch aus der Konfiguration erkannt. Verwenden Sie --up zum Bereitstellen nach dem Pull
rdc repo pull <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--from <remote> | Name des Quellrechners oder Speichers (wird automatisch aus der Konfiguration erkannt) | Nein | - |
--from-machine <machine> | — | Nein | - |
--force | Vorhandenes Repository überschreiben erzwingen | Nein | - |
--up | Nach dem Pull das Repository auf diesem Rechner mounten und bereitstellen | Nein | - |
-w, --watch | Auf Änderungen achten | Nein | - |
--bwlimit <limit> | Bandbreitenlimit für rsync-Transfer (z.B. "6M", "10M") | Nein | - |
--delta-base <guid> | Unveränderliche Basis-GUID, die auf beiden Rechnern byte-identisch vorliegt; nur geänderte Blöcke empfangen (Rechnerquelle) | Nein | - |
--strategy <strategy> | Block-Delta-Strategie bei Verwendung einer Delta-Basis: auto, physical oder shared | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.24 migrate
Ein Repository mit minimaler Ausfallzeit live von einer Maschine auf eine andere migrieren. Zweiphasiges rsync: Massentransfer während des laufenden Betriebs, dann kurzer Stopp für die Delta-Synchronisierung. Verschiebt das gesamte Repository (das Routing wird auf das neue Zuhause umgestellt) und löscht nach erfolgreichem Umzug die Quell-Images (mit --keep-source behalten). Unterstützt CRIU-Checkpoints für die Migration des Prozessspeicherzustands und automatische Bereitstellung von Zielmaschinen
rdc repo migrate <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <place> | Zielmaschine oder -cluster | Ja | - |
--provision <provider> | Automatische Bereitstellung über Cloud-Anbieter (z.B. hetzner, linode) | Nein | - |
--bwlimit <limit> | Bandbreitenlimit für rsync-Transfer (z.B. 10M) | Nein | - |
--checkpoint | CRIU-Live-Migration: Prozessspeicherzustand erfassen und wiederherstellen | Nein | - |
--delta-base <guid> | Unveränderliche Basis-GUID für das Umschalt-Delta (erweitert; Standard ist die Phase-1-Basis) | Nein | - |
--strategy <strategy> | Block-Delta-Strategie für die Umschaltung: auto, physical oder shared | Nein | - |
--skip-dns | DNS-Umschaltung nach Migration überspringen | Nein | - |
--keep-source | Quell-Images nach einem erfolgreichen Umzug behalten (werden standardmäßig gelöscht; übrig gebliebene Kopien sind über keinen Konfigurationseintrag adressierbar und werden von reconcile als Streufunde markiert) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.25 sync
Repositories und Dateien synchronisieren (Massen-Push/Pull, Dateitransfer)
upload
Dateien in ein Repository hochladen
rdc repo sync upload <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--local <paths...> | Ein oder mehrere lokale Datei- oder Verzeichnispfade (Standard: aktuelles Verzeichnis) | Nein | - |
--remote <path> | Remote-Unterverzeichnis-Pfad innerhalb des Repository | Nein | - |
--remote-file <path> | Einzelner entfernter Dateipfad (relativ zum Repository-Root) als Upload-Ziel. Schließt --remote aus. | Nein | - |
--mirror | Spiegelmodus - Remote-Dateien löschen, die nicht lokal vorhanden sind | Nein | - |
--verify | Dateien mit Prüfsummen nach der Synchronisierung überprüfen | Nein | - |
--confirm | Änderungen anzeigen und vor der Synchronisierung um Bestätigung bitten | Nein | - |
--exclude <patterns...> | Von der Synchronisierung auszuschließende Muster | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
download
Dateien aus einem Repository herunterladen
rdc repo sync download <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--local <path> | Lokaler Verzeichnispfad (Standard: aktuelles Verzeichnis) | Nein | - |
--remote <path> | Remote-Unterverzeichnis-Pfad innerhalb des Repository | Nein | - |
--remote-file <path> | Pfad einer entfernten Datei im Repository (Alternative zu --remote für Einzeldatei-Transfers) | Nein | - |
--mirror | Spiegelmodus - lokale Dateien löschen, die nicht auf Remote vorhanden sind | Nein | - |
--verify | Dateien mit Prüfsummen nach der Synchronisierung überprüfen | Nein | - |
--confirm | Änderungen anzeigen und vor der Synchronisierung um Bestätigung bitten | Nein | - |
--exclude <patterns...> | Von der Synchronisierung auszuschließende Muster | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
status
Synchronisierungsstatus prüfen und lokale/entfernte Dateien vergleichen
rdc repo sync status <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--local <path> | Lokaler Verzeichnispfad (Standard: aktuelles Verzeichnis) | Nein | - |
--remote <path> | Remote-Unterverzeichnis-Pfad innerhalb des Repository | Nein | - |
--remote-file <path> | Pfad einer entfernten Datei im Repository (Alternative zu --remote für Einzeldatei-Transfers) | Nein | - |
6.26 tunnel
Einen SSH-Port-Forward-Tunnel zum Port eines Containers auf einem Remote-Rechner erstellen. Container und Port werden automatisch erkannt, wenn eindeutig. Der Tunnel bleibt offen, bis Sie Strg+C drücken
rdc repo tunnel <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-c, --container <name> | Containername (automatisch erkannt, wenn nur einer läuft) | Nein | - |
--port <port> | Remote-Container-Port zum Weiterleiten | Nein | - |
--local <port> | Lokaler Port (Standard: gleich wie Remote-Port) | Nein | - |
--url-only | Gibt nur die lokale URL aus, sobald der Tunnel bereit ist (maschinenlesbar) | Nein | - |
6.27 secret
Pro-Repo-Geheimnisse verwalten, die bei der Bereitstellung injiziert werden. Nur schreibend: get liefert nur den Digest (nie den Klartext), set/unset erfordern eine Digest-Übereinstimmung über --current oder --rotate-secret. Zwei Zustellungsmodi: env (REDIACC_SECRET_<KEY>) und file (tmpfs unter /var/run/rediacc/secrets/<networkId>/<KEY> über compose `secrets:`). Geheimnisse gelangen nie in das verschlüsselte LUKS-Image; Forks erben keine.
get
Den SHA-256-Digest eines Geheimnisses anzeigen. Der Klartextwert wird bewusst nie zurückgegeben (nur schreibend). Verwenden Sie --current bei einem nachfolgenden set/unset, um einen bereits bekannten Wert zu verifizieren, oder rotieren Sie ihn über `set --rotate-secret`.
rdc repo secret get <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <KEY> | Geheimnisschlüssel in UPPER_SNAKE_CASE (max. 64 Zeichen). Wird als REDIACC_SECRET_<KEY> für env-Modus oder /run/secrets/<key> in Containern für file-Modus bereitgestellt. | Ja | - |
list
Geheimnisschlüssel und -modi auflisten (niemals Werte, niemals Digests).
rdc repo secret list <ref>
set
Geheimnis setzen oder überschreiben. Forks erben nicht; auf dem Fork explizit setzen. Im Agent-Kontext ist eine Digest-Übereinstimmung mit --current erforderlich (passwd-Stil).
rdc repo secret set <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <KEY> | Geheimnisschlüssel in UPPER_SNAKE_CASE (max. 64 Zeichen). Wird als REDIACC_SECRET_<KEY> für env-Modus oder /run/secrets/<key> in Containern für file-Modus bereitgestellt. | Ja | - |
--value <value> | Geheimer Wert. `-` übergeben, um von stdin zu lesen (vermeidet Shell-Verlauf-Offenlegung). | Ja | - |
--mode <mode> | Lieferungsmodus: 'env' (sichtbar in Container-Umgebung, docker inspect) oder 'file' (tmpfs-Datei, niemals in env). Standard: file. | Nein | file |
--current <value> | Vorheriger Klartextwert (passwd-artige Vorbedingung). Erforderlich zum Überschreiben/Löschen; schließt sich mit --rotate-secret gegenseitig aus. | Nein | - |
--rotate-secret | Rotation bestätigen; die Vorbedingung von --current überspringen (als Rotation auditiert). Verwenden, wenn absichtlich rotiert wird, ohne den vorherigen Wert zu verifizieren. | Nein | - |
unset
Ein Geheimnis löschen. Im Agent-Kontext ist eine Digest-Übereinstimmung mit --current erforderlich.
rdc repo secret unset <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <KEY> | Geheimnisschlüssel in UPPER_SNAKE_CASE (max. 64 Zeichen). Wird als REDIACC_SECRET_<KEY> für env-Modus oder /run/secrets/<key> in Containern für file-Modus bereitgestellt. | Ja | - |
--current <value> | Vorheriger Klartextwert (passwd-artige Vorbedingung). Erforderlich zum Überschreiben/Löschen; schließt sich mit --rotate-secret gegenseitig aus. | Nein | - |
--rotate-secret | Rotation bestätigen; die Vorbedingung von --current überspringen (als Rotation auditiert). Verwenden, wenn absichtlich rotiert wird, ohne den vorherigen Wert zu verifizieren. | Nein | - |
6.28 admin
Verwaltungs- und Wartungsbefehle für Repositories.
archive
Verwaltung archivierter Repository-Datensätze.
Archivierte Repository-Anmeldedaten auflisten
rdc repo admin archive list
Alle archivierten Anmeldedaten dauerhaft löschen
rdc repo admin archive purge [name] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
Archivierte Repository-Anmeldedaten wiederherstellen
rdc repo admin archive restore <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--new-name <name> | Neuer Ressourcenname | Nein | - |
validate
Repository-Integrität überprüfen
rdc repo admin validate <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
fsck
Validiert die Referenzen der CLI-Konfiguration (Branches, HEAD) gegen die tatsächlich auf einer Maschine vorhandenen Objekte. Meldet hängende Referenzen (eine Referenz, die auf ein fehlendes Objekt zeigt) und verwaiste Commits (ein unveränderlicher Commit, den keine Referenz erreicht). Schreibgeschützt.
rdc repo admin fsck [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
ownership
Repository-Verzeichnis-Besitz ändern
rdc repo admin ownership <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--uid <uid> | Besitzer-UID (Standard: 7111) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
autostart
Automatischen Repository-Start beim Hochfahren verwalten
Autostart für ein Repository aktivieren
rdc repo admin autostart enable [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
Autostart für ein Repository deaktivieren
rdc repo admin autostart disable [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
Repositories mit aktiviertem Autostart auflisten
rdc repo admin autostart list [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
template
Vorlage auf ein Repository anwenden
Alle eingebetteten Bereitstellungsvorlagen der CLI auflisten
rdc repo admin template list
Wendet eine Vorlage auf ein Repository an. Verwenden Sie einen eingebauten Vorlagennamen (z. B. app-postgres) oder --file für eine eigene JSON-Vorlage. Rediaccfile-Lebenszyklus: up() startet Container (hier Images pullen, Konfigurationen generieren), down() stoppt. Minimales Rediaccfile: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. WICHTIG: Rediaccfile MUSS 'renet compose' verwenden: 'docker compose' wird abgelehnt. UMGEBUNGSVARIABLEN: zwei Ebenen: (a) Rediaccfile-Shell: ${SVCNAME_IP} (z. B. APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) Innerhalb von Containern: renet injiziert automatisch die Umgebungsvariablen SERVICE_IP und REDIACC_NETWORK_ID. eBPF-Bind-Rewriting übernimmt die IP-Isolation transparent, sodass Apps an 0.0.0.0 binden können und der Kernel dies zur korrekten Loopback-IP umschreibt. Health-Checks können localhost verwenden. network_mode:host wird injiziert und ports: wird ignoriert. SPEICHER: Sowohl ${REDIACC_WORKING_DIR}/...-Bind-Mounts als auch benannte Docker-Volumes sind sicher: Das Docker-Datenverzeichnis liegt innerhalb des verschlüsselten LUKS-Mounts. NEUSTART-RICHTLINIE: Neustart-Richtlinien sind sicher: renet entfernt sie automatisch für CRIU-Kompatibilität, und der Watchdog übernimmt die Wiederherstellung. Compose: KEINE network_mode- oder rediacc.*-Labels hinzufügen (renet injiziert diese). Multi-Projekt: jedes Teilprojekt in ein eigenes Unterverzeichnis mit eigenem Rediaccfile legen: renet entdeckt und führt sie automatisch der Reihe nach aus. HTTPS-Routing: (A) Auto-Route (fork-freundlich, empfohlen): traefik.enable NICHT hinzufügen. Renet generiert automatisch https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Für Ports ungleich 80 das Label rediacc.service_port=<port> hinzufügen. Jeder Fork erhält eine eigene Domain. (B) Traefik-Labels (eigene Domain, NICHT fork-freundlich): traefik.enable=true, traefik.http.routers.<n>.rule=Host(`domain`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<port>. Für TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53
rdc repo admin template apply <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--template <name> | Anzuwendende Vorlage | Ja | - |
--file <path> | Pfad zu einer eigenen Vorlagen-JSON-Datei ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): überschreibt den Namen der eingebauten Vorlage | Nein | - |
--grand <name> | Grand-Repository-Name (wird automatisch in GUID aufgelöst) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.29 promote
Daten des Grand-Repositorys durch Daten eines Forks ersetzen. Das Grand-Repository behält seine Identität (GUID, networkId, Domains, Autostart, Backup-Kette), erhält aber die aktualisierten Daten des Forks. Die alten Produktionsdaten werden als Backup-Fork gespeichert. Verwendung: Upgrade im Fork testen → prüfen → Übernahme in die Produktion.
rdc repo promote <fork-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
6.30 logs
Anwendungslogs aus den Containern eines Repositorys anzeigen. Docker-Repositories lesen aus dem eigenen Docker-Daemon des Repositorys; Kubernetes-Repositories lesen die Pod-Logs im Namespace des Repositorys. Betreibt das Repository mehr als einen Container, benennen Sie den gewünschten mit --container.
rdc repo logs <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-c, --container <name> | Container, aus dem gelesen werden soll (nur nötig, wenn das Repository mehr als einen betreibt) | Nein | - |
-f, --follow | Neue Zeilen weiter streamen, bis unterbrochen wird | Nein | - |
--lines <n> | Wie viele Verlaufszeilen angezeigt werden sollen (Standard: 100) | Nein | 100 |
--timestamps | Jeder Zeile ihren Zeitstempel voranstellen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.31 exec
Einen Befehl innerhalb eines Repository-Containers ausführen. Der eigene Exit-Code des Befehls wird direkt durchgereicht, das funktioniert also in Skripten und Bedingungen. Docker-Repositories führen ihn über den Docker-Daemon des Repositorys aus; Kubernetes-Repositories führen ihn im Namespace des Repositorys aus.
rdc repo exec <ref> <cmd...> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-c, --container <name> | Container, in dem ausgeführt werden soll (nur nötig, wenn das Repository mehr als einen betreibt) | Nein | - |
-i, --interactive | Ein Terminal zuweisen (für einen Befehl, der eines erwartet) | Nein | - |
-u, --user <user> | Benutzer, als der der Befehl ausgeführt werden soll | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
7. Entkoppelte Jobs
Verwaltet entkoppelte Jobs auf einem Rechner: auflisten, Status prüfen, Ereignisprotokolle wiedergeben oder live verfolgen, einen davon abbrechen oder abgeschlossene per Garbage Collection entfernen. Ein entkoppelter Job läuft auf dem Rechner unter systemd und übersteht daher eine unterbrochene Verbindung; er kann später wieder angehängt werden.
7.1 list
Listet entkoppelte Jobs auf einem Rechner auf, neueste zuerst
rdc job list [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
7.2 status
Zeigt den Status eines entkoppelten Jobs an
rdc job status <job-id> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
7.3 logs
Gibt das Ereignisprotokoll eines entkoppelten Jobs wieder oder verfolgt es live
rdc job logs <job-id> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
-f, --follow | Streamt, bis der Job abgeschlossen ist | Nein | - |
--since-line <n> | Setzt nach dieser Anzahl Zeilen fort (die Anzahl, die bereits empfangen wurde) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
7.4 cancel
Bricht einen laufenden entkoppelten Job ab
rdc job cancel <job-id> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
7.5 gc
Entfernt abgeschlossene Jobs und deren Protokolle
rdc job gc [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
--older-than <duration> | Erfasst Jobs, deren Abschluss länger als diese Anzahl Stunden zurückliegt (Standard: 168) | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
8. Sicherung & Wiederherstellung
Backup-Strategien, ihre geplanten Läufe und die Artefakte, die sie erzeugen, verwalten: eine Strategie für ein Repository deklarieren, sie bei Bedarf ausführen oder wiederherstellen, und die Archive einsehen, die sie auf einem Speicher-Endpunkt abgelegt hat.
8.1 schedule
Backup-Zeitplan auf einer Remote-Maschine deployen (systemd-Timer)
rdc backup schedule [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Ja | - |
--dry-run | Generierte Units anzeigen ohne zu deployen | Nein | - |
--force | Auch fortfahren, wenn gerade ein Backup läuft (neue Unit greift beim nächsten Timer-Tick; laufender Vorgang behält seine alte Unit) | Nein | - |
--reset-failed | Fehlerstatus berührter Dienste nach erfolgreichem Deploy zurücksetzen (standardmäßig aus, bewahrt das Fehlersignal) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.2 cancel
Laufendes Backup auf einem Remote-Rechner abbrechen
rdc backup cancel [strategy] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.3 list
Backup-Artefakte auf einer Maschine oder in einem Speicher auflisten.
rdc backup list [artifact-ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Nein | - |
--storage <name> | Artefakte auf diesem Speicher-Endpunkt auflisten | Nein | - |
--path <subdir> | Unterverzeichnis innerhalb des Speicher-Stammverzeichnisses. Wenn weggelassen, werden hot/ und cold/ aufgelistet und zusammengeführt. | Nein | - |
-w, --watch | Auf Änderungen achten | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.4 restore
Ein Backup-Artefakt in ein lebendes Repository verwandeln. Die Platzierung wird hier festgelegt.
rdc backup restore <artifact-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--as <name> | Name für das wiederhergestellte Repository (Standard: Artefaktname) | Nein | - |
-m, --machine <name> | Machine-Name | Nein | - |
--datastore <name> | In diesen benannten Datenspeicher wiederherstellen (dessen angehängte Maschine hostet ihn) | Nein | - |
--up | Das wiederhergestellte Repository nach der Übertragung bereitstellen | Nein | - |
--health-window <seconds> | Gesamtes Zeitfenster für das Health-Gate in Sekunden (Standard 300) | Nein | - |
--health-timeout <seconds> | Timeout pro Healthcheck-Versuch in Sekunden (Standard 30) | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.5 run
Backup sofort auf einem Remote-Rechner auslösen
rdc backup run [strategy] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Ja | - |
-w, --watch | Auf Änderungen achten | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.6 status
Backup-Status und Timer-Zustand auf einem Remote-Rechner anzeigen
rdc backup status [strategy] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.7 strategy
Benannte Backup-Strategien verwalten (Hot/Cold-Modi, Ziele, Zeitplanung)
set
Backup-Strategie erstellen oder aktualisieren
rdc backup strategy set <strategy> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--destination <name> | Zielname innerhalb der Strategie | Nein | - |
--storage <name> | Speicherkonfigurationsname (rclone-Zugangsdaten) | Nein | - |
--cron <expression> | Cron-Zeitplan (z.B. "0 * * * *" für stündlich) | Nein | - |
--mode <mode> | Backup-Modus: "hot" (ohne Ausfallzeit) oder "cold" (Stoppen, Snapshot, Neustart) | Nein | - |
--bwlimit <limit> | Rclone-Bandbreitenlimit (z.B. "6M", "10M:off", "08:00,3M;22:00,10M") | Nein | - |
--include <repos> | Nur diese Repos sichern (kommagetrennte Namen) | Nein | - |
--exclude <repos> | Diese Repos vom Backup ausschließen (kommagetrennte Namen) | Nein | - |
--folder <path> | Unterordner im Storage-Bucket für dieses Ziel (z. B. hot, cold) | Nein | - |
--enable | Strategie oder Ziel aktivieren | Nein | - |
--disable | Strategie oder Ziel deaktivieren | Nein | - |
bind
Backup-Strategie an eine Maschine binden, damit ihr Zeitplan dort deployed wird
rdc backup strategy bind <strategy> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
unbind
Backup-Strategie von einer Maschine lösen
rdc backup strategy unbind <strategy> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine | Ja | - |
remove
Backup-Strategie oder Ziel entfernen
rdc backup strategy remove <strategy> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--destination <name> | Nur dieses Ziel entfernen (andere Ziele bleiben erhalten) | Nein | - |
list
Alle Backup-Strategien auflisten
rdc backup strategy list
show
Backup-Strategie-Details anzeigen
rdc backup strategy show [strategy]
9. Speicherverwaltung
Externe Backup-Speicher-Endpunkte verwalten (S3 und andere rclone-kompatible Ziele): registrieren und entfernen, auflisten, was registriert ist, die darin enthaltenen Artefakte durchsuchen und verwaiste Backups bereinigen.
9.1 list
Speicher-Endpunkte auflisten. Geben Sie einen Namen für vollständige Details an.
rdc storage list [name] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--reveal | Speicherkonfiguration im Klartext anzeigen (nur interaktives TTY; Audit-Log) | Nein | - |
9.2 browse
Dateien in einem Speichersystem durchsuchen
rdc storage browse <storage> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--path <subpath> | Unterverzeichnispfad zum Auflisten | Nein | “ |
9.3 prune
Verwaiste Backups aus dem Speicher löschen, die in keiner Konfiguration mehr vorhanden sind. Multi-Config-sicher mit Schonfrist-Schutz.
rdc storage prune <storage> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Ausführungsmaschine: führt rclone list/delete-Aufrufe gegen den Speicher aus. Erforderlich, weil Clients rclone nicht lokal installiert haben sollen; Speicheranmeldedaten kommen weiterhin aus Ihrer lokalen Konfiguration. | Ja | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
--force | Bestätigungsaufforderungen überspringen | Nein | - |
--force-delete-mounted | Setzt die Mount-Sicherheitsprüfung außer Kraft und löscht Cloud-Backups, auch wenn die Quell-GUID aktuell gemountet ist oder einen laufenden Container auf der Ausführungsmaschine hat. Unterscheidet sich von --force (das nur die Schonfrist für archivierte Repos überschreibt). | Nein | - |
--grace-days <days> | Schonfrist in Tagen für kürzlich archivierte Repos (Standard: 7) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
--skip-router-restart | Neustart des Route-Servers nach Binary-Update überspringen | Nein | - |
9.4 add
Einen Speicher-Endpunkt registrieren.
rdc storage add <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--vault <json> | Vault-Inhalt als JSON-String | Ja | - |
9.5 import
Speicher aus einer rclone-Konfigurationsdatei importieren
rdc storage import <file> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--name <name> | Nur diesen benannten Abschnitt importieren | Nein | - |
9.6 remove
Einen Speicher-Endpunkt aus der Konfiguration entfernen.
rdc storage remove <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
10. VS Code-Integration
VS Code Remote SSH zu einer Maschine oder einem Repository öffnen
10.1 connect
VS Code auf einer Maschine oder innerhalb eines Repositorys öffnen.
rdc vscode connect <target> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-f, --folder <path> | Pfad zum Remote-Ordner zum Öffnen | Nein | - |
--url-only | Drucke die VS Code-URI statt sie zu starten | Nein | - |
-n, --new-window | In neuem VS Code-Fenster öffnen | Nein | - |
--skip-env-setup | Remote-Umgebungs-Setup überspringen | Nein | - |
--insiders | VS Code Insiders-Einstellungen verwenden | Nein | - |
--browser | Browser-VS Code innerhalb der Repository-Sandbox bereitstellen (kein lokales VS Code erforderlich) | Nein | - |
--no-open | URL ausgeben, ohne den lokalen Browser zu starten | Nein | - |
--local <port> | Lokaler Port (Standard: gleich wie Remote-Port) | Nein | - |
--server-provider <id> | Browser-VS-Code-Server-Implementierung (openvscode, code-server) | Nein | - |
--server-archive <file> | Vorinstallierter Server-Archivpfad auf der Maschine (für Offline-Installationen) | Nein | - |
10.2 list
Konfigurierte VS Code-SSH-Verbindungen auflisten
rdc vscode list
10.3 cleanup
Entfernen Sie VS Code-SSH-Konfigurationen
rdc vscode cleanup [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--all | Alle rediacc-SSH-Konfigurationen entfernen | Nein | - |
-c, --connection <name> | Spezifische Verbindung entfernen | Nein | - |
10.4 check
Überprüfen Sie die VS Code-Installation und Konfiguration
rdc vscode check [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--insiders | VS Code Insiders-Einstellungen verwenden | Nein | - |
10.5 serve
Browser-VS-Code-Server innerhalb der Sandbox verwalten
status
Anzeigen, ob der Browser-VS-Code-Server läuft
rdc vscode serve status <target> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--server-provider <id> | Browser-VS-Code-Server-Implementierung (openvscode, code-server) | Nein | - |
stop
Browser-VS-Code-Server stoppen
rdc vscode serve stop <target> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--server-provider <id> | Browser-VS-Code-Server-Implementierung (openvscode, code-server) | Nein | - |
11. SSH-Terminalzugang
Ein SSH-Terminal zu einer Maschine oder einem Repository öffnen. Das Ziel ist ein Maschinenname oder eine Repository-Referenz, und der Repository-Kontext (DOCKER_HOST, Arbeitsverzeichnis, Umgebung) wird automatisch eingerichtet. Verwenden Sie `-c`, um einen einzelnen Befehl nicht-interaktiv auszuführen. Für Container-Logs oder einen einmaligen Befehl in einem Container verwenden Sie `repo logs` und `repo exec`. Für VS Code verwenden Sie `vscode`.
11.1 connect
Eine Shell auf einer Maschine öffnen, oder innerhalb eines Repositorys mit eingerichtetem Docker.
rdc term connect <target> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-c, --command <cmd> | Ausführen eines Befehls statt interaktiver Shell | Nein | - |
--external | Erzwinge Start in externem Terminal-Fenster | Nein | - |
--reset-home | Per-Repo Home-Overlay für einen Neustart zurücksetzen | Nein | - |
12. Schnellbefehle (Shortcuts)
12.1 run
Führen Sie eine Funktion aus (Kurzform: queue create)
rdc run
12.2 trace
Eine Aufgabe verfolgen (Kurzbefehl für: queue trace)
rdc trace
12.3 cancel
Eine Aufgabe abbrechen (Kurzbefehl für: queue cancel)
rdc cancel
12.4 retry
Eine fehlgeschlagene Aufgabe wiederholen (Kurzbefehl für: queue retry)
rdc retry
13. Abonnementverwaltung
Lizenzierung und Abonnement-Tokens verwalten. Anmelden mit login, prüfen mit status, Lizenzen mit refresh neu ausstellen.
13.1 login
Mit einem API-Token aus dem Webportal authentifizieren
rdc subscription login [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-t, --token <token> | API-Token (rdt_...) | Nein | - |
--server <url> | Account-Server-URL | Nein | - |
13.2 logout
Gespeichertes Abonnement-Token löschen
rdc subscription logout
13.3 status
Abonnement und Lizenzstatus für eine Maschine anzeigen.
rdc subscription status [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Nein | - |
13.4 refresh
Lizenzen vom Account-Server aktualisieren.
rdc subscription refresh [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Nein | - |
--repo <ref> | Repository-Referenz: Name, oder name:tag, optional mit @machine (z. B. shop oder shop:test) | Nein | - |
14. CLI-Updates
CLI-Updates prüfen und anwenden
rdc update [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Update erzwingen, auch wenn bereits aktuell | Nein | - |
--check-only | Nur auf Updates prüfen, ohne herunterzuladen | Nein | - |
--rollback | Auf die vorherige Version zurücksetzen | Nein | - |
--status | Auto-Update-Status und Diagnose anzeigen | Nein | - |
--channel <channel> | Release-Kanal festlegen (stable oder edge) | Nein | - |
15. Danksagungen an Dritte
Die mit rdc gebündelten Drittanbieter-Komponenten ausgeben: die von renet eingebetteten und übertragenen Binaries (CRIU, rsync, rclone), die eingebettete Node.js-Laufzeitumgebung und die gebündelten npm-Abhängigkeiten. Zeigt Versionen, SPDX-Lizenzkennungen und die für GPL-Compliance erforderlichen versionsgenauen Quellarchiv-URLs. Verwenden Sie --licenses, um den vollständigen THIRD_PARTY_LICENSES-Text auszugeben, der mit Release-Builds gebündelt ist.
rdc credits [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--licenses | Den vollständigen THIRD_PARTY_LICENSES-Text ausgeben, der mit Release-Builds gebündelt ist | Nein | - |
16. Systemdiagnose
CLI-Umgebung und Renet-Integration diagnostizieren
rdc doctor
17. Lokale VM-Operationen
Lokale VM-Bereitstellung und -Verwaltung über KVM/QEMU/Hyper-V (Plattform wird automatisch erkannt). Nicht für Remote-Maschinen gedacht — dafür `machine` verwenden. Wichtige Unterbefehle: up (VMs starten), down (stoppen), status (laufende VMs auflisten), ssh (mit VM verbinden), setup (Voraussetzungen installieren), check (Host-Bereitschaft prüfen).
17.1 up
VM-Cluster lokal bereitstellen
rdc ops up [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Neustart aller VMs erzwingen | Nein | - |
--parallel | VMs parallel erstellen | Nein | - |
--basic | Minimaler Cluster (Bridge + 1 Worker) | Nein | - |
--lite | VM-Bereitstellung überspringen (nur Status) | Nein | - |
--skip-orchestration | Cluster-Orchestrierung überspringen | Nein | - |
--backend <backend> | Virtualisierungs-Backend (kvm|qemu, automatisch erkannt) | Nein | - |
--os <name> | VM-Betriebssystem (z.B. ubuntu-24.04, debian-12) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
17.2 down
VM-Cluster zerstören
rdc ops down [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--backend <backend> | Virtualisierungs-Backend (kvm|qemu, automatisch erkannt) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
17.3 status
VM-Cluster-Status anzeigen
rdc ops status [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--backend <backend> | Virtualisierungs-Backend (kvm|qemu, automatisch erkannt) | Nein | - |
17.4 ssh
SSH-Verbindung zu einer VM
rdc ops ssh [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--vm-id <id> | ID der virtuellen Maschine | Ja | - |
-c, --command <cmd> | Ausführen eines Befehls statt interaktiver Shell | Nein | - |
--backend <backend> | Virtualisierungs-Backend (kvm|qemu, automatisch erkannt) | Nein | - |
--user <user> | SSH-Benutzername für VM-Verbindung | Nein | - |
17.5 setup
Virtualisierungsvoraussetzungen installieren
rdc ops setup [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
17.6 check
Virtualisierungsvoraussetzungen überprüfen
rdc ops check
18. Executor-Dienst
Diesen Prozess als Executor ausführen, damit Clients Befehle darüber ausführen können, statt sich selbst per SSH zu verbinden
rdc serve [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-p, --port <port> | Port, auf dem gelauscht werden soll | Nein | 8080 |
--host <host> | Adresse, an die gebunden werden soll | Nein | 0.0.0.0 |
--mode <mode> | Platzierung: daemon (Kundenhost) oder container | Nein | daemon |
Häufige Fehlermeldungen
Wenn etwas schiefgeht, liefert die CLI klare Fehlermeldungen:
| Fehler | Bedeutung |
|---|---|
| Authentifizierung erforderlich. Ausführen: rdc subscription login | Sie müssen sich zuerst anmelden |
| Keine aktive Konfiguration. Erstellen Sie eine mit: rdc config init <name> | Keine Konfiguration aktiv — erstellen Sie eine mit `rdc config init` |
| Berechtigung verweigert | Ihr Konto verfügt nicht über die erforderlichen Berechtigungen |
| Machine-Name erforderlich. Verwenden Sie --machine <name> | Geben Sie eine Maschine mit `--machine` an oder setzen Sie einen Kontextstandard |
| Team-Name erforderlich. Verwenden Sie --team oder legen Sie einen Standardwert fest mit: rdc config set team <name> | Geben Sie ein Team mit `--team` an oder setzen Sie einen Kontextstandard |
| Regionsname erforderlich. Verwenden Sie --region oder legen Sie einen Standardwert fest mit: rdc config set region <name> | Geben Sie eine Region mit `--region` an oder setzen Sie einen Kontextstandard |
Ausgabeformate
Alle List/Get-Befehle unterstützen mehrere Ausgabeformate über `--output`:
rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table # default
Dies erleichtert die Integration der Rediacc CLI in Skripte, CI/CD-Pipelines und Automatisierungsworkflows.