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-
--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
--headlessGerätecode-Authentifizierung verwenden (für Server ohne GUI)Nein-
--passwordHeadless mit einem vorab bereitgestellten Passwort-Slot anmelden (kein Browser)Nein-
--api-url <url>Account-Server-URLNein-
--forceAbweichenden lokalen Inhalt ohne Bestätigung durch die Serverkopie ersetzenNein-

disable

Verbindung zum Remote-Speicher trennen und Konfiguration lokal speichern

rdc config remote disable

status

Remote-Verbindungsstatus anzeigen

rdc config remote status

refresh

Konfiguration erneut vom Remote-Speicher abrufen

rdc config remote refresh

1.12 field

Feldoperationen der Konfiguration mit Pointer-Adressierung (get/set/unset/rotate/list). JSON-Pointer (RFC 6901), z. B. /credentials/cfDnsApiToken.

get

Einzelnen Konfigurationswert per JSON-Pointer lesen. Sensible Felder werden zensiert, außer mit --reveal (nur interaktiv).

rdc config field get [options]
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 — für Änderungen sensibler Pfade erforderlich (Wissensnachweis)Nein-

unset

Konfigurationswert an einem JSON-Pointer löschen. Sensible Pfade erfordern --current.

rdc config field unset [options]
OptionBeschreibungErforderlichStandard
--pointer <pointer>JSON-Pointer zum Feld (z. B. /credentials/cfDnsApiToken)Ja-
--current <value>Aktueller Klartextwert — für Löschungen sensibler Pfade erforderlichNein-

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-

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> [options]
OptionBeschreibungErforderlichStandard
-t, --team <name>Team-NameNein-

3.3 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.4 deprovision

Cloud-bereitgestellte Maschine zerstören und aus Konfiguration entfernen

rdc machine deprovision <name> [options]
OptionBeschreibungErforderlichStandard
--forceBestätigungsaufforderung überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

3.5 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.6 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.7 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.8 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 <token>API-Token für den Cloud-ProviderJa-
--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.9 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 sind, sodass diese Platzierungen hängend zurückbleiben.Nein-

3.10 scan-keys

SSH-Hostschlüssel für Maschinen in der aktuellen Konfiguration scannen

rdc machine scan-keys [name]

3.11 setup

Remote-Maschine für Repositories einrichten (installiert renet, konfiguriert Docker, BTRFS-Datenspeicher). Idempotent. Erforderlich nach config machine add und vor repo create

rdc machine setup <name> [options]
OptionBeschreibungErforderlichStandard
--datastore-path <path>Datenspeicherpfad auf Remote-MaschineNein/mnt/rediacc
--datastore-size <size>Datenspeichergröße (z.B. 95%, 100G)Nein95%
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

3.12 status

Vollständigen Maschinenstatus anzeigen (System, Repos, Container, Dienste)

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-

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 die vollständige Konfiguration eines Clusters mit --name anzeigen.

rdc cluster status [cluster]

4.3 scale

Die Mitgliederanzahl eines Pools ändern (fügt Maschinen hinzu/entfernt sie und joint/drained Knoten). k8s-agent-Pools skalieren an Ort und Stelle; ceph-Pool-Wachstum erfolgt direkt über cephadm.

rdc cluster scale <cluster> [options]
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 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.5 diff

Git-artiger Datei-Diff zwischen zwei Copy-on-Write-geforkten Repositories. Meldet hinzugefügte, geänderte, gelöschte und umbenannte Dateien. Vergleicht das per --name angegebene Repository (Ziel/Neuseite) mit seinem aus der lokalen Konfiguration aufgelösten Eltern-Repository oder mit einem explizit per --base angegebenen Repository (Basis/Altseite). Nur Metadaten und größenunabhängig: vergleicht die verschlüsselten LUKS-Images auf Blockebene ohne Entschlüsselung — ein 1-GB- und ein 100-GB-Repo werden in denselben Millisekunden gediff.

rdc repo diff <ref> [options]
OptionBeschreibungErforderlichStandard
--base <ref>Vergleichs-Repository (Basis/Altseite); standardmäßig das Eltern-Repository von --nameNein-
--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.6 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.7 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.8 delete

