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 | - |
--gone-machine-repos | Repository-Einträge archivieren, die auf einer nicht mehr in der Konfiguration vorhandenen Maschine liegen. Archiviert, nicht gelöscht: Jeder behält seine Zugangsdaten und bleibt bis zum Ablauf der Archivfrist wiederherstellbar. Wählt nur diesen Bereich: Zertifikat-Cache, Archive und Querverweise werden übersprungen, sofern nicht auch ihr eigenes --*-only angegeben ist. | 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 |
|---|---|---|---|
--master-password | Headless mit einem vorab bereitgestellten Passwort-Slot anmelden (kein Browser) | Nein | - |
--master-password-stdin | Wie --master-password, liest aber das Master-Passwort von stdin | Nein | - |
--api-url <url> | Account-Server-URL | Nein | - |
--force | Abweichenden lokalen Inhalt ohne Bestätigung durch die Serverkopie ersetzen | Nein | - |
--config-id <id> | An diese bestehende Config des Speichers anhängen, statt einen neuen Eintrag anzulegen | Nein | - |
disable
Verbindung zum Remote-Speicher trennen und Konfiguration lokal speichern
rdc config remote disable [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--local | Nur auf diesem Gerät trennen, aus der zwischengespeicherten Kopie und ohne den Server zu kontaktieren | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
status
Remote-Verbindungsstatus anzeigen
rdc config remote status
master-password
Master-Passwort dieses Mitglieds verwalten (der Passwort-Slot)
Master-Passwort ändern: den Config-Schlüssel aus der Registrierung dieses Geräts neu unter einem neuen Passwort-Slot verpacken
rdc config remote master-password change [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--new-master-password-stdin | Neues Master-Passwort von stdin lesen (sonst REDIACC_NEW_STORE_MASTER_PASSWORD oder eine Eingabeaufforderung im Terminal) | Nein | - |
refresh
Konfiguration erneut vom Remote-Speicher abrufen
rdc config remote refresh
versions
Frühere Versionen dieser Konfiguration auflisten, die der Server aufbewahrt
rdc config remote versions [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--explain | Die JSON-Pointer anzeigen, die jede Version geändert hat, anhand der vom Server aufbewahrten Versionen | Nein | - |
restore
Eine frühere Version dieser Konfiguration als neueste Version veröffentlichen
rdc config remote restore <version> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
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, erforderlich für Änderungen sensibler Pfade (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, erforderlich für Löschungen sensibler Pfade | 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 | - |
1.17 access
Die Zugriffsschlüssel der Konfiguration verwalten: öffentliche SSH-Schlüssel, die die CLI mit einer from=-Beschränkung auf die festgelegten IPv4- und IPv6-Bereiche in die authorized_keys einer Maschine schreibt. Einen Schlüssel mit 'machine access set' an eine Maschine binden, dann mit 'machine access push' anwenden
add
Einen Zugriffsschlüssel hinzufügen oder einen vorhandenen an Ort und Stelle aktualisieren, wobei seine Maschinenbindungen erhalten bleiben. Hier angegebene Bereiche gelten für den Schlüssel auf jeder Maschine, sofern eine Bindung nicht eigene festlegt; ohne Bereiche gelten die der gesamten Konfiguration
rdc config access add <key> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--public-key <key> | Zeile mit dem öffentlichen OpenSSH-Schlüssel oder Pfad zu einer Datei, die ihn enthält | Ja | - |
--hosted-executor | Beobachtete Egress-Bereiche des Hosted Executors hinzufügen (104.28.0.0/16 und 2a09:bac0::/29) | Nein | - |
--ipv4 <cidrs> | IPv4-Bereiche in CIDR-Notation (kommagetrennt, z. B. 203.0.113.0/24) | Nein | - |
--ipv6 <cidrs> | IPv6-Bereiche in CIDR-Notation (kommagetrennt, z. B. 2001:db8::/32) | Nein | - |
--no-restrict | Nur from= schreiben, ohne die Beschränkungen no-forwarding, no-pty und no-user-rc | Nein | - |
remove
Einen Zugriffsschlüssel aus der Konfiguration entfernen
rdc config access remove <key>
ranges
Die Quellbereiche festlegen, die jeder Zugriffsschlüssel verwendet, sofern der Schlüssel oder seine Maschinenbindung nicht eigene festlegt. Ohne Optionen werden sie angezeigt
rdc config access ranges [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--hosted-executor | Beobachtete Egress-Bereiche des Hosted Executors hinzufügen (104.28.0.0/16 und 2a09:bac0::/29) | Nein | - |
--ipv4 <cidrs> | IPv4-Bereiche in CIDR-Notation (kommagetrennt, z. B. 203.0.113.0/24) | Nein | - |
--ipv6 <cidrs> | IPv6-Bereiche in CIDR-Notation (kommagetrennt, z. B. 2001:db8::/32) | Nein | - |
--clear | Quellbereiche der gesamten Konfiguration entfernen | Nein | - |
list
Zugriffsschlüssel der Konfiguration auflisten
rdc config access list
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>
3.3 repair
Die sicheren Korrekturen für die Befunde einer Maschine ausführen und erneut prüfen (Exit 0: nichts offen, 1: Warnungen oder Betreiberpunkte offen, 2: ein Fehler offen oder eine Korrektur fehlgeschlagen)
rdc machine repair <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Die Korrekturen auflisten, die laufen würden, ohne sie auszuführen | Nein | - |
--code <code> | Nur diesen Befundcode korrigieren (wiederholbar) | Nein | - |
--with-backup | auto-with-backup-Korrekturen zulassen, jeweils nach einem erfolgreichen Snapshot des Repositorys | Nein | - |
--window-override | Korrekturen mit window=only auch außerhalb des Wartungsfensters ausführen | Nein | - |
--set-window <window> | Das Wartungsfenster der Maschine speichern (HH:MM-HH:MM, UTC) oder mit off löschen, dann beenden | Nein | - |
3.4 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.5 deprovision
Cloud-bereitgestellte Maschine zerstören und aus Konfiguration entfernen
rdc machine deprovision <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Bestätigungsaufforderung überspringen | Nein | - |
--archive-repos | Die Konfigurationseinträge der Repositorys auf dieser Maschine archivieren (Zugangsdaten bleiben erhalten, wiederherstellbar) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.6 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.7 converge
Startet jeden Repository-Daemon, der noch mit einem älteren Runtime-Layout läuft, nacheinander neu, damit er auf das aktuelle wechselt. Die CLI erledigt das nach einem renet-Upload selbst; von Hand lässt sich damit der Plan vorab ansehen, ein abgebrochener Durchlauf fortsetzen oder mit --policy always nach jeder Änderung am renet-Binary neu starten.
rdc machine converge <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Nur den Plan ausgeben, nichts neu starten | Nein | - |
--json | Bericht der Angleichung als JSON ausgeben | Nein | - |
--include-unknown | Auch veraltete Repositories neu starten, die in der lokalen Konfiguration fehlen (ihre Env-Secrets sind unbekannt) | Nein | - |
--policy <policy> | Neustart-Richtlinie: epoch (nur bei Layout-Änderungen) oder always (auch bei jeder Änderung am renet-Binary) | Nein | epoch |
--continue-on-error | Nach einem fehlgeschlagenen Repository weitermachen, statt den Durchlauf abzubrechen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.8 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.9 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.10 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-env <var> | Name der Umgebungsvariable mit dem API-Token des Anbieters; das Token selbst steht nie in der Befehlszeile | 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.11 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 oder Backup-Strategien daran gebunden sind, sodass diese Verweise hängend zurückbleiben. | Nein | - |
--archive-repos | Die Konfigurationseinträge der Repositorys auf dieser Maschine archivieren (Zugangsdaten bleiben erhalten, wiederherstellbar) | Nein | - |
3.12 restart-services
Startet die renet-Daemons, die noch ein ersetztes Binary ausführen, nacheinander mit dem installierten neu. Jede Unit muss mit dem neuen Binary aktiv laufen, bevor die nächste an der Reihe ist. Mit --include-docker werden auch die rediacc-docker-N-Supervisoren der einzelnen Repositories neu gestartet, ein Repository nach dem anderen, was dessen Container neu startet.
rdc machine restart-services <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--include-docker | Auch den rediacc-docker-N-Supervisor jedes Repositories neu starten (startet dessen Container neu) | Nein | - |
--repo <name> | Neustart auf den Supervisor eines Repositorys beschränken (erfordert --include-docker) | Nein | - |
--json | Bericht als JSON ausgeben | Nein | - |
3.13 scan-keys
SSH-Hostschlüssel für Maschinen in der aktuellen Konfiguration scannen
rdc machine scan-keys [name]
3.14 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% |
--no-converge | Repository-Daemons mit älterem Runtime-Layout nicht neu starten (wie REDIACC_SKIP_RUNTIME_CONVERGE=1) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.15 status
Vollständigen Maschinenstatus anzeigen (System, Repos, Container, Dienste). Nur lesend: aktualisiert renet auf der Maschine nie und warnt, wenn dessen Version abweicht.
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 | - |
3.16 gpu
Zeigt die GPUs, die eine Maschine an Repositories weitergeben kann, die angebotenen CDI-Geräte und welches Repository welches Gerät hält.
list
Listet die auf einer Maschine erkannten GPUs, die in ihren Specs definierten CDI-Gerätenamen und die Repositories, denen jedes Gerät freigegeben ist. Eine Freigabe erteilt 'rdc repo gpu grant'.
rdc machine gpu list <name> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
3.17 access
Die Zugriffsschlüssel der Konfiguration an eine Maschine binden und in deren authorized_keys schreiben, jeweils auf ihre Quellbereiche beschränkt
set
Einen Zugriffsschlüssel an eine Maschine binden. Hier angegebene Bereiche ersetzen die Bereiche des Schlüssels nur auf dieser Maschine. Mit 'machine access push' anwenden
rdc machine access set <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <key> | Name des Zugriffsschlüssels (siehe 'config access list') | Ja | - |
--ipv4 <cidrs> | IPv4-Bereiche in CIDR-Notation (kommagetrennt, z. B. 203.0.113.0/24) | Nein | - |
--ipv6 <cidrs> | IPv6-Bereiche in CIDR-Notation (kommagetrennt, z. B. 2001:db8::/32) | Nein | - |
--clear-ranges | Eigene Bereiche dieser Maschine verwerfen, sodass die Bereiche des Schlüssels oder der Konfiguration gelten | Nein | - |
remove
Einen Zugriffsschlüssel von einer Maschine lösen. Das nächste 'machine access push' entfernt seine Zeile
rdc machine access remove <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--key <key> | Name des Zugriffsschlüssels (siehe 'config access list') | Ja | - |
show
Die an eine Maschine gebundenen Zugriffsschlüssel und die dort jeweils geltenden Bereiche anzeigen
rdc machine access show <machine>
push
Die an eine Maschine gebundenen Zugriffsschlüssel in deren authorized_keys schreiben, dabei eine vorhandene Zeile mit demselben Schlüssel übernehmen, und die Zeilen dieser Konfiguration für nicht mehr gebundene Schlüssel entfernen. Lehnt eine Änderung ab, die die eigene Sitzung von rdc aussperren würde, und schreibt nichts, wenn sich die Datei während des Pushs geändert hat
rdc machine access push <machine> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Änderungen anzeigen, ohne zu schreiben | 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 mit einem Clusternamen dessen vollständige Konfiguration 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 health
Die health()-Prüfungen der Rediaccfiles eines Repositorys ausführen und mit 0 (ok), 1 (Warnung) oder 2 (Fehler) beenden
rdc repo health <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.5 repair
Die repair()-Funktionen der Rediaccfiles des Repositorys ausführen, die ihre deklarierte Klasse erlaubt, dann erneut health() (Exit 0: ok, 1: Warnung, 2: Fehler oder fehlgeschlagene Reparatur)
rdc repo repair <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Anzeigen, welches repair() laufen würde, ohne eines auszuführen | Nein | - |
--with-backup | repair()-Funktionen der Klasse auto-with-backup zulassen, nach einem erfolgreichen Snapshot des Repositorys | Nein | - |
--window-override | repair()-Funktionen mit window=only außerhalb des Wartungsfensters der Maschine ausführen | Nein | - |
-y, --yes | repair()-Funktionen ohne Klassendeklaration (operator-only) ohne Rückfrage ausführen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.6 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.7 diff
Git-artiger Datei-Diff zwischen zwei Copy-on-Write-geforkten Repositories. Meldet hinzugefügte, geänderte, gelöschte und umbenannte Dateien. Vergleicht das über das positionale <ref> 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 <ref> | 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.8 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.9 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.10 delete
Ein Repository und seine Daten löschen. Der Konfigurationseintrag eines Forks wird nach deletedRepositories verschoben, was den Namen freigibt und die GUID über 'repo admin archive restore' wiederherstellbar hält; der Eintrag eines Grand-Repositorys oder eines auf andere Maschinen gepushten Repositorys bleibt erhalten, sofern nicht --archive-config angegeben wird. 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 | - |
--purge-backups | Cloud-Backups des Repositorys sofort löschen, statt sie ablaufen zu lassen | 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.11 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 und verweigert daher 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.12 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.13 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.14 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.15 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.16 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.17 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.18 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.19 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.20 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.21 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.22 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.23 prune
Klassifiziert den Docker-Speicher eines Repositorys und gibt ihn frei: ungenutzte Images, Build-Cache, gestoppte Container und overlay2-Verzeichnisse, die kein Image und kein Container referenziert. Ohne --apply ein Probelauf. --apply gibt über die Docker-API frei, während das Repository online bleibt; --apply --offline stoppt zusätzlich den Docker-Daemon des Repositorys für die Dauer des Laufs und stellt die verwaisten Verzeichnisse unter Quarantäne. Ohne Ref werden alle eingehängten Repositorys auf -m untersucht (nur Probelauf)
rdc repo prune [ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--apply | Freigeben; ohne diese Option wird nur berichtet | Nein | - |
--offline | Docker-Daemon des Repositorys stoppen und verwaiste Verzeichnisse unter Quarantäne stellen (erfordert --apply) | Nein | - |
--all-images | Auch getaggte Images entfernen, die kein Container nutzt | Nein | - |
--no-trim | fstrim nach dem Freigeben überspringen | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
-m, --machine <name> | Name der Zielmaschine | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.24 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 | - |
--memory-max <size> | Speicherobergrenze des Repositorys (z. B. 10G, oder max zum Entfernen); an der Grenze wird einer seiner Container per OOM beendet, nichts außerhalb | Nein | - |
--memory-high <size> | Drosselpunkt für den Speicher des Repositorys (z. B. 8G, oder max zum Entfernen) | Nein | - |
--cpu-max <cores> | CPU-Obergrenze des Repositorys in Kernen (4, 2.5) oder N%, oder max zum Entfernen | Nein | - |
--io-max <limits> | I/O-Obergrenze des Repository-Geräts: rbps=,wbps=,riops=,wiops= (beliebige Auswahl, z. B. rbps=200M,wbps=100M; KEY=max entfernt einen Wert) oder max | Nein | - |
--pids-max <count> | Prozessobergrenze des Repositorys (pids.max), oder max zum Entfernen | Nein | - |
--ram-volume <size> | Größe des RAM-Volumes des Repositorys unter <mount>/.ram (z. B. 8G, oder max zum Entfernen); die Speicherobergrenze muss 1G darüber bleiben | Nein | - |
--clear-limits | Alle Limits und das RAM-Volume des Repositorys entfernen | Nein | - |
--force | Eine Speicherobergrenze unter dem aktuellen Speicherverbrauch des Repositorys zulassen | 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.25 push
Repository an eine andere Maschine pushen. Speicherziele sind eingestellt; nutzen Sie `rdc backup snapshot` für eine Point-in-Time-Sicherung. Bei Maschine-zu-Maschine-Transfer wird das verschlüsselte Repo-Image mit derselben GUID kopiert: dies ist ein Backup oder eine 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 der Zielmaschine (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 | - |
--bwlimit <limit> | Transfer-Obergrenze: Bytes pro Sekunde, Dezimaleinheiten (12.5M = 12,5 MB/s), Binäreinheiten (12Mi) oder Bits (100Mbps). Ohne Angabe gibt es keine Grenze | 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.26 pull
Repository von einer anderen Maschine pullen. Speicherquellen sind eingestellt; nutzen Sie `rdc backup restore` für eine Point-in-Time-Wiederherstellung. 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 der Quellmaschine (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 | - |
--bwlimit <limit> | Transfer-Obergrenze: Bytes pro Sekunde, Dezimaleinheiten (12.5M = 12,5 MB/s), Binäreinheiten (12Mi) oder Bits (100Mbps). Ohne Angabe gibt es keine Grenze | 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.27 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> | Transfer-Obergrenze: Bytes pro Sekunde, Dezimaleinheiten (12.5M = 12,5 MB/s), Binäreinheiten (12Mi) oder Bits (100Mbps). Ohne Angabe gibt es keine Grenze | 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.28 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.29 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.30 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/net-<networkId>/secrets/<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.31 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 | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
ownership
Repository-Verzeichnis-Besitz ändern
rdc repo admin ownership <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--uid <uid> | Besitzer-UID (Standard: 7111) | Nein | - |
--root-owned | Root-eigene Dateien unterhalb von Verzeichnissen, die root oder dieser UID gehören, an die Eigentümer-UID übergeben und jede in einem Rückgängig-Manifest festhalten | Nein | - |
--dry-run | Mit --root-owned: die Dateien auflisten, die sich ändern würden, ohne etwas zu ändern | Nein | - |
--undo | Mit --root-owned: die Dateien aus dem Rückgängig-Manifest, die noch der Eigentümer-UID gehören, an root zurückgeben | 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.32 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.33 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.34 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 | - |
6.35 gpu
Gibt einem Repository ein CDI-Gerät frei (z. B. nvidia.com/gpu=all), damit seine Container es anfordern können, oder entzieht es wieder. Die Maschine setzt die Freigabe durch; eine exklusive Freigabe reserviert das Gerät für ein einziges Repository.
grant
Erlaubt den Containern des Repositorys, ein CDI-Gerät anzufordern. Gerätenamen liefert 'rdc machine gpu list'.
rdc repo gpu grant <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--device <cdi-name> | Vollqualifizierter CDI-Gerätename (z. B. nvidia.com/gpu=all) | Ja | - |
--exclusive | Gerät für dieses Repository reservieren: Bis dahin kann es keinem anderen Repository freigegeben werden | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
revoke
Entzieht den Containern des Repositorys ein CDI-Gerät. Container, die es schon halten, behalten es bis zum nächsten Neustart.
rdc repo gpu revoke <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--device <cdi-name> | Vollqualifizierter CDI-Gerätename (z. B. nvidia.com/gpu=all) | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
6.36 permission
Erweitert, worauf up() und down() der Rediaccfile eines Repositorys zugreifen dürfen. Beide laufen als unprivilegierter universeller Benutzer; eine Freigabe fügt einen Pfad (--path) oder root ohne Rechteverzicht (--root) hinzu. Die Maschine erzwingt die Freigabe, eine Rediaccfile kann sie nur über eine '# rediacc:needs'-Zeile anfordern, und ein Fork startet ohne Freigabe.
grant
Erlaubt up() und down() der Rediaccfile des Repositorys, auf einen Pfad zuzugreifen oder als root zu laufen. --root wird einem Agenten verweigert, außer der Benutzer hat REDIACC_ALLOW_GRAND_REPO vor dem Start des Agenten gesetzt.
rdc repo permission grant <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--root | up() und down() als root ausführen, ohne Rechteverzicht | Nein | - |
--path <path> | Absoluter Pfad, auf den up() und down() zugreifen dürfen, PATH[:ro|:rw] (standardmäßig schreibgeschützt) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
revoke
Entzieht dem Repository eine Pfadfreigabe für den Lebenszyklus oder die Root-Freigabe. up() und down() laufen danach mit dem, was übrig bleibt.
rdc repo permission revoke <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--root | Root-Freigabe entziehen | Nein | - |
--path <path> | Absoluter Pfad, dessen Freigabe entzogen wird | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
show
Zeigt, ob up() und down() des Repositorys als root laufen und auf welche Pfade sie zugreifen dürfen.
rdc repo permission show <ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--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 (weglassen, um die offenen Job-Tickets dieser Konfiguration aufzulisten) | Nein | - |
--all | Abgelaufene und verworfene Tickets einbeziehen | Nein | - |
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 (optional, wenn diese Konfiguration ein Ticket für den Job hält) | Nein | - |
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 (optional, wenn diese Konfiguration ein Ticket für den Job hält) | Nein | - |
-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 (optional, wenn diese Konfiguration ein Ticket für den Job hält) | Nein | - |
-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 | - |
7.6 wait
Einen Job anhand seines Tickets weiterverfolgen, ihn dann quittieren und mit dem Exit-Code des Jobs beenden
rdc job wait <job-id> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Name der Zielmaschine (optional, wenn diese Konfiguration ein Ticket für den Job hält) | Nein | - |
--timeout <duration> | Nach dieser Zeit nicht mehr warten (30s, 5m, 2h; eine nackte Zahl gilt als Sekunden). Der Job läuft weiter. | Nein | - |
7.7 dismiss
Job-Tickets lokal aufgeben: ausstehende Schritte entfallen und das Ticket erscheint nicht mehr. Es erfolgt kein Maschinenaufruf, der Job selbst bleibt unberührt.
rdc job dismiss [job-id...] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--stale | Alle offenen Tickets verwerfen, die älter als --older-than sind (Standard: 24h) | Nein | - |
--older-than <duration> | Mit --stale das Mindestalter eines Tickets, z. B. 90m, 24h (Standard: 24h) | 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 browse
Dateien eines Repositorys auflisten. Standardmäßig ist das ein lokaler, schreibgeschützter Durchlauf des Repository-Images: ohne Account-Server und ohne Netzwerk. Ein verschlüsseltes Repository muss eingehängt sein oder seine Schlüsseldatei bereitgestellt haben, bevor es geöffnet werden kann; browse sagt das, statt eine leere Liste zu zeigen. Mit --at <Zeit|Snapshot> wird stattdessen die zu einem Chunk-Speicher-Snapshot gespeicherte Dateiliste angezeigt, ohne ihn wiederherzustellen.
rdc backup browse <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--path <subdir> | Auflistung auf diesen Teilbaum beschränken | Nein | - |
--depth <n> | Abstiegstiefe auf N Ebenen begrenzen (0 für unbegrenzt) | Nein | - |
--limit <n> | Maximale Anzahl zurückgegebener Einträge (0 für unbegrenzt) | Nein | - |
| `—at <time | snapshot>` | Den Snapshot zu oder vor diesem Zeitpunkt bzw. diese Snapshot-ID auflisten (liest den Chunk-Speicher) | Nein |
--from <storeId> | Mit --at den Snapshot aus diesem Backup-Speicher statt aus dem bestplatzierten lesen | 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 auflisten.
rdc backup list [artifact-ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Nein | - |
--path <subdir> | Auflistung auf ein Unterverzeichnis beschränken; weglassen, um den gesamten Datenspeicher aufzulisten | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.4 manifests
Auf dem Server erfasste Backup-Snapshot-Manifeste auflisten
rdc backup manifests [repo-ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--limit <n> | Zeilen pro Seite (Standard und Maximum 500) | Nein | - |
--before <cursor> | Seitenmarke aus einer früheren Auflistung (nextBefore) | Nein | - |
--include-deleted | Snapshots mit ausstehendem verzögertem Löschen einbeziehen | Nein | - |
8.5 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 | - |
--at <time> | Zu einem Zeitpunkt wiederherstellen: eine Snapshot-ID oder eine RFC3339-Zeit (Chunk-Store-Wiederherstellung) | Nein | - |
--from <storeId> | Den Snapshot aus diesem Backup-Speicher lesen (Standard: der Speicher mit dem neuesten verifizierten Snapshot, bei einem Speicherfehler weiter mit dem nächsten) | Nein | - |
--any-stream | Mit --at auch Snapshots berücksichtigen, die von anderen Maschinen und Forks dieser Linie geschrieben wurden (Standard: nur dieses Repository auf seiner Quellmaschine) | Nein | - |
--no-seed | Jeden Chunk aus dem Speicher abrufen, statt lokale Anker oder Repository-Abbilder wiederzuverwenden (beweist, dass der Speicher lesbar ist) | Nein | - |
--allow-unopenable | Das Image auch platzieren, wenn die Passphrase des Repositorys es nicht öffnet (ein Snapshot aus der Zeit vor einer Passphrase-Änderung) | Nein | - |
--salvage | Über verlorene oder beschädigte Chunks hinweg fortfahren und deren Zellen als Lücken belassen (benötigt --as) | Nein | - |
--path <file-or-dir> | Nur diese Datei oder dieses Verzeichnis aus dem Snapshot wiederherstellen, ohne das ganze Repository zurückzuspielen (braucht --at) | Nein | - |
--to <dir> | Verzeichnis, in dem der wiederhergestellte Pfad abgelegt wird (Standard: der Wiederherstellungsordner der Maschine für den Snapshot) | 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.6 retention
Die vom Server durchgesetzte Snapshot-Aufbewahrungsrichtlinie anzeigen.
clear
Die festgelegte Richtlinie entfernen, sodass wieder der Standard des Tarifs bzw. Servers gilt.
rdc backup retention clear <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--stream <id> | Nur für diesen Backup-Stream (eine Stream-ID); ohne Angabe gilt der Standard für das ganze Repository | Nein | - |
set
Legen Sie fest, wie viele Snapshots aufbewahrt werden sollen. Jede Einstellung wird ersetzt, nicht zusammengeführt.
rdc backup retention set <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--keep-last <n> | So viele der neuesten Snapshots behalten | Nein | - |
--keep-hourly <n> | Den neuesten Snapshot aus jeder dieser Stunden behalten | Nein | - |
--keep-daily <n> | Den neuesten Snapshot aus jedem dieser Tage behalten | Nein | - |
--keep-weekly <n> | Den neuesten Snapshot aus jeder dieser Wochen behalten | Nein | - |
--keep-monthly <n> | Den neuesten Snapshot aus jedem dieser Monate behalten | Nein | - |
--keep-yearly <n> | Den neuesten Snapshot aus jedem dieser Jahre behalten | Nein | - |
--keep-within <duration> | Alle Snapshots innerhalb dieser Zeitspanne vor dem neuesten behalten, z. B. 24h | Nein | - |
--stream <id> | Nur für diesen Backup-Stream (eine Stream-ID); ohne Angabe gilt der Standard für das ganze Repository | Nein | - |
preview
Zeigt, welche Snapshots der nächste Durchlauf löschen würde und wie viel Platz das freigibt.
rdc backup retention preview <repo-ref>
8.7 run
Backup sofort auf einem Remote-Rechner auslösen
rdc backup run [strategy] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Ja | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.8 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.9 snapshot
Einen Chunk-Store-Snapshot hochladen: zuerst das vollständige Inventar, danach geänderte Zellen
rdc backup snapshot <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--reseed | Dem lokalen Anker misstrauen und ein vollständiges Inventar hochladen (lädt alles neu hoch und belastet erneut das Kontingent) | Nein | - |
--dry-run | Nur planen: kein Upload. Zeigt, was sich bewegen würde | Nein | - |
--cold | Container stoppen, einfrieren, neu starten, dann hochladen. Kostet eine kurze echte Ausfallzeit, liefert dafür einen anwendungskonsistenten Snapshot; nicht zusammen mit --dry-run verwendbar | Nein | - |
--accept-identity-change | Dieses Image als neue Basis übernehmen, wenn sich seine LUKS-Identität geändert hat oder es geschrumpft ist; lädt einen vollständigen Snapshot hoch | Nein | - |
--bwlimit <rate> | Upload-Obergrenze: Bytes pro Sekunde, Dezimaleinheiten (12.5M = 12,5 MB/s), Binäreinheiten (12Mi) oder Bits (100Mbps). Ohne Angabe gibt es keine Grenze | Nein | - |
--parallelism <n> | Anzahl der gleichzeitig hochgeladenen Chunks (Standard: 4) | Nein | - |
--read-bwlimit <rate> | Lesegrenze für Hashing und Zellenlesen: gleiche Einheiten wie --bwlimit; Standard 50M, 0 = unbegrenzt | Nein | - |
--hash-parallelism <n> | Anzahl der gleichzeitig gehashten Zellen (Standard: 1; 0 = eine pro CPU, bis zu 16) | Nein | - |
--cpu-limit <percent> | CPU-Obergrenze für diesen Snapshot: Prozent aller Kerne, 1-100 (Standard 50; 100 = keine Obergrenze) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.10 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.11 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. Erstellt ein Rediacc-Chunk-Store-Ziel | Nein | - |
--target <storeId> | Registrierte Store-ID, in die das Ziel schreibt (Standard: home). Zusammen mit --destination verwenden | Nein | - |
--replicate-from <storeId> | Das Ziel zum Replikat machen: Der Kontoserver kopiert diesen Store in das Ziel-Store des Ziels, die Maschine lädt also nichts dorthin hoch. Zusammen mit --destination und --target verwenden | Nein | - |
--cron <expression> | Cron-Zeitplan (z.B. "0 * * * *" für stündlich) | Nein | - |
--mode <mode> | Backup-Modus: "hot" erstellt den Snapshot bei laufendem Betrieb, "cold" stoppt die Container für den Moment der Snapshot-Aufnahme | Nein | - |
--bwlimit <limit> | Upload-Bandbreitenlimit in Bytes pro Sekunde, optional mit K/M/G-Suffix (z.B. "6M", "500K") | Nein | - |
--read-bwlimit <limit> | Lesegrenze für die Snapshots dieser Strategie: gleiche Einheiten wie --bwlimit; „none“ entfernt sie | Nein | - |
--cpu-limit <percent> | CPU-Obergrenze für die Snapshots dieser Strategie: Prozent aller Kerne, 1-100 (Standard 50); none hebt sie auf | Nein | - |
--include <repos> | Nur diese Repos sichern (kommagetrennte Namen) | Nein | - |
--exclude <repos> | Diese Repos vom Backup ausschließen (kommagetrennte Namen) | Nein | - |
--retention <spec> | Aufbewahrung der Snapshots, z. B. last=7,daily=7,weekly=4,monthly=6 („none“ entfernt sie) | Nein | - |
--rpo <duration> | Deklariertes Schutzziel, z. B. 15m (mindestens 5m; none löscht es) | Nein | - |
--repo-rpo <ref=duration> | Ziel je Repository als <ref>=<dauer>, wiederholbar (none entfernt es); name:* ist die Familie | Nein | - |
--repo-cell-size <ref=size> | Zellgröße je Repository als <ref>=<größe>, wiederholbar. Eine Änderung initialisiert das Repository neu | Nein | - |
--no-estimate | Änderungs- und Kostenschätzung überspringen | Nein | - |
--dry-run | Zeigen, was sich ändern würde, ohne zu schreiben | 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 | - |
--unbind | Die Strategie auch von jeder Maschine lösen, die sie bindet | Nein | - |
list
Alle Backup-Strategien auflisten
rdc backup strategy list
show
Backup-Strategie-Details anzeigen
rdc backup strategy show [strategy]
8.12 reconcile
Setzt das Speicher-Ledger eines Repositorys auf den tatsächlichen Stand des Stores zurück (löscht nie einen Chunk)
rdc backup reconcile [repo-ref] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Zahlen nur anzeigen, ohne das Ledger zu ändern | Nein | - |
--check | Probelauf, der mit 1 endet, wenn das Ledger vom Store abweicht | Nein | - |
8.13 usage
Backup-Speicherkontingent, gespeicherte Bytes und Nutzung pro Repository anzeigen
rdc backup usage
8.14 verify
Den Backup-Anker eines Repositorys gegen den Chunk-Store verifizieren
rdc backup verify <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--deep | Jede erfasste Zelle neu hashen (vollständige Verifizierung) statt einer stichprobenartigen Prüfung | Nein | - |
--store | Jeden gespeicherten Chunk dieses Repositorys auf dem Server neu hashen lassen und fehlende oder beschädigte benennen | Nein | - |
--restore-test | Den Anker-Snapshot unter einem Wegwerfnamen direkt aus dem Speicher wiederherstellen, mit dem Anker vergleichen, das Ergebnis erfassen und die Kopie löschen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.15 snapshots
Gespeicherte Snapshots verwalten
delete
Löscht einen gespeicherten Snapshot. Seine exklusiven Daten gibt die nächste Garbage Collection frei.
rdc backup snapshots delete <repo-ref> <snapshot-id>
8.16 download
Repository-Images von einer Maschine in ein lokales Verzeichnis oder auf ein externes Laufwerk kopieren. Jeder Lauf erstellt einen frischen Snapshot, der nur so lange besteht wie die Sitzung, aktualisiert die lokale Kopie per rsync-Delta an Ort und Stelle, setzt nach einer Unterbrechung fort und prüft das Ergebnis per sha256.
rdc backup download [refs...] [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <dir> | Vorhandenes, beschreibbares Verzeichnis, das <machine>/<name>.<tag>.img aufnimmt (wird nie angelegt) | Ja | - |
--all | Alle Grand-Repositories der mit -m benannten Maschine kopieren | Nein | - |
-m, --machine <name> | Machine-Name | Nein | - |
--include-forks | Mit --all auch Forks kopieren | Nein | - |
--bwlimit <rate> | Obergrenze für die Netzwerkbandbreite, etwa 100Mbps oder 12.5M (Standard: unbegrenzt) | Nein | - |
--checkpoint | Repository vor dem Snapshot per Checkpoint einfrieren (Hot-Backup) | Nein | - |
--retries <n> | Wiederholungsversuche im Lauf nach einem Netzwerkfehler (Standard: 3) | Nein | - |
--skip-verify | sha256-Vergleich nach rsync überspringen; die eigene Prüfsumme von rsync läuft weiterhin | Nein | - |
--skip-space-check | Nur warnen statt abzulehnen, wenn auf dem Ziel möglicherweise zu wenig Platz frei ist | Nein | - |
--store | Das verschlüsselte Image direkt aus dem Backup-Speicher aufbauen, ohne Maschine. Benötigt ein API-Token mit dem Scope backup:read + backup:restore in REDIACC_TOKEN | Nein | - |
| `—at <time | snapshot>` | Mit --store: der abzurufende Snapshot als Zeitpunkt (ISO 8601) oder Snapshot-ID (Standard: der neueste) | Nein |
--from <storeId> | Mit --store aus diesem Backup-Speicher statt aus dem bestplatzierten lesen; es wird nie auf einen anderen Speicher ausgewichen | Nein | - |
8.17 upload
Ein lokales Repository-Image, das 'rdc backup download' erstellt hat, an eine Maschine senden und als neues Repository registrieren. Die Übertragung wird nach einer Unterbrechung fortgesetzt, und die Maschine prüft sha256 und LUKS-Header, bevor das Image abgelegt wird.
rdc backup upload <image-file> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--to <machine> | Maschine, die das Image erhält | Ja | - |
--as <name> | Name des neuen Repositorys (Standard: Repository-Name des Images) | Nein | - |
--datastore <name> | Image auf diesem benannten Datastore statt auf dem Standard der Maschine ablegen | Nein | - |
--from-repo <name> | Repository aus der Konfiguration, das Zugangsdaten und Herkunft liefert, wenn die Statusdatei fehlt oder ein unbekanntes Repository nennt | Nein | - |
--bwlimit <rate> | Obergrenze für die Netzwerkbandbreite, etwa 100Mbps oder 12.5M (Standard: unbegrenzt) | Nein | - |
--retries <n> | Wiederholungsversuche im Lauf nach einem Netzwerkfehler (Standard: 3) | Nein | - |
--up | Repository nach der Registrierung starten | Nein | - |
--skip-verify | Vergleich des lokalen Images mit dem beim Download gespeicherten sha256 überspringen | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.18 purge
Löscht alle gespeicherten Backup-Snapshots eines Repositorys auf einmal aus dem Chunk-Speicher. Das Repository selbst bleibt erhalten.
rdc backup purge <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Zeigen, was ausgeführt würde, ohne Änderungen vorzunehmen | Nein | - |
-y, --yes | Bestätigungsaufforderung überspringen | Nein | - |
--cancel | Ein verzögertes Entfernen abbrechen, bevor es wirksam wird | Nein | - |
8.19 check
Beweist per Wiederherstellung einer Datei, dass sich ein Snapshot mit der Passphrase öffnen lässt
rdc backup check <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--path <file> | Die Datei, die wiederhergestellt und verglichen wird (Standard: die kleinste nicht leere Datei) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.20 repair
Verlorene oder falsche Chunks aus dem Anker dieser Maschine erneut hochladen
rdc backup repair <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--dry-run | Zeigt, was gelöscht und erneut hochgeladen würde; ändert nichts | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.21 toc-key
Schlüssel für das Durchsuchen-Listing eines Repositorys verwalten
sync
Den Listing-Schlüssel des Repositorys auf seiner Maschine installieren oder einen abweichenden ersetzen
rdc backup toc-key sync <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--replace | Einen abweichenden Schlüssel auf der Maschine ersetzen (sendet zum Nachweis die Passphrase) | Nein | - |
--dry-run | Zeigt, was getan würde; berührt nichts | Nein | - |
8.22 churn
Misst, wie viel vom Abbild eines Repositorys sich zwischen Läufen ändert, projiziert den Upload je Zellgröße und empfiehlt eine. Eine Reflink-Basis liegt während der Messung auf der Maschine und wird immer wieder entfernt.
rdc backup churn <repo-ref> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--samples <n> | Anzahl der Messproben (Standard 3) | Nein | - |
--interval <duration> | Wartezeit zwischen den Proben, z. B. 10m (Standard 10m) | Nein | - |
--debug | Debug-Ausgabe aktivieren (lokaler Modus) | Nein | - |
8.23 immutability
Verzögerungsfenster für das Löschen gespeicherter Backups anzeigen oder setzen
show
Das geltende Löschverzögerungsfenster anzeigen
rdc backup immutability show
set
Das Löschverzögerungsfenster in Tagen setzen (0 bis 30)
rdc backup immutability set <days>
8.24 undelete
Ein verzögertes Löschen eines Snapshots abbrechen, bevor es wirksam wird
rdc backup undelete <snapshot-id>
9. VS Code-Integration
VS Code Remote SSH zu einer Maschine oder einem Repository öffnen
9.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 | - |
9.2 list
Konfigurierte VS Code-SSH-Verbindungen auflisten
rdc vscode list
9.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 | - |
9.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 | - |
9.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 | - |
10. 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`.
10.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 | - |
11. Schnellbefehle (Shortcuts)
11.1 run
WARNUNG: Low-Level-Befehl, nur zum Debuggen und Experimentieren gedacht, nicht für den Produktivbetrieb. Für den Alltag sind die übergeordneten Befehle da (repo up, repo down usw.). Führt eine rohe renet-Funktion auf einer Maschine aus.
rdc run
11.2 trace
Eine Aufgabe verfolgen (Kurzbefehl für: queue trace)
rdc trace
11.3 cancel
Eine Aufgabe abbrechen (Kurzbefehl für: queue cancel)
rdc cancel
11.4 retry
Eine fehlgeschlagene Aufgabe wiederholen (Kurzbefehl für: queue retry)
rdc retry
12. Abonnementverwaltung
Lizenzierung und Abonnement-Tokens verwalten. Anmelden mit login, prüfen mit status, Lizenzen mit refresh neu ausstellen.
12.1 login
Mit einem API-Token aus dem Webportal authentifizieren
rdc subscription login [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-t, --token <token> | API-Token (rdt_...). `-` übergeben, um ihn von stdin zu lesen (hält ihn aus der Prozessliste heraus). | Nein | - |
--password-stdin | Headless mit dem Kontopasswort anmelden, das von stdin gelesen wird (REDIACC_LOGIN_EMAIL erforderlich) | Nein | - |
--server <url> | Account-Server-URL | Nein | - |
12.2 logout
Gespeichertes Abonnement-Token löschen
rdc subscription logout
12.3 proxy-token
Kurzlebiges proxy:exec-Token aus der Anmeldung dieses Geräts für --proxy ausstellen
rdc subscription proxy-token [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--json | JSON mit dem Token und seinem expiresAt ausgeben | Nein | - |
12.4 status
Abonnement und Lizenzstatus für eine Maschine anzeigen.
rdc subscription status [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
-m, --machine <name> | Machine-Name | Nein | - |
12.5 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 | - |
13. 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 | - |
14. Danksagungen an Dritte
Die mit rdc gebündelten Drittanbieter-Komponenten ausgeben: die von renet eingebetteten und übertragenen Binaries (CRIU, rsync), 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 | - |
15. Systemdiagnose
CLI-Umgebung und Renet-Integration diagnostizieren
rdc doctor
16. Lokale Werkzeuge
Verwaltet die lokalen Werkzeuge, die rdc auf diesem Rechner ausführt. `rdc tools install tofu` lädt das fest hinterlegte OpenTofu-Release herunter, prüft vor dem Entpacken seine SHA-256-Prüfsumme gegen den in rdc eingebauten Wert und legt die Binärdatei im Werkzeugverzeichnis von rdc ab. `rdc tools list` zeigt jedes Werkzeug mit Version und Fundort.
16.1 install
Lädt das in dieser CLI fest hinterlegte OpenTofu-Release herunter, prüft seine SHA-256-Prüfsumme und installiert es im Werkzeugverzeichnis von rdc. Stimmt die Prüfsumme nicht, wird der Download gelöscht und nichts installiert. Terraform wird nie installiert; ein bereits im PATH vorhandenes wird so verwendet, wie es ist.
rdc tools install <tool> [options]
| Option | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
--force | Neu installieren, auch wenn die hinterlegte Version schon vorhanden ist | Nein | - |
16.2 list
Listet die Provisionierungs-Engine, die rdc ausführen würde (OpenTofu oder Terraform), sowie jede OpenTofu-Version im Werkzeugverzeichnis von rdc, jeweils mit Version, Herkunft und Pfad.
rdc tools list
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 |
| 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.