Zum Hauptinhalt springen Zur Navigation springen Zur Fußzeile springen

CLI-Anwendung

Vollständige Anleitung zur Verwendung der Rediacc-Befehlszeilenschnittstelle für die Plattformverwaltung

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:

OptionBeschreibung
--outputAusgabeformat (table|json|yaml|csv). Standard mit REDIACC_DEFAULT_OUTPUT überschreiben.
--configBestimmte Konfiguration für diesen Befehl verwenden
--langSprache überschreiben ({{languages}})
--forceBestä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]
OptionBeschreibungErforderlichStandard
--dry-runVorschau dessen, was entfernt würde, ohne die Konfigurationsdatei zu ändern. Spiegelt die Standard-Aus-Semantik der anderen prune-Befehle.Nein-
--certs-onlyAuf 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-onlyAuf das Bereinigen abgelaufener Archive beschränken. Überspringt Zertifikat-Cache und Querverweis-Bereinigung. Schließt sich mit --certs-only und --refs-only aus.Nein-
--refs-onlyAuf 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-archivedALLE 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-reposEntfernt 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-reposRepository-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]
OptionBeschreibungErforderlichStandard
--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üsselnNein-
--server <url>Account-Server-URLNein-

1.3 list

Alle Konfigurationsdateien auflisten

rdc config list

1.4 show

Aktuelle Konfigurationsdetails anzeigen

rdc config show [options]
OptionBeschreibungErforderlichStandard
--revealKlartext 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]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-

1.10 ssh

SSH-Schlüsselkonfiguration verwalten

set

SSH-Schlüssel für die aktuelle Konfiguration festlegen

rdc config ssh set [options]
OptionBeschreibungErforderlichStandard
--key <path>Pfad zur privaten SSH-SchlüsseldateiJa-
--embedSchlüsselinhalt in der Konfiguration einbetten statt Pfad zu speichernNein-

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]
OptionBeschreibungErforderlichStandard
--master-passwordHeadless mit einem vorab bereitgestellten Passwort-Slot anmelden (kein Browser)Nein-
--master-password-stdinWie --master-password, liest aber das Master-Passwort von stdinNein-
--api-url <url>Account-Server-URLNein-
--forceAbweichenden lokalen Inhalt ohne Bestätigung durch die Serverkopie ersetzenNein-
--config-id <id>An diese bestehende Config des Speichers anhängen, statt einen neuen Eintrag anzulegenNein-

disable

Verbindung zum Remote-Speicher trennen und Konfiguration lokal speichern

rdc config remote disable [options]
OptionBeschreibungErforderlichStandard
--localNur auf diesem Gerät trennen, aus der zwischengespeicherten Kopie und ohne den Server zu kontaktierenNein-
-y, --yesBestätigungsaufforderung überspringenNein-

status

Remote-Verbindungsstatus anzeigen

rdc config remote status

master-password

Master-Passwort dieses Mitglieds verwalten (der Passwort-Slot)

change:

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]
OptionBeschreibungErforderlichStandard
--new-master-password-stdinNeues 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]
OptionBeschreibungErforderlichStandard
--explainDie JSON-Pointer anzeigen, die jede Version geändert hat, anhand der vom Server aufbewahrten VersionenNein-

restore

Eine frühere Version dieser Konfiguration als neueste Version veröffentlichen

rdc config remote restore <version> [options]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--pointer <pointer>JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken)Ja-
--revealKlartext für sensible Werte anzeigen (nur interaktives TTY; Audit-Log)Nein-
--digestSHA-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]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
--pointer <pointer>JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken)Ja-
--current <value>Aktueller Klartextwert, erforderlich für Löschungen sensibler PfadeNein-

rotate

Einen sensiblen Wert ohne --current rotieren. Nur interaktives TTY; laut geloggt.

rdc config field rotate [options]
OptionBeschreibungErforderlichStandard
--pointer <pointer>JSON-Pointer zum sensiblen Feld (z. B. /credentials/cfDnsApiToken)Ja-
--new <value>Neuer WertJa-

list

Alle registrierten Pointer-Vorlagen mit Art und Commit/Verschlüsselungs-Policy auflisten.

rdc config field list [options]
OptionBeschreibungErforderlichStandard
--sensitiveNur sensible (nicht-öffentliche) Vorlagen anzeigenNein-

1.13 edit

Aktive Konfiguration in $EDITOR als zensiertes JSONC öffnen. Nur für Menschen; Agenten werden abgelehnt.

rdc config edit [options]
OptionBeschreibungErforderlichStandard
--revealKlartext für sensible Werte anzeigen (nur interaktives TTY; Audit-Log)Nein-
--dumpAktuelle 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 --applyNein-
--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]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
--machine <m...>Den Abgleich auf diese Maschinen beschränkenNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-
--accept-observedEine 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]
OptionBeschreibungErforderlichStandard
--api-url <url>Account-Server-URLNein-

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]
OptionBeschreibungErforderlichStandard
--public-key <key>Zeile mit dem öffentlichen OpenSSH-Schlüssel oder Pfad zu einer Datei, die ihn enthältJa-
--hosted-executorBeobachtete 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-restrictNur from= schreiben, ohne die Beschränkungen no-forwarding, no-pty und no-user-rcNein-

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]
OptionBeschreibungErforderlichStandard
--hosted-executorBeobachtete 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-
--clearQuellbereiche der gesamten Konfiguration entfernenNein-

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]
OptionBeschreibungErforderlichStandard
--size <size>Neue Größe (z. B. 200G)Ja-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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 localNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Maschine, auf der der Datenspeicher erstellt werden sollJa-
--size <size>Datenspeichergröße (z. B. 100G)Ja-
--backend <type>Speicher-Backend: local (dateibasiert, verbleibt auf dieser Maschine) oder rbd (Ceph, verschiebbar)Neinlocal
--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-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--to <machine>Maschine, an die der Datenspeicher angehängt werden sollJa-
--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 localNein-
--no-autoDiesen Datenspeicher beim Booten nicht automatisch erneut anhängenNein-
--forceEinen veralteten Halter zwangstrennen, der den Datenspeicher nicht sauber freigegeben hatNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--discardEinen Fork mit lokalen Schreibvorgängen samt Overlay verwerfen. Die Daten sind nicht wiederherstellbar.Nein-
-y, --yesBestätigungsaufforderung überspringenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--snapshot <label>Snapshot-Label (Standard: ein UTC-Zeitstempel)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