Ein Repository und seine Daten löschen. Der Konfigurationseintrag bleibt erhalten; verwenden Sie --archive-config, um Anmeldedaten für die Wiederherstellung über 'repo admin archive restore' nach deletedRepositories zu verschieben. Nimmt eine positionale <ref> entgegen; ein bloßer Name löst zur Grand-Linie auf und wird abgelehnt, wenn mehrere Repositories denselben Basisnamen teilen — übergeben Sie name:tag, um einen Fork anzusprechen.

rdc repo delete <ref> [options]
OptionBeschreibungErforderlichStandard
--archive-configKonfigurationseintrag nach deletedRepositories verschieben zur späteren WiederherstellungNein-
-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.9 commit

Friert den aktuellen Zustand eines gemounteten Arbeits-Forks in einen neuen unveränderlichen commit ein (wie bei git). Der commit speichert seine Nachricht, den Autor, den Zeitstempel und den Parent im Volume (sodass diese Angaben beim push mitwandern) und wird schreibgeschützt markiert — er verweigert das Mounten. Der Arbeits-Fork bleibt unverändert, so wie git den Arbeitsbaum unangetastet lässt. Checke einen commit mit 'rdc repo checkout' aus, um eine beschreibbare Kopie zu erhalten.

rdc repo commit <ref> [options]
OptionBeschreibungErforderlichStandard
--message <msg>commit-NachrichtJa-
--author <author>commit-AutorNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

6.10 branch

Erstellt eine benannte branch-Referenz, die auf den aktuellen commit (dessen Spitze) des Arbeits-Forks zeigt. branch-Referenzen liegen in der CLI-Konfiguration (Maschine = Objektspeicher, Konfiguration = Referenzspeicher).

rdc repo branch <ref> [options]
OptionBeschreibungErforderlichStandard
--branch <branch>Name des neuen BranchesJa-

6.11 checkout

Klont einen unveränderlichen commit (oder eine branch-Spitze) per Reflink in einen frischen beschreibbaren Arbeits-Fork und richtet HEAD darauf aus. Nahezu sofort und von konstanter Dauer (BTRFS-Reflink).

rdc repo checkout <commit-or-branch-ref> [options]
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.12 log

Gibt die commit-Historie aus, die vom aktuellen commit eines Arbeits-Forks (oder von einer commit-Referenz) aus erreichbar ist, und durchläuft dabei die von 'rdc repo commit' aufgezeichnete Parent-Kette. Liest den Spiegel außerhalb des Volumes, sodass kein commit entsperrt wird.

rdc repo log <ref> [options]
OptionBeschreibungErforderlichStandard
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

6.13 merge

Führt einen Quell-Commit oder -Fork in einen Ziel-Arbeits-Fork zusammen. Das aktive Ziel wird niemals direkt verändert: Das Ergebnis wird in einem Reflink-Klon erstellt und atomar eingewechselt. Ein eingehängtes oder laufendes Ziel wird abgelehnt, sofern nicht --force angegeben ist, das es zuvor sauber stilllegt. Ohne --resolve erfolgt eine bildweite Übernahme der Quelle (take-theirs; das Ziel wird zur Quelle); mit --resolve ours|theirs erfolgt eine dateiweise Drei-Wege-Zusammenführung gegen den gemeinsamen Vorfahren, wobei die jeweils einzigartigen Änderungen beider Seiten übernommen und beidseitige Konflikte gemäß dem Flag (ours oder theirs) aufgelöst werden.

rdc repo merge <ref> [options]
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.14 gc

Löscht unveränderliche Commit-Objekte auf einer Maschine, die kein Branch und kein HEAD erreicht (Erreichbarkeits-GC). Die Maschine ist der Objektspeicher; die CLI-Konfiguration ist der Referenzspeicher. Standardmäßig Probelauf: mit --apply löschen. Berührt niemals ein eingehängtes Objekt oder einen Arbeits-Fork.

rdc repo gc [options]
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.15 fork