list

Die Snapshots eines Datenspeichers auflisten.

rdc datastore snapshot list <datastore> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-
--forceLöschen, obwohl noch Repositories darauf verweisen. Deren Daten gehen dabei mit verloren.Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--search <text>Suchen in {{field}}Nein-
--sort <field>Sortieren nach FeldNein-
--descIn absteigender Reihenfolge sortierenNein-

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]
OptionBeschreibungErforderlichStandard
--dry-runDie Korrekturen auflisten, die laufen würden, ohne sie auszuführenNein-
--code <code>Nur diesen Befundcode korrigieren (wiederholbar)Nein-
--with-backupauto-with-backup-Korrekturen zulassen, jeweils nach einem erfolgreichen Snapshot des RepositorysNein-
--window-overrideKorrekturen mit window=only auch außerhalb des Wartungsfensters ausführenNein-
--set-window <window>Das Wartungsfenster der Maschine speichern (HH:MM-HH:MM, UTC) oder mit off löschen, dann beendenNein-

3.4 provision

Neue Maschine bei einem Cloud-Anbieter mit OpenTofu bereitstellen

rdc machine provision <name> [options]
OptionBeschreibungErforderlichStandard
--provider <name>Name des Cloud-Anbieters (aus machine provider add)Ja-
--region <region>Standard-Region überschreibenNein-
--type <type>Standard-Instanztyp überschreibenNein-
--image <image>Standard-Betriebssystem-Image überschreibenNein-
--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 --infraNein-
--no-infraInfrastrukturkonfiguration überspringen (Proxy + DNS)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

3.5 deprovision

Cloud-bereitgestellte Maschine zerstören und aus Konfiguration entfernen

rdc machine deprovision <name> [options]
OptionBeschreibungErforderlichStandard
--forceBestätigungsaufforderung überspringenNein-
--archive-reposDie Konfigurationseinträge der Repositorys auf dieser Maschine archivieren (Zugangsdaten bleiben erhalten, wiederherstellbar)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

3.6 prune

Verwaiste Datenspeicher-Ressourcen und veraltete Snapshots von einer Maschine entfernen

rdc machine prune <name> [options]
OptionBeschreibungErforderlichStandard
--dry-runAnzeigen, was entfernt würde, ohne Änderungen vorzunehmenNein-
--orphaned-reposLö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-unknownLö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-mountedSetzt 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-
--forceBestätigungsaufforderungen überspringenNein-
--grace-days <days>Schonfrist in Tagen für kürzlich archivierte Repos (Standard: 7)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--dry-runNur den Plan ausgeben, nichts neu startenNein-
--jsonBericht der Angleichung als JSON ausgebenNein-
--include-unknownAuch 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)Neinepoch
--continue-on-errorNach einem fehlgeschlagenen Repository weitermachen, statt den Durchlauf abzubrechenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

3.8 add

Maschine zur aktuellen Konfiguration hinzufügen

rdc machine add <name> [options]
OptionBeschreibungErforderlichStandard
--ip <address>Machine-IP-Adresse oder HostnameJa-
--user <username>SSH-BenutzernameJa-
--port <port>SSH-PortNein22

3.9 infra

Infrastrukturkonfiguration verwalten (Proxy, DNS, Zertifikate)

cert

Zwischengespeicherte TLS-Zertifikate verwalten

clear:

Zertifikats-Cache entfernen

rdc machine infra cert clear

pull:

TLS-Zertifikate von einer Maschine herunterladen und zwischenspeichern

rdc machine infra cert pull <machine> [options]
OptionBeschreibungErforderlichStandard
--no-pruneBereinigung veralteter Netzwerk-ID-Zertifikate überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

push:

Zwischengespeicherte TLS-Zertifikate auf eine Maschine hochladen

rdc machine infra cert push <machine> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