Einen CoW-Fork (Copy-on-Write) eines Repositorys erstellen. DER FORK IST NAHEZU SOFORT UND VON KONSTANTER DAUER, unabhängig von der Repository-Größe — BTRFS-Reflink klont das zugrunde liegende Image, sodass ein 100-GB-Repository und ein 1-GB-Repository in denselben ~Sekunden forken. Der Fork erhält eine NEUE GUID, networkId, einen neuen IP-Bereich und eine Auto-Route-Domain ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) und ist eine vollständig unabhängige Kopie. Online-Forking wird unterstützt, das Original kann weiterlaufen. Der Fork erbt automatisch die Verschlüsselungs-Anmeldedaten des Originals. Verwenden Sie --checkpoint, um den CRIU-Prozesszustand vor dem Forken zu erfassen; der Fork stellt ihn beim ersten 'repo up' automatisch wieder her (Zustand im Speicher bleibt erhalten). MASCHINENÜBERGREIFENDER FORK: zuerst lokal forken, dann übertragen: (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine>, (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. WARNUNG: Verwenden Sie NICHT "repo push" allein zum Forken — das erzeugt eine Rohkopie mit DERSELBEN GUID (kein unabhängiger Fork). Forken Sie immer zuerst, um eine neue Identität zu erhalten. Auto-Routes verwenden den Repository-Namen, sodass jeder Fork automatisch eine eindeutige Domain erhält.

rdc repo fork <ref> [options]
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.16 replicate

Erzeugt in Sekunden N Lesereplikate eines Repositorys, unabhängig von der Datenbankgröße. Erstellt EINEN Datenspeicher-Snapshot und dann N zeitkonstante Fork-Attaches (Copy-on-Write, verwerfbare lokale Schreibvorgänge), verteilt über die Knoten des Clusters, und wendet ein generiertes Overlay an: ein gepinntes PersistentVolume pro Replikat, ein StatefulSet und zwei Services ({repo}-rw zur Primärinstanz, {repo}-ro über alle Replikate). Replikate sind Point-in-Time-Kopien: kein Replikationsstream, kein Read-your-Writes; jedes Replikat durchläuft vor der Bereitstellung einen Crash-Recovery-Durchlauf. Mit 'repo replicate refresh' werden sie aktualisiert. Replikat-Sets sind verwalteter Zustand: siehe 'repo replicate status', entfernen mit 'repo replicate remove'.

status

Verwaltete Replikat-Sets anzeigen: Replikate, Hosting-Knoten, Fork-Datenspeicher, Snapshot und Refresh-Zeitstempel.

rdc repo replicate status <ref>

remove

Ein Replikat-Set entfernen: seine generierten k8s-Objekte löschen (auf Labels begrenzt), seine Fork-Datenspeicher verwerfen, seinen Snapshot löschen und den Zustand vergessen. Infra-Schritte laufen best-effort, sodass die Entfernung auch bei einem teilweise verschwundenen Cluster konvergiert.

rdc repo replicate remove <ref> [options]
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.17 canary

Ein NEUES Image parallel zum stabilen laufen lassen und den Live-Traffic prozentual zwischen beiden aufteilen (Stufe 2 der Release-Leiter). Legt ein Canary-Deployment + einen Service auf DENSELBEN Live-Daten an (kein Fork: Canary-Nutzer auf geforkten Daten würden veraltete Daten lesen und in eine zum Scheitern verurteilte Kopie schreiben) und weist den Rediacc-Proxy an, den angegebenen Prozentsatz des Traffics des stabilen Hostnamens dorthin zu leiten. Gewicht 0 hält den Canary dark; Gewicht 100 ist der Blue/Green-Umschalt. Vor jeder Canary-Änderung wird automatisch ein Gruppen-Snapshot der Datenspeicher des Clusters erstellt (Stufe 0 der Release-Leiter) als universelles Undo. Die Schema-Kompatibilität zwischen den beiden Versionen (expand-contract) liegt in der Verantwortung der Anwendung. Für schema-BRECHENDE Releases stattdessen Blue/Green verwenden: das Repository forken (sofort, inklusive Daten), den Service des Forks hier mit Gewicht 100 einsetzen und per Neustart des unangetasteten Originals zurückrollen; nach dem Umschalten vorgenommene Schreibvorgänge existieren nur in der neuen Kopie – das Rollback-Fenster ist somit eine Policy-Entscheidung.

status

Verwaltete Canary-Sets anzeigen: Gewicht, Images, stabiler Service und der letzte Release-Undo-Snapshot.

rdc repo canary status <ref>

weight

Den Prozentsatz des zum Canary geleiteten Traffics ändern. Erstellt zuerst einen frischen Release-Undo-Gruppen-Snapshot und wendet dann das Overlay erneut an; der Proxy übernimmt die neue Aufteilung bei seinem nächsten Refresh-Tick. Gewicht 100 leitet den gesamten Traffic zur neuen Version (der Blue/Green-Umschalt).

rdc repo canary weight <ref> [options]
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.18 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.19 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.20 trim

Gibt Datenspeicher-Poolspeicher aus eingehängten Repositories zurück (online, ohne Ausfallzeit). In Repositories gelöschte Blöcke werden per fstrim an den Pool zurückgegeben. Ohne Referenz werden alle eingehängten Repositories auf -m sowie der Datenspeicher selbst getrimmt. Für Repositories mit laufendem Backup wird fstrim übersprungen; die Bereinigung über --docker läuft trotzdem

rdc repo trim [ref] [options]
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.21 policy

Verwaltet die automatische Größenrichtlinie des Speicher-Maintainers der Maschine: vergrößert das Kontingent eines Repositorys online, wenn es voll läuft (nie über max-quota hinaus, nie bei knappem Pool), und führt geplante Trims aus. Automatisches Verkleinern gibt es nicht; dafür 'repo resize' verwenden. Ohne Referenz wird die maschinenweite Standardrichtlinie auf -m angesprochen

set

Setzt Felder der Größenrichtlinie. Nur übergebene Flags werden geändert; andere gespeicherte Felder behalten ihre Werte. Auto-Grow erfordert --max-quota: die Obergrenze ist die ausdrückliche Zustimmung zur Überprovisionierung des Pools

rdc repo policy set [ref] [options]
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-
-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.22 push

Repository an ein Remote (Rechner oder Speicher) pushen. Der Zieltyp wird automatisch aus der Konfiguration erkannt. Bei Rechner-zu-Rechner-Transfer wird das verschlüsselte Repo-Image mit derselben GUID kopiert — dies ist ein Backup/Migration, kein Fork. Für einen unabhängigen Fork verwenden Sie zuerst 'repo fork', dann push. Eine gepushte Kopie landet als Backup-ARTEFAKT: starten Sie es auf dem Ziel mit 'backup restore <ref> --as <name> -m <target> --up'

rdc repo push <ref> [options]
OptionBeschreibungErforderlichStandard
--to <remote>Name des Zielrechners oder Speichers (wird automatisch aus der Konfiguration erkannt)Nein-
--to-machine <machine>Nein-
--provision <provider>Zielrechner automatisch über Cloud-Anbieter bereitstellen, wenn nicht vorhandenNein-
--checkpointCRIU-Checkpoint vor Backup erstellen (erfasst Prozessspeicherstatus für Live-Migration)Nein-
--forceVorhandenes Backup überschreiben erzwingenNein-
-w, --watchAuf Änderungen achtenNein-
--bwlimit <limit>Bandbreitenlimit für rsync-Transfer (z.B. "6M", "10M")Nein-
--delta-base <guid>Unveränderliche Basis-GUID, die auf beiden Rechnern byte-identisch vorliegt; nur geänderte Blöcke übertragen (Rechnerziel). Weglassen für automatische 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.23 pull

Repository von einem Remote (Rechner oder Speicher) pullen. Namen weglassen, um alle Repos zu pullen. Der Quelltyp wird automatisch aus der Konfiguration erkannt. Verwenden Sie --up zum Bereitstellen nach dem Pull

rdc repo pull <ref> [options]
OptionBeschreibungErforderlichStandard
--from <remote>Name des Quellrechners oder Speichers (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-
-w, --watchAuf Änderungen achtenNein-
--bwlimit <limit>Bandbreitenlimit für rsync-Transfer (z.B. "6M", "10M")Nein-
--delta-base <guid>Unveränderliche Basis-GUID, die auf beiden Rechnern byte-identisch vorliegt; nur geänderte Blöcke empfangen (Rechnerquelle)Nein-
--strategy <strategy>Block-Delta-Strategie bei Verwendung einer Delta-Basis: auto, physical oder sharedNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

6.24 migrate

Ein Repository mit minimaler Ausfallzeit live von einer Maschine auf eine andere migrieren. Zweiphasiges rsync: Massentransfer während des laufenden Betriebs, dann kurzer Stopp für die Delta-Synchronisierung. Verschiebt das gesamte Repository (das Routing wird auf das neue Zuhause umgestellt) und löscht nach erfolgreichem Umzug die Quell-Images (mit --keep-source behalten). Unterstützt CRIU-Checkpoints für die Migration des Prozessspeicherzustands und automatische Bereitstellung von Zielmaschinen

rdc repo migrate <ref> [options]
OptionBeschreibungErforderlichStandard
--to <place>Zielmaschine oder -clusterJa-
--provision <provider>Automatische Bereitstellung über Cloud-Anbieter (z.B. hetzner, linode)Nein-
--bwlimit <limit>Bandbreitenlimit für rsync-Transfer (z.B. 10M)Nein-
--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.25 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.26 tunnel

Einen SSH-Port-Forward-Tunnel zum Port eines Containers auf einem Remote-Rechner erstellen. Container und Port werden automatisch erkannt, wenn eindeutig. Der Tunnel bleibt offen, bis Sie Strg+C drücken

rdc repo tunnel <ref> [options]
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.27 secret

Pro-Repo-Geheimnisse verwalten, die bei der Bereitstellung injiziert werden. Nur schreibend: get liefert nur den Digest (nie den Klartext), set/unset erfordern eine Digest-Übereinstimmung über --current oder --rotate-secret. Zwei Zustellungsmodi: env (REDIACC_SECRET_<KEY>) und file (tmpfs unter /var/run/rediacc/secrets/<networkId>/<KEY> über compose `secrets:`). Geheimnisse gelangen nie in das verschlüsselte LUKS-Image; Forks erben keine.

get

Den SHA-256-Digest eines Geheimnisses anzeigen. Der Klartextwert wird bewusst nie zurückgegeben (nur schreibend). Verwenden Sie --current bei einem nachfolgenden set/unset, um einen bereits bekannten Wert zu verifizieren, oder rotieren Sie ihn über `set --rotate-secret`.

rdc repo secret get <ref> [options]
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.28 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-

ownership

Repository-Verzeichnis-Besitz ändern

rdc repo admin ownership <ref> [options]
OptionBeschreibungErforderlichStandard
--uid <uid>Besitzer-UID (Standard: 7111)Nein-
--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.29 promote

Daten des Grand-Repositorys durch Daten eines Forks ersetzen. Das Grand-Repository behält seine Identität (GUID, networkId, Domains, Autostart, Backup-Kette), erhält aber die aktualisierten Daten des Forks. Die alten Produktionsdaten werden als Backup-Fork gespeichert. Verwendung: Upgrade im Fork testen → prüfen → Übernahme in die Produktion.

rdc repo promote <fork-ref> [options]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

6.30 logs

Anwendungslogs aus den Containern eines Repositorys anzeigen. Docker-Repositories lesen aus dem eigenen Docker-Daemon des Repositorys; Kubernetes-Repositories lesen die Pod-Logs im Namespace des Repositorys. Betreibt das Repository mehr als einen Container, benennen Sie den gewünschten mit --container.

rdc repo logs <ref> [options]
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.31 exec

Einen Befehl innerhalb eines Repository-Containers ausführen. Der eigene Exit-Code des Befehls wird direkt durchgereicht, das funktioniert also in Skripten und Bedingungen. Docker-Repositories führen ihn über den Docker-Daemon des Repositorys aus; Kubernetes-Repositories führen ihn im Namespace des Repositorys aus.

rdc repo exec <ref> <cmd...> [options]
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-

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 ZielmaschineJa-

7.2 status

Zeigt den Status eines entkoppelten Jobs an

rdc job status <job-id> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Name der ZielmaschineJa-

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 ZielmaschineJa-
-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 ZielmaschineJa-
-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-

8. Sicherung & Wiederherstellung

Backup-Strategien, ihre geplanten Läufe und die Artefakte, die sie erzeugen, verwalten: eine Strategie für ein Repository deklarieren, sie bei Bedarf ausführen oder wiederherstellen, und die Archive einsehen, die sie auf einem Speicher-Endpunkt abgelegt hat.

8.1 schedule

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

rdc backup schedule [options]
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.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 oder in einem Speicher auflisten.

rdc backup list [artifact-ref] [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameNein-
--storage <name>Artefakte auf diesem Speicher-Endpunkt auflistenNein-
--path <subdir>Unterverzeichnis innerhalb des Speicher-Stammverzeichnisses. Wenn weggelassen, werden hot/ und cold/ aufgelistet und zusammengeführt.Nein-
-w, --watchAuf Änderungen achtenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.4 restore

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

rdc backup restore <artifact-ref> [options]
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-
--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.5 run

Backup sofort auf einem Remote-Rechner auslösen

rdc backup run [strategy] [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Machine-NameJa-
-w, --watchAuf Änderungen achtenNein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-

8.6 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.7 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 StrategieNein-
--storage <name>Speicherkonfigurationsname (rclone-Zugangsdaten)Nein-
--cron <expression>Cron-Zeitplan (z.B. "0 * * * *" für stündlich)Nein-
--mode <mode>Backup-Modus: "hot" (ohne Ausfallzeit) oder "cold" (Stoppen, Snapshot, Neustart)Nein-
--bwlimit <limit>Rclone-Bandbreitenlimit (z.B. "6M", "10M:off", "08:00,3M;22:00,10M")Nein-
--include <repos>Nur diese Repos sichern (kommagetrennte Namen)Nein-
--exclude <repos>Diese Repos vom Backup ausschließen (kommagetrennte Namen)Nein-
--folder <path>Unterordner im Storage-Bucket für dieses Ziel (z. B. hot, cold)Nein-
--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-

list

Alle Backup-Strategien auflisten

rdc backup strategy list

show

Backup-Strategie-Details anzeigen

rdc backup strategy show [strategy]

9. Speicherverwaltung

Externe Backup-Speicher-Endpunkte verwalten (S3 und andere rclone-kompatible Ziele): registrieren und entfernen, auflisten, was registriert ist, die darin enthaltenen Artefakte durchsuchen und verwaiste Backups bereinigen.

9.1 list

Speicher-Endpunkte auflisten. Geben Sie einen Namen für vollständige Details an.

rdc storage list [name] [options]
OptionBeschreibungErforderlichStandard
--revealSpeicherkonfiguration im Klartext anzeigen (nur interaktives TTY; Audit-Log)Nein-

9.2 browse

Dateien in einem Speichersystem durchsuchen

rdc storage browse <storage> [options]
OptionBeschreibungErforderlichStandard
--path <subpath>Unterverzeichnispfad zum AuflistenNein

9.3 prune

Verwaiste Backups aus dem Speicher löschen, die in keiner Konfiguration mehr vorhanden sind. Multi-Config-sicher mit Schonfrist-Schutz.

rdc storage prune <storage> [options]
OptionBeschreibungErforderlichStandard
-m, --machine <name>Ausführungsmaschine: führt rclone list/delete-Aufrufe gegen den Speicher aus. Erforderlich, weil Clients rclone nicht lokal installiert haben sollen; Speicheranmeldedaten kommen weiterhin aus Ihrer lokalen Konfiguration.Ja-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-
--forceBestätigungsaufforderungen überspringenNein-
--force-delete-mountedSetzt die Mount-Sicherheitsprüfung außer Kraft und löscht Cloud-Backups, auch wenn die Quell-GUID aktuell gemountet ist oder einen laufenden Container auf der Ausführungsmaschine hat. Unterscheidet sich von --force (das nur die Schonfrist für archivierte Repos überschreibt).Nein-
--grace-days <days>Schonfrist in Tagen für kürzlich archivierte Repos (Standard: 7)Nein-
--debugDebug-Ausgabe aktivieren (lokaler Modus)Nein-
--skip-router-restartNeustart des Route-Servers nach Binary-Update überspringenNein-

9.4 add

Einen Speicher-Endpunkt registrieren.

rdc storage add <name> [options]
OptionBeschreibungErforderlichStandard
--vault <json>Vault-Inhalt als JSON-StringJa-

9.5 import

Speicher aus einer rclone-Konfigurationsdatei importieren

rdc storage import <file> [options]
OptionBeschreibungErforderlichStandard
--name <name>Nur diesen benannten Abschnitt importierenNein-

9.6 remove

Einen Speicher-Endpunkt aus der Konfiguration entfernen.

rdc storage remove <name> [options]
OptionBeschreibungErforderlichStandard
-y, --yesBestätigungsaufforderung überspringenNein-
--dry-runZeigen, was ausgeführt würde, ohne Änderungen vorzunehmenNein-

10. VS Code-Integration

VS Code Remote SSH zu einer Maschine oder einem Repository öffnen

10.1 connect

VS Code auf einer Maschine oder innerhalb eines Repositorys öffnen.

rdc vscode connect <target> [options]
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-

10.2 list

Konfigurierte VS Code-SSH-Verbindungen auflisten

rdc vscode list

10.3 cleanup

Entfernen Sie VS Code-SSH-Konfigurationen

rdc vscode cleanup [options]
OptionBeschreibungErforderlichStandard
--allAlle rediacc-SSH-Konfigurationen entfernenNein-
-c, --connection <name>Spezifische Verbindung entfernenNein-

10.4 check

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

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

10.5 serve

Browser-VS-Code-Server innerhalb der Sandbox verwalten

status

Anzeigen, ob der Browser-VS-Code-Server läuft

rdc vscode serve status <target> [options]
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-

11. SSH-Terminalzugang

Ein SSH-Terminal zu einer Maschine oder einem Repository öffnen. Das Ziel ist ein Maschinenname oder eine Repository-Referenz, und der Repository-Kontext (DOCKER_HOST, Arbeitsverzeichnis, Umgebung) wird automatisch eingerichtet. Verwenden Sie `-c`, um einen einzelnen Befehl nicht-interaktiv auszuführen. Für Container-Logs oder einen einmaligen Befehl in einem Container verwenden Sie `repo logs` und `repo exec`. Für VS Code verwenden Sie `vscode`.

11.1 connect

Eine Shell auf einer Maschine öffnen, oder innerhalb eines Repositorys mit eingerichtetem Docker.

rdc term connect <target> [options]
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-

12. Schnellbefehle (Shortcuts)

12.1 run

Führen Sie eine Funktion aus (Kurzform: queue create)

rdc run

12.2 trace

Eine Aufgabe verfolgen (Kurzbefehl für: queue trace)

rdc trace

12.3 cancel

Eine Aufgabe abbrechen (Kurzbefehl für: queue cancel)

rdc cancel

12.4 retry

Eine fehlgeschlagene Aufgabe wiederholen (Kurzbefehl für: queue retry)

rdc retry

13. Abonnementverwaltung

Lizenzierung und Abonnement-Tokens verwalten. Anmelden mit login, prüfen mit status, Lizenzen mit refresh neu ausstellen.

13.1 login

Mit einem API-Token aus dem Webportal authentifizieren

rdc subscription login [options]
OptionBeschreibungErforderlichStandard
-t, --token <token>API-Token (rdt_...)Nein-
--server <url>Account-Server-URLNein-

13.2 logout

Gespeichertes Abonnement-Token löschen

rdc subscription logout

13.3 status

Abonnement und Lizenzstatus für eine Maschine anzeigen.

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

13.4 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-

14. 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-

15. Danksagungen an Dritte

Die mit rdc gebündelten Drittanbieter-Komponenten ausgeben: die von renet eingebetteten und übertragenen Binaries (CRIU, rsync, rclone), die eingebettete Node.js-Laufzeitumgebung und die gebündelten npm-Abhängigkeiten. Zeigt Versionen, SPDX-Lizenzkennungen und die für GPL-Compliance erforderlichen versionsgenauen Quellarchiv-URLs. Verwenden Sie --licenses, um den vollständigen THIRD_PARTY_LICENSES-Text auszugeben, der mit Release-Builds gebündelt ist.

rdc credits [options]
OptionBeschreibungErforderlichStandard
--licensesDen vollständigen THIRD_PARTY_LICENSES-Text ausgeben, der mit Release-Builds gebündelt istNein-

16. Systemdiagnose

CLI-Umgebung und Renet-Integration diagnostizieren

rdc doctor

17. Lokale VM-Operationen

Lokale VM-Bereitstellung und -Verwaltung über KVM/QEMU/Hyper-V (Plattform wird automatisch erkannt). Nicht für Remote-Maschinen gedacht — dafür `machine` verwenden. Wichtige Unterbefehle: up (VMs starten), down (stoppen), status (laufende VMs auflisten), ssh (mit VM verbinden), setup (Voraussetzungen installieren), check (Host-Bereitschaft prüfen).

17.1 up

VM-Cluster lokal bereitstellen

rdc ops up [options]
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
Team-Name erforderlich. Verwenden Sie --team oder legen Sie einen Standardwert fest mit: rdc config set team <name>Geben Sie ein Team mit `--team` an oder setzen Sie einen Kontextstandard
Regionsname erforderlich. Verwenden Sie --region oder legen Sie einen Standardwert fest mit: rdc config set region <name>Geben Sie eine Region mit `--region` an oder setzen Sie einen Kontextstandard

Ausgabeformate

Alle List/Get-Befehle unterstützen mehrere Ausgabeformate über `--output`:

rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table   # default

Dies erleichtert die Integration der Rediacc CLI in Skripte, CI/CD-Pipelines und Automatisierungsworkflows.