status:

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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
--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 BefehlszeileJa-
--region <region>Standardregion für neue MaschinenNein-
--type <type>Standard-Instanztyp/-größeNein-
--image <image>Standard-Betriebssystem-ImageNein-
--ssh-user <user>SSH-Benutzername für neue VMs (Standard: root)Nein-
--resource <type>Benutzerdefiniert: OpenTofu-Ressourcentyp für VMsNein-
--label-attr <attr>Benutzerdefiniert: Attributname für VM-BezeichnungNein-
--region-attr <attr>Benutzerdefiniert: Attributname für RegionNein-
--size-attr <attr>Benutzerdefiniert: Attributname für InstanztypNein-
--image-attr <attr>Benutzerdefiniert: Attributname für Betriebssystem-ImageNein-
--ipv4-output <attr>Benutzerdefiniert: Ausgabeattribut für IPv4-AdresseNein-
--ipv6-output <attr>Benutzerdefiniert: Ausgabeattribut für IPv6-AdresseNein-
--ssh-key-attr <attr>Benutzerdefiniert: Attributname für SSH-SchlüsselNein-
--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üsselNein-

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]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-
--forceDie Maschine auch entfernen, wenn noch Repositories darauf platziert oder Backup-Strategien daran gebunden sind, sodass diese Verweise hängend zurückbleiben.Nein-
--archive-reposDie 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]
OptionBeschreibungErforderlichStandard
--include-dockerAuch 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-
--jsonBericht als JSON ausgebenNein-

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]
OptionBeschreibungErforderlichStandard
--datastore-path <path>Datenspeicherpfad auf Remote-MaschineNein/mnt/rediacc
--datastore-size <size>Datenspeichergröße (z.B. 95%, 100G)Nein95%
--no-convergeRepository-Daemons mit älterem Runtime-Layout nicht neu starten (wie REDIACC_SKIP_RUNTIME_CONVERGE=1)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--systemNur Systeminformationen einbeziehenNein-
--repositoriesNur Repositories einbeziehenNein-
--containersNur Container einbeziehenNein-
--servicesNur Dienste einbeziehenNein-
--networkNur Netzwerkschnittstellen einbeziehenNein-
--block-devicesNur Blockgeräte einbeziehenNein-
--licensesLizenzstatus der Repositorys einbeziehenNein-
--storage-healthBTRFS-Fragmentierung und reflink-Einsparungen pro Repository anzeigenNein-
--datastoresAngehängte Datenspeicher anzeigen (Mount, Anhang, Nutzung)Nein-
--health-checkZustandsprüfungsmodus - beendet mit Code 2 bei ungesunden ContainernNein-
--stability-checkStabilitätsprüfungsmodus - beendet mit Code 2 bei fehlgeschlagenen/neu startenden DienstenNein-
--search <text>Repositories nach Name filternNein-
--sync-certsAuch den ACME-Zertifikats-Cache nach einer Abfrage von der Maschine abrufenNein-
--strictMit Nicht-Null-Code (Code 2) beenden, wenn ein Container den Health-Drift-Schwellenwert überschritten hatNein-

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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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-rangesEigene Bereiche dieser Maschine verwerfen, sodass die Bereiche des Schlüssels oder der Konfiguration geltenNein-

remove

Einen Zugriffsschlüssel von einer Maschine lösen. Das nächste 'machine access push' entfernt seine Zeile

rdc machine access remove <machine> [options]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
--dry-runÄnderungen anzeigen, ohne zu schreibenNein-

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]
OptionBeschreibungErforderlichStandard
--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-onlyDen Cluster in der Konfiguration erfassen, ohne ihn zu provisionierenNein-
--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 wirdNein-
--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 ClusterNein-
--ssh-user <user>SSH-Benutzer für provisionierte MitgliederNein-
--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-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--pool <pool>Pool-NameJa-
--count <n>Gewünschte MitgliederanzahlJa-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--forceBestätigung überspringen und trotz Abbau-Fehlern fortfahrenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--tag <tag>Fork-TagJa-
--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: localNein-
--upGeforkte Repos hochfahren und die Cluster-Gesundheit prüfen, sobald der Fork hochgekommen istNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--to <dest-cluster>ZielJa-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--cluster <name>Cluster, dem die Maschine beitreten sollJa-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--forceDraining überspringen, wenn der Knoten bereits tot istNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--on <dest-cluster>Ziel-Cluster, auf dem die Wegwerf-Probe gestartet wirdJa-
--tag <tag>Optionaler Tag für den Proben-Fork (Standard: mit Zeitstempel)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--snapshot <label>Snapshot-Label (Standard: ein UTC-Zeitstempel)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

list

Die Gruppen-Snapshots des Clusters auflisten.

rdc cluster snapshot list <cluster> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--config <name>Konfigurationsname für alle BefehleNein-
--timeout <ms>Standard-Befehls-Timeout in MillisekundenNein120000

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]
OptionBeschreibungErforderlichStandard
--no-startDas 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-checkpointCRIU checkpoint-Wiederherstellung überspringen, auch wenn checkpoint-Daten vorhanden sind (Neustart erzwingen)Nein-
--tlsDediziertes TLS-Zertifikat für dieses Repository anfordern (Forks verwenden standardmäßig das gemeinsame Maschinenzertifikat)Nein-
--no-waitRückkehr, sobald Container gestartet sind; Healthchecks laufen im Hintergrund weiterNein-
--allAlle Repositories bereitstellen, deren Zuhause --machine ist (Stapelform)Nein-
-m, --machine <name>Mit --all: die Maschine, deren Repositories die Stapeloperation betrifftNein-
--include-forksAuch geforkte Repositories einbinden/startenNein-
--parallelRepositories parallel startenNein-
--concurrency <n>Maximale gleichzeitige Repositories (Standard: 3)Nein3
-y, --yesBestätigung für Stapeloperationen überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

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]
OptionBeschreibungErforderlichStandard
--unmountNach dem Stoppen zusätzlich aushängen (LUKS-Container schließen). Erforderlich vor 'repo resize' oder um das Volume vollständig zu sichernNein-
--checkpointCRIU checkpoint vor dem Stoppen erstellen (Prozessspeicherzustand für spätere Wiederherstellung via 'repo up' sichern)Nein-
--allAlle Repositories stoppen, deren Zuhause --machine ist (Stapelform)Nein-
-m, --machine <name>Mit --all: die Maschine, deren Repositories die Stapeloperation betrifftNein-
--parallelRepositories parallel startenNein-
--concurrency <n>Maximale gleichzeitige Repositories (Standard: 3)Nein3
-y, --yesBestätigung für Stapeloperationen überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

6.3 status

Repository-Status abrufen

rdc repo status <ref> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--dry-runAnzeigen, welches repair() laufen würde, ohne eines auszuführenNein-
--with-backuprepair()-Funktionen der Klasse auto-with-backup zulassen, nach einem erfolgreichen Snapshot des RepositorysNein-
--window-overriderepair()-Funktionen mit window=only außerhalb des Wartungsfensters der Maschine ausführenNein-
-y, --yesrepair()-Funktionen ohne Klassendeklaration (operator-only) ohne Rückfrage ausführenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--remote-file <path>Zu lesender Dateipfad, relativ zum Mount-Wurzelverzeichnis des RepositoriesJa-
--max-bytes <n>Maximale Anzahl zu lesender und auszugebender Bytes (Standard 1 MiB, Obergrenze 50 MiB)Nein-
--offset <n>Byte-Offset, ab dem gelesen wirdNein-
--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-
--statNur Größe, Typ und Änderungszeit ausgeben; keinen Inhalt lesenNein-
--force-binaryLesen von Binärinhalten (mit NUL-Zeichen) erlaubenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--base <ref>Vergleichs-Repository (Basis/Altseite); standardmäßig das Eltern-Repository von <ref>Nein-
--name-onlyNur geänderte Dateipfade ausgeben, einer pro Zeile (ohne Statusbuchstaben)Nein-
--statÄnderungsumfang pro Datei (Byte- und Block-Deltas) und Summen anzeigenNein-
--content [path]Vereinheitlichten Text-Diff für eine einzelne Datei anzeigen (benötigt Dateipfad)Nein-
--fastBlock-Filter vertrauen; Inhalts-Hash-Bestätigung überspringen (kann „Modified“ überschätzen)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

6.8 list

Repositories auf einer Maschine auflisten

rdc repo list [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineNein-
--datastore <name>Die Repositories in diesem Datenspeicher auflisten (aufgelöst zu der Maschine, die ihn aktuell hält)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

6.9 create

Ein neues Repository erstellen. Geben Sie sein Zuhause einmal an: eine Maschine oder einen Datenspeicher.

rdc repo create <name> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineNein-
--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-dockerDocker-Daemon nach der Erstellung nicht startenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--archive-configKonfigurationseintrag nach deletedRepositories verschieben zur späteren WiederherstellungNein-
--purge-backupsCloud-Backups des Repositorys sofort löschen, statt sie ablaufen zu lassenNein-
-y, --yesBestätigungsaufforderung überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

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]
OptionBeschreibungErforderlichStandard
--message <msg>commit-NachrichtJa-
--author <author>commit-AutorNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--branch <branch>Name des neuen BranchesJa-

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]
OptionBeschreibungErforderlichStandard
--tag <name>Name für den neuen beschreibbaren Arbeits-ForkJa-
--from <workingFork>Das positionale <commit-or-branch-ref> als Branch-Namen auf diesem Arbeits-Fork auflösenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--from <source>Quell-commit oder -fork, aus dem zusammengeführt wirdJa-
--forceEin eingehängtes/laufendes Ziel zuerst stilllegen, dann zusammenführen (verändert niemals einen aktiven Mount)Nein-
`—resolve <ourstheirs>`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-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-
--applyDie unerreichbaren Commits tatsächlich löschen (Standard ist eine Probelauf-Vorschau)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--tag <name>Tag für den Fork (erstellt Name:Tag)Ja-
--checkpointCRIU checkpoint auf der Quelle vor dem fork erstellen (Prozessspeicherzustand für Wiederherstellung beim fork erfassen)Nein-
--immutableMarkiert 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-
--upNach dem Fork mounten und Dienste starten (Fork + Mount + Up in einem Befehl)Nein-
--no-waitMit --up: Rückkehr, sobald Container gestartet sind; Healthchecks laufen im Hintergrund weiter (ideal für Wegwerf-Forks)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--weight <percent>Prozentsatz des Traffics, der zum Canary geleitet wird (Ganzzahl 0-100; 0 = dark, 100 = vollständige Umschaltung)Ja-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

6.20 resize

Repository offline skalieren (unterstützt Vergrößern und Verkleinern)

rdc repo resize <ref> [options]
OptionBeschreibungErforderlichStandard
--size <size>Neue Repository-Größe (z.B. 10G, 100G, 1T)Ja-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

6.21 expand

Eingehängtes Repository online erweitern (ohne Ausfallzeit)

rdc repo expand <ref> [options]
OptionBeschreibungErforderlichStandard
--size <size>Neue Repository-Größe (z.B. 10G, 100G, 1T)Ja-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--dockerDocker-Speicher freigeben (gestoppte Container, ungenutzte Images, Build-Cache); läuft auch bei einem aktiven Backup-SnapshotNein-
--docker-volumesZusätzlich ungenutzte Docker-Volumes entfernenNein-
--report-onlyDiscard-Status und rückgewinnbaren Speicher anzeigen, ohne zu trimmenNein-
-m, --machine <name>Name der ZielmaschineNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--applyFreigeben; ohne diese Option wird nur berichtetNein-
--offlineDocker-Daemon des Repositorys stoppen und verwaiste Verzeichnisse unter Quarantäne stellen (erfordert --apply)Nein-
--all-imagesAuch getaggte Images entfernen, die kein Container nutztNein-
--no-trimfstrim nach dem Freigeben überspringenNein-
-y, --yesBestätigungsaufforderung überspringenNein-
-m, --machine <name>Name der ZielmaschineNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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 erforderlichNein-
--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ßerhalbNein-
--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 EntfernenNein-
--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 maxNein-
--pids-max <count>Prozessobergrenze des Repositorys (pids.max), oder max zum EntfernenNein-
--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 bleibenNein-
--clear-limitsAlle Limits und das RAM-Volume des Repositorys entfernenNein-
--forceEine Speicherobergrenze unter dem aktuellen Speicherverbrauch des Repositorys zulassenNein-
-m, --machine <name>Name der ZielmaschineNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--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 vorhandenNein-
--checkpointCRIU-Checkpoint vor Backup erstellen (erfasst Prozessspeicherstatus für Live-Migration)Nein-
--forceVorhandenes Backup überschreiben erzwingenNein-
--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 GrenzeNein-
--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 BasiswahlNein-
--strategy <strategy>Block-Delta-Strategie bei Verwendung einer Delta-Basis: auto, physical oder sharedNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--from <remote>Name der Quellmaschine (wird automatisch aus der Konfiguration erkannt)Nein-
--from-machine <machine>—Nein-
--forceVorhandenes Repository überschreiben erzwingenNein-
--upNach dem Pull das Repository auf diesem Rechner mounten und bereitstellenNein-
--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 GrenzeNein-
--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 sharedNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--to <place>Zielmaschine oder -clusterJa-
--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 GrenzeNein-
--checkpointCRIU-Live-Migration: Prozessspeicherzustand erfassen und wiederherstellenNein-
--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 sharedNein-
--skip-dnsDNS-Umschaltung nach Migration überspringenNein-
--keep-sourceQuell-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-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--local <paths...>Ein oder mehrere lokale Datei- oder Verzeichnispfade (Standard: aktuelles Verzeichnis)Nein-
--remote <path>Remote-Unterverzeichnis-Pfad innerhalb des RepositoryNein-
--remote-file <path>Einzelner entfernter Dateipfad (relativ zum Repository-Root) als Upload-Ziel. Schließt --remote aus.Nein-
--mirrorSpiegelmodus - Remote-Dateien löschen, die nicht lokal vorhanden sindNein-
--verifyDateien mit Prüfsummen nach der Synchronisierung überprüfenNein-
--confirmÄnderungen anzeigen und vor der Synchronisierung um Bestätigung bittenNein-
--exclude <patterns...>Von der Synchronisierung auszuschließende MusterNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

download

Dateien aus einem Repository herunterladen

rdc repo sync download <ref> [options]
OptionBeschreibungErforderlichStandard
--local <path>Lokaler Verzeichnispfad (Standard: aktuelles Verzeichnis)Nein-
--remote <path>Remote-Unterverzeichnis-Pfad innerhalb des RepositoryNein-
--remote-file <path>Pfad einer entfernten Datei im Repository (Alternative zu --remote für Einzeldatei-Transfers)Nein-
--mirrorSpiegelmodus - lokale Dateien löschen, die nicht auf Remote vorhanden sindNein-
--verifyDateien mit Prüfsummen nach der Synchronisierung überprüfenNein-
--confirmÄnderungen anzeigen und vor der Synchronisierung um Bestätigung bittenNein-
--exclude <patterns...>Von der Synchronisierung auszuschließende MusterNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

status

Synchronisierungsstatus prüfen und lokale/entfernte Dateien vergleichen

rdc repo sync status <ref> [options]
OptionBeschreibungErforderlichStandard
--local <path>Lokaler Verzeichnispfad (Standard: aktuelles Verzeichnis)Nein-
--remote <path>Remote-Unterverzeichnis-Pfad innerhalb des RepositoryNein-
--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]
OptionBeschreibungErforderlichStandard
-c, --container <name>Containername (automatisch erkannt, wenn nur einer läuft)Nein-
--port <port>Remote-Container-Port zum WeiterleitenNein-
--local <port>Lokaler Port (Standard: gleich wie Remote-Port)Nein-
--url-onlyGibt 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]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
--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.Neinfile
--current <value>Vorheriger Klartextwert (passwd-artige Vorbedingung). Erforderlich zum Überschreiben/Löschen; schließt sich mit --rotate-secret gegenseitig aus.Nein-
--rotate-secretRotation 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]
OptionBeschreibungErforderlichStandard
--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-secretRotation 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.

list:

Archivierte Repository-Anmeldedaten auflisten

rdc repo admin archive list

purge:

Alle archivierten Anmeldedaten dauerhaft löschen

rdc repo admin archive purge [name] [options]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-

restore:

Archivierte Repository-Anmeldedaten wiederherstellen

rdc repo admin archive restore <name> [options]
OptionBeschreibungErforderlichStandard
--new-name <name>Neuer RessourcennameNein-

validate

Repository-Integrität überprüfen

rdc repo admin validate <ref> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

ownership

Repository-Verzeichnis-Besitz ändern

rdc repo admin ownership <ref> [options]
OptionBeschreibungErforderlichStandard
--uid <uid>Besitzer-UID (Standard: 7111)Nein-
--root-ownedRoot-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 festhaltenNein-
--dry-runMit --root-owned: die Dateien auflisten, die sich ändern würden, ohne etwas zu ändernNein-
--undoMit --root-owned: die Dateien aus dem Rückgängig-Manifest, die noch der Eigentümer-UID gehören, an root zurückgebenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

autostart

Automatischen Repository-Start beim Hochfahren verwalten

enable:

Autostart für ein Repository aktivieren

rdc repo admin autostart enable [ref] [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

disable:

Autostart für ein Repository deaktivieren

rdc repo admin autostart disable [ref] [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

list:

Repositories mit aktiviertem Autostart auflisten

rdc repo admin autostart list [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

template

Vorlage auf ein Repository anwenden

list:

Alle eingebetteten Bereitstellungsvorlagen der CLI auflisten

rdc repo admin template list

apply:

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]
OptionBeschreibungErforderlichStandard
--template <name>Anzuwendende VorlageJa-
--file <path>Pfad zu einer eigenen Vorlagen-JSON-Datei ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): überschreibt den Namen der eingebauten VorlageNein-
--grand <name>Grand-Repository-Name (wird automatisch in GUID aufgelöst)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

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]
OptionBeschreibungErforderlichStandard
-c, --container <name>Container, aus dem gelesen werden soll (nur nötig, wenn das Repository mehr als einen betreibt)Nein-
-f, --followNeue Zeilen weiter streamen, bis unterbrochen wirdNein-
--lines <n>Wie viele Verlaufszeilen angezeigt werden sollen (Standard: 100)Nein100
--timestampsJeder Zeile ihren Zeitstempel voranstellenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-c, --container <name>Container, in dem ausgeführt werden soll (nur nötig, wenn das Repository mehr als einen betreibt)Nein-
-i, --interactiveEin Terminal zuweisen (für einen Befehl, der eines erwartet)Nein-
-u, --user <user>Benutzer, als der der Befehl ausgeführt werden sollNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--device <cdi-name>Vollqualifizierter CDI-Gerätename (z. B. nvidia.com/gpu=all)Ja-
--exclusiveGerät für dieses Repository reservieren: Bis dahin kann es keinem anderen Repository freigegeben werdenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--device <cdi-name>Vollqualifizierter CDI-Gerätename (z. B. nvidia.com/gpu=all)Ja-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--rootup() und down() als root ausführen, ohne RechteverzichtNein-
--path <path>Absoluter Pfad, auf den up() und down() zugreifen dürfen, PATH[:ro|:rw] (standardmäßig schreibgeschützt)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--rootRoot-Freigabe entziehenNein-
--path <path>Absoluter Pfad, dessen Freigabe entzogen wirdNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der Zielmaschine (weglassen, um die offenen Job-Tickets dieser Konfiguration aufzulisten)Nein-
--allAbgelaufene und verworfene Tickets einbeziehenNein-

7.2 status

Zeigt den Status eines entkoppelten Jobs an

rdc job status <job-id> [options]
OptionBeschreibungErforderlichStandard
-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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der Zielmaschine (optional, wenn diese Konfiguration ein Ticket für den Job hält)Nein-
-f, --followStreamt, bis der Job abgeschlossen istNein-
--since-line <n>Setzt nach dieser Anzahl Zeilen fort (die Anzahl, die bereits empfangen wurde)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

7.4 cancel

Bricht einen laufenden entkoppelten Job ab

rdc job cancel <job-id> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der Zielmaschine (optional, wenn diese Konfiguration ein Ticket für den Job hält)Nein-
-y, --yesBestätigungsaufforderung überspringenNein-

7.5 gc

Entfernt abgeschlossene Jobs und deren Protokolle

rdc job gc [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-
--older-than <duration>Erfasst Jobs, deren Abschluss länger als diese Anzahl Stunden zurückliegt (Standard: 168)Nein-
-y, --yesBestätigungsaufforderung überspringenNein-

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]
OptionBeschreibungErforderlichStandard
-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]
OptionBeschreibungErforderlichStandard
--staleAlle 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, --yesBestätigungsaufforderung überspringenNein-

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]
OptionBeschreibungErforderlichStandard
--path <subdir>Auflistung auf diesen Teilbaum beschränkenNein-
--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 <timesnapshot>`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 lesenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.2 cancel

Laufendes Backup auf einem Remote-Rechner abbrechen

rdc backup cancel [strategy] [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameJa-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.3 list

Backup-Artefakte auf einer Maschine auflisten.

rdc backup list [artifact-ref] [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameNein-
--path <subdir>Auflistung auf ein Unterverzeichnis beschränken; weglassen, um den gesamten Datenspeicher aufzulistenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.4 manifests

Auf dem Server erfasste Backup-Snapshot-Manifeste auflisten

rdc backup manifests [repo-ref] [options]
OptionBeschreibungErforderlichStandard
--limit <n>Zeilen pro Seite (Standard und Maximum 500)Nein-
--before <cursor>Seitenmarke aus einer früheren Auflistung (nextBefore)Nein-
--include-deletedSnapshots mit ausstehendem verzögertem Löschen einbeziehenNein-

8.5 restore

Ein Backup-Artefakt in ein lebendes Repository verwandeln. Die Platzierung wird hier festgelegt.

rdc backup restore <artifact-ref> [options]
OptionBeschreibungErforderlichStandard
--as <name>Name für das wiederhergestellte Repository (Standard: Artefaktname)Nein-
-m, --machine <name>Machine-NameNein-
--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-streamMit --at auch Snapshots berücksichtigen, die von anderen Maschinen und Forks dieser Linie geschrieben wurden (Standard: nur dieses Repository auf seiner Quellmaschine)Nein-
--no-seedJeden Chunk aus dem Speicher abrufen, statt lokale Anker oder Repository-Abbilder wiederzuverwenden (beweist, dass der Speicher lesbar ist)Nein-
--allow-unopenableDas 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-
--upDas wiederhergestellte Repository nach der Übertragung bereitstellenNein-
--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, --yesBestätigungsaufforderung überspringenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--stream <id>Nur für diesen Backup-Stream (eine Stream-ID); ohne Angabe gilt der Standard für das ganze RepositoryNein-

set

Legen Sie fest, wie viele Snapshots aufbewahrt werden sollen. Jede Einstellung wird ersetzt, nicht zusammengeführt.

rdc backup retention set <repo-ref> [options]
OptionBeschreibungErforderlichStandard
--keep-last <n>So viele der neuesten Snapshots behaltenNein-
--keep-hourly <n>Den neuesten Snapshot aus jeder dieser Stunden behaltenNein-
--keep-daily <n>Den neuesten Snapshot aus jedem dieser Tage behaltenNein-
--keep-weekly <n>Den neuesten Snapshot aus jeder dieser Wochen behaltenNein-
--keep-monthly <n>Den neuesten Snapshot aus jedem dieser Monate behaltenNein-
--keep-yearly <n>Den neuesten Snapshot aus jedem dieser Jahre behaltenNein-
--keep-within <duration>Alle Snapshots innerhalb dieser Zeitspanne vor dem neuesten behalten, z. B. 24hNein-
--stream <id>Nur für diesen Backup-Stream (eine Stream-ID); ohne Angabe gilt der Standard für das ganze RepositoryNein-

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]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameJa-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.8 schedule

Backup-Zeitplan auf einer Remote-Maschine deployen (systemd-Timer)

rdc backup schedule [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameJa-
--dry-runGenerierte Units anzeigen ohne zu deployenNein-
--forceAuch fortfahren, wenn gerade ein Backup läuft (neue Unit greift beim nächsten Timer-Tick; laufender Vorgang behält seine alte Unit)Nein-
--reset-failedFehlerstatus berührter Dienste nach erfolgreichem Deploy zurücksetzen (standardmäßig aus, bewahrt das Fehlersignal)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--reseedDem lokalen Anker misstrauen und ein vollständiges Inventar hochladen (lädt alles neu hoch und belastet erneut das Kontingent)Nein-
--dry-runNur planen: kein Upload. Zeigt, was sich bewegen würdeNein-
--coldContainer stoppen, einfrieren, neu starten, dann hochladen. Kostet eine kurze echte Ausfallzeit, liefert dafür einen anwendungskonsistenten Snapshot; nicht zusammen mit --dry-run verwendbarNein-
--accept-identity-changeDieses Image als neue Basis übernehmen, wenn sich seine LUKS-Identität geändert hat oder es geschrumpft ist; lädt einen vollständigen Snapshot hochNein-
--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 GrenzeNein-
--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 = unbegrenztNein-
--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-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.10 status

Backup-Status und Timer-Zustand auf einem Remote-Rechner anzeigen

rdc backup status [strategy] [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameJa-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--destination <name>Zielname innerhalb der Strategie. Erstellt ein Rediacc-Chunk-Store-ZielNein-
--target <storeId>Registrierte Store-ID, in die das Ziel schreibt (Standard: home). Zusammen mit --destination verwendenNein-
--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 verwendenNein-
--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-AufnahmeNein-
--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 sieNein-
--cpu-limit <percent>CPU-Obergrenze für die Snapshots dieser Strategie: Prozent aller Kerne, 1-100 (Standard 50); none hebt sie aufNein-
--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 FamilieNein-
--repo-cell-size <ref=size>Zellgröße je Repository als <ref>=<größe>, wiederholbar. Eine Änderung initialisiert das Repository neuNein-
--no-estimateÄnderungs- und Kostenschätzung überspringenNein-
--dry-runZeigen, was sich ändern würde, ohne zu schreibenNein-
--enableStrategie oder Ziel aktivierenNein-
--disableStrategie oder Ziel deaktivierenNein-

bind

Backup-Strategie an eine Maschine binden, damit ihr Zeitplan dort deployed wird

rdc backup strategy bind <strategy> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-

unbind

Backup-Strategie von einer Maschine lösen

rdc backup strategy unbind <strategy> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-

remove

Backup-Strategie oder Ziel entfernen

rdc backup strategy remove <strategy> [options]
OptionBeschreibungErforderlichStandard
--destination <name>Nur dieses Ziel entfernen (andere Ziele bleiben erhalten)Nein-
--unbindDie Strategie auch von jeder Maschine lösen, die sie bindetNein-

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]
OptionBeschreibungErforderlichStandard
--dry-runZahlen nur anzeigen, ohne das Ledger zu ändernNein-
--checkProbelauf, der mit 1 endet, wenn das Ledger vom Store abweichtNein-

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]
OptionBeschreibungErforderlichStandard
--deepJede erfasste Zelle neu hashen (vollständige Verifizierung) statt einer stichprobenartigen PrüfungNein-
--storeJeden gespeicherten Chunk dieses Repositorys auf dem Server neu hashen lassen und fehlende oder beschädigte benennenNein-
--restore-testDen Anker-Snapshot unter einem Wegwerfnamen direkt aus dem Speicher wiederherstellen, mit dem Anker vergleichen, das Ergebnis erfassen und die Kopie löschenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--to <dir>Vorhandenes, beschreibbares Verzeichnis, das <machine>/<name>.<tag>.img aufnimmt (wird nie angelegt)Ja-
--allAlle Grand-Repositories der mit -m benannten Maschine kopierenNein-
-m, --machine <name>Machine-NameNein-
--include-forksMit --all auch Forks kopierenNein-
--bwlimit <rate>Obergrenze für die Netzwerkbandbreite, etwa 100Mbps oder 12.5M (Standard: unbegrenzt)Nein-
--checkpointRepository vor dem Snapshot per Checkpoint einfrieren (Hot-Backup)Nein-
--retries <n>Wiederholungsversuche im Lauf nach einem Netzwerkfehler (Standard: 3)Nein-
--skip-verifysha256-Vergleich nach rsync überspringen; die eigene Prüfsumme von rsync läuft weiterhinNein-
--skip-space-checkNur warnen statt abzulehnen, wenn auf dem Ziel möglicherweise zu wenig Platz frei istNein-
--storeDas 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_TOKENNein-
`—at <timesnapshot>`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 ausgewichenNein-

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]
OptionBeschreibungErforderlichStandard
--to <machine>Maschine, die das Image erhältJa-
--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 ablegenNein-
--from-repo <name>Repository aus der Konfiguration, das Zugangsdaten und Herkunft liefert, wenn die Statusdatei fehlt oder ein unbekanntes Repository nenntNein-
--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-
--upRepository nach der Registrierung startenNein-
--skip-verifyVergleich des lokalen Images mit dem beim Download gespeicherten sha256 überspringenNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-
-y, --yesBestätigungsaufforderung überspringenNein-
--cancelEin verzögertes Entfernen abbrechen, bevor es wirksam wirdNein-

8.19 check

Beweist per Wiederherstellung einer Datei, dass sich ein Snapshot mit der Passphrase öffnen lässt

rdc backup check <repo-ref> [options]
OptionBeschreibungErforderlichStandard
--path <file>Die Datei, die wiederhergestellt und verglichen wird (Standard: die kleinste nicht leere Datei)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--dry-runZeigt, was gelöscht und erneut hochgeladen würde; ändert nichtsNein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
--replaceEinen abweichenden Schlüssel auf der Maschine ersetzen (sendet zum Nachweis die Passphrase)Nein-
--dry-runZeigt, was getan würde; berührt nichtsNein-

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]
OptionBeschreibungErforderlichStandard
--samples <n>Anzahl der Messproben (Standard 3)Nein-
--interval <duration>Wartezeit zwischen den Proben, z. B. 10m (Standard 10m)Nein-
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-f, --folder <path>Pfad zum Remote-Ordner zum ÖffnenNein-
--url-onlyDrucke die VS Code-URI statt sie zu startenNein-
-n, --new-windowIn neuem VS Code-Fenster öffnenNein-
--skip-env-setupRemote-Umgebungs-Setup überspringenNein-
--insidersVS Code Insiders-Einstellungen verwendenNein-
--browserBrowser-VS Code innerhalb der Repository-Sandbox bereitstellen (kein lokales VS Code erforderlich)Nein-
--no-openURL ausgeben, ohne den lokalen Browser zu startenNein-
--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]
OptionBeschreibungErforderlichStandard
--allAlle rediacc-SSH-Konfigurationen entfernenNein-
-c, --connection <name>Spezifische Verbindung entfernenNein-

9.4 check

Überprüfen Sie die VS Code-Installation und Konfiguration

rdc vscode check [options]
OptionBeschreibungErforderlichStandard
--insidersVS Code Insiders-Einstellungen verwendenNein-

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]
OptionBeschreibungErforderlichStandard
--server-provider <id>Browser-VS-Code-Server-Implementierung (openvscode, code-server)Nein-

stop

Browser-VS-Code-Server stoppen

rdc vscode serve stop <target> [options]
OptionBeschreibungErforderlichStandard
--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]
OptionBeschreibungErforderlichStandard
-c, --command <cmd>Ausführen eines Befehls statt interaktiver ShellNein-
--externalErzwinge Start in externem Terminal-FensterNein-
--reset-homePer-Repo Home-Overlay für einen Neustart zurücksetzenNein-

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]
OptionBeschreibungErforderlichStandard
-t, --token <token>API-Token (rdt_...). `-` übergeben, um ihn von stdin zu lesen (hält ihn aus der Prozessliste heraus).Nein-
--password-stdinHeadless mit dem Kontopasswort anmelden, das von stdin gelesen wird (REDIACC_LOGIN_EMAIL erforderlich)Nein-
--server <url>Account-Server-URLNein-

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]
OptionBeschreibungErforderlichStandard
--jsonJSON mit dem Token und seinem expiresAt ausgebenNein-

12.4 status

Abonnement und Lizenzstatus für eine Maschine anzeigen.

rdc subscription status [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameNein-

12.5 refresh

Lizenzen vom Account-Server aktualisieren.

rdc subscription refresh [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameNein-
--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]
OptionBeschreibungErforderlichStandard
--forceUpdate erzwingen, auch wenn bereits aktuellNein-
--check-onlyNur auf Updates prüfen, ohne herunterzuladenNein-
--rollbackAuf die vorherige Version zurücksetzenNein-
--statusAuto-Update-Status und Diagnose anzeigenNein-
--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]
OptionBeschreibungErforderlichStandard
--licensesDen vollständigen THIRD_PARTY_LICENSES-Text ausgeben, der mit Release-Builds gebündelt istNein-

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]
OptionBeschreibungErforderlichStandard
--forceNeu installieren, auch wenn die hinterlegte Version schon vorhanden istNein-

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]
OptionBeschreibungErforderlichStandard
--forceNeustart aller VMs erzwingenNein-
--parallelVMs parallel erstellenNein-
--basicMinimaler Cluster (Bridge + 1 Worker)Nein-
--liteVM-Bereitstellung überspringen (nur Status)Nein-
--skip-orchestrationCluster-Orchestrierung überspringenNein-
--backend <backend>Virtualisierungs-Backend (kvm|qemu, automatisch erkannt)Nein-
--os <name>VM-Betriebssystem (z.B. ubuntu-24.04, debian-12)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

17.2 down

VM-Cluster zerstören

rdc ops down [options]
OptionBeschreibungErforderlichStandard
--backend <backend>Virtualisierungs-Backend (kvm|qemu, automatisch erkannt)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

17.3 status

VM-Cluster-Status anzeigen

rdc ops status [options]
OptionBeschreibungErforderlichStandard
--backend <backend>Virtualisierungs-Backend (kvm|qemu, automatisch erkannt)Nein-

17.4 ssh

SSH-Verbindung zu einer VM

rdc ops ssh [options]
OptionBeschreibungErforderlichStandard
--vm-id <id>ID der virtuellen MaschineJa-
-c, --command <cmd>Ausführen eines Befehls statt interaktiver ShellNein-
--backend <backend>Virtualisierungs-Backend (kvm|qemu, automatisch erkannt)Nein-
--user <user>SSH-Benutzername für VM-VerbindungNein-

17.5 setup

Virtualisierungsvoraussetzungen installieren

rdc ops setup [options]
OptionBeschreibungErforderlichStandard
--debugDebug-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]
OptionBeschreibungErforderlichStandard
-p, --port <port>Port, auf dem gelauscht werden sollNein8080
--host <host>Adresse, an die gebunden werden sollNein0.0.0.0
--mode <mode>Platzierung: daemon (Kundenhost) oder containerNeindaemon

Häufige Fehlermeldungen

Wenn etwas schiefgeht, liefert die CLI klare Fehlermeldungen:

FehlerBedeutung
Authentifizierung erforderlich. Ausführen: rdc subscription loginSie 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 verweigertIhr 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.