Riferimento CLI Rediacc
Panoramica
La **CLI Rediacc** (`rdc`) è un'interfaccia a riga di comando per la gestione dell'infrastruttura self-hosted: macchine, repository, storage, backup e altro ancora.
Installazione
Scarica l'ultimo binario per la tua piattaforma dalla [pagina delle release Rediacc](https://www.rediacc.com) oppure installa tramite il gestore di pacchetti:
# macOS / Linux
curl -fsSL https://www.rediacc.com | sh
# Or use the packaged binary directly
./rdc --help
Opzioni globali
Ogni comando supporta questi flag globali:
| Flag | Descrizione |
|---|---|
--output | Formato di output (table|json|yaml|csv) |
--config | Usa una config specifica per questo comando |
--lang | Override della lingua ({{languages}}) |
--force | Salta le richieste di conferma |
1. Gestione della config
Gestisci i file di configurazione: crea, cambia, modifica, riconcilia lo stato e le funzionalità trasversali (campi, audit, chiavi SSH, sincronizzazione remota).
I file di config memorizzano i dettagli di connessione (URL API, credenziali, team/regione/bridge predefiniti) in modo da poter passare rapidamente da un ambiente all'altro.
1.1 prune
Rimuove gli elementi superflui dal file di configurazione locale in ~/.config/rediacc/<config>.json. Vengono puliti tre bucket, tutti puramente locali (nessuna chiamata SSH/renet): (1) voci della cache certificati ACME il cui GUID/repo/macchinario di ancoraggio non è più nella configurazione attiva; (2) repository archiviati il cui periodo di grazia è scaduto (predefinito 7 giorni, vedi defaults.pruneGraceDays); (3) riferimenti incrociati non validi (machine→strategy, strategy→repo). Le risorse ancora in uso, le credenziali, i token di storage e gli host conosciuti non vengono mai toccati. Il comportamento predefinito è applicare le modifiche; usa --dry-run per visualizzare un'anteprima.
rdc config prune [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Visualizza un'anteprima di cosa verrebbe rimosso senza modificare il file di configurazione. Specchio della semantica predefinita degli altri comandi prune. | No | - |
--certs-only | Limita al bucket della cache certificati ACME. Ignora l'eliminazione degli archivi e la pulizia dei riferimenti incrociati. Mutuamente esclusivo con --archives-only e --refs-only. | No | - |
--archives-only | Limita all'eliminazione degli archivi scaduti. Ignora la cache certificati e la pulizia dei riferimenti incrociati. Mutuamente esclusivo con --certs-only e --refs-only. | No | - |
--refs-only | Limita ai riferimenti incrociati non validi (machine→strategy, strategy→repo excludes/includes). Ignora la cache certificati e gli archivi. Mutuamente esclusivo con --certs-only e --archives-only. | No | - |
--purge-archived | Elimina TUTTI i repository archiviati indipendentemente dall'età, non solo quelli oltre il periodo di grazia. Equivale a eseguire 'rdc repo admin archive purge' per ogni repository archiviato. Usalo solo quando sei sicuro di non aver bisogno di nessuna delle credenziali archiviate per il ripristino. | No | - |
--orphan-repos | Rimuove le voci di repository non associate a nessuna macchina. Ogni voce contiene la credenziale e la chiave SSH di quel repository, quindi l'operazione è irreversibile. Esegui prima 'rdc config reconcile' in modo che l'associazione rifletta le macchine. | No | - |
--grace-days <days> | Sovrascrive la finestra di grazia degli archivi (in giorni) per questa esecuzione. Usa defaults.pruneGraceDays dalla configurazione, poi 7 se nessuno dei due è impostato. | No | - |
1.2 init
Crea un nuovo file di configurazione con nome
Puoi aggiungere macchine direttamente:
rdc config init [name] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--ssh-key <path> | Percorso della chiave SSH privata (es. ~/.ssh/id_rsa) | No | - |
--renet-path <path> | Percorso del binario renet (predefinito: renet nel PATH) | No | - |
--master-password <password> | Cifra le risorse con una password principale | No | - |
--server <url> | URL del server account | No | - |
1.3 list
Elenca tutti i file di configurazione
rdc config list
1.4 show
Mostra i dettagli della configurazione corrente
rdc config show [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--reveal | Mostra il testo in chiaro per i valori sensibili (solo interattivo) | No | - |
1.5 current
Mostra la configurazione attiva: nome, file, server e canale risolti, stato del token
rdc config current
1.6 delete
Elimina un file di configurazione
rdc config delete <name>
1.7 set
Imposta un valore predefinito (team, regione, bridge)
rdc config set <key> <value>
1.8 clear
Cancella i valori predefiniti (tutti o una chiave specifica)
rdc config clear [key]
1.9 recover
Ripristina la configurazione dal file di backup (.bak)
rdc config recover [name] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
1.10 ssh
Gestisci la configurazione delle chiavi SSH
set
Imposta la chiave SSH per la configurazione corrente
rdc config ssh set [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <path> | Percorso del file della chiave privata SSH | Sì | - |
--embed | Incorpora il contenuto della chiave nella configurazione invece di memorizzare il percorso | No | - |
show
Mostra la configurazione della chiave SSH corrente
rdc config ssh show
remove
Rimuovi la chiave SSH dalla configurazione corrente
rdc config ssh remove
1.11 remote
Gestisci la connessione allo storage di configurazione remoto
enable
Collega questa configurazione allo storage cifrato remoto
rdc config remote enable [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--master-password | Iscriviti in modalità headless con un password slot pre-provisionato (senza browser) | No | - |
--master-password-stdin | Come --master-password, ma legge la password master da stdin | No | - |
--api-url <url> | URL del server account | No | - |
--force | Sostituisci il contenuto locale differente con la copia del server senza conferma | No | - |
--config-id <id> | Collega a questa configurazione esistente dello storage invece di creare una nuova voce | No | - |
disable
Disconnetti dallo storage remoto e salva la configurazione in locale
rdc config remote disable [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--local | Scollega solo su questo dispositivo, dalla copia in cache, senza contattare il server | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
status
Mostra lo stato della connessione remota
rdc config remote status
master-password
Gestisci la password master di questo membro (il password slot)
Cambia la password master: riavvolge la chiave della config dall'enrollment di questo dispositivo sotto un nuovo password slot
rdc config remote master-password change [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--new-master-password-stdin | Leggi la nuova password master da stdin (altrimenti REDIACC_NEW_STORE_MASTER_PASSWORD, o un prompt su TTY) | No | - |
refresh
Forza il recupero della configurazione dallo storage remoto
rdc config remote refresh
versions
Elenca le versioni precedenti di questa configurazione conservate sul server
rdc config remote versions [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--explain | Mostra i puntatori JSON modificati da ogni versione, in base alle versioni conservate dal server | No | - |
restore
Pubblica una versione precedente di questa configurazione come versione più recente
rdc config remote restore <version> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
1.12 field
Operazioni sui campi di configurazione con indirizzo tramite pointer (get/set/unset/rotate/list). Pointer JSON (RFC 6901) come /credentials/cfDnsApiToken.
get
Leggi un singolo valore di configurazione tramite JSON Pointer. I campi sensibili vengono oscurati a meno che non si usi --reveal (solo per utenti).
rdc config field get [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--pointer <pointer> | JSON Pointer al campo (es. /credentials/cfDnsApiToken) | Sì | - |
--reveal | Mostra il testo in chiaro per i valori sensibili (solo TTY interattivo; registrato) | No | - |
--digest | Stampa il digest SHA-256 invece del valore (sicuro da condividere con gli agenti) | No | - |
set
Scrivi un valore di configurazione su un JSON Pointer. I percorsi sensibili richiedono --current (knowledge-gate).
rdc config field set [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--pointer <pointer> | JSON Pointer al campo (es. /credentials/cfDnsApiToken) | Sì | - |
--new <value> | Nuovo valore (analizzato come JSON se sembra JSON: {, [, ", true/false/null/numero) | Sì | - |
--current <value> | Valore in chiaro corrente, obbligatorio per le mutazioni su percorsi sensibili (prova per knowledge-gate) | No | - |
unset
Elimina un valore di configurazione su un JSON Pointer. I percorsi sensibili richiedono --current.
rdc config field unset [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--pointer <pointer> | JSON Pointer al campo (es. /credentials/cfDnsApiToken) | Sì | - |
--current <value> | Valore in chiaro corrente, obbligatorio per le eliminazioni su percorsi sensibili | No | - |
rotate
Ruota un valore sensibile senza --current. Solo TTY interattivo; registrato in modo esplicito.
rdc config field rotate [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--pointer <pointer> | JSON Pointer al campo sensibile (es. /credentials/cfDnsApiToken) | Sì | - |
--new <value> | Nuovo valore | Sì | - |
list
Elenca ogni template di pointer sensibile registrato con il suo tipo e la policy di commit/cifratura.
rdc config field list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--sensitive | Mostra solo i template sensibili (non pubblici) | No | - |
1.13 edit
Apre la configurazione attiva in $EDITOR come proiezione JSONC oscurata. Solo per utenti; gli agenti vengono rifiutati.
rdc config edit [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--reveal | Mostra il testo in chiaro per i valori sensibili (solo TTY interattivo; registrato) | No | - |
--dump | Stampa la configurazione corrente come JSONC su stdout (sola lettura; sicuro per gli agenti se oscurato) | No | - |
--apply <file> | Applica un file JSONC modificato (ignora l'avvio di $EDITOR) | No | - |
--current-secrets <file> | File JSON che mappa pointer→valore in chiaro precedente per il knowledge-gate su --apply | No | - |
--editor <cmd> | Sovrascrittura del comando dell'editor (segue la precedenza di git: flag > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR) | No | - |
1.14 audit
Ispeziona il log di audit della configurazione (JSONL con catena di hash in ~/.config/rediacc/audit.log.jsonl)
log
Stampa le voci di audit recenti come JSON
rdc config audit log [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--since <spec> | Mostra solo le voci più recenti di (es. '24h', '7d', timestamp ISO) | No | - |
--path <glob> | Filtra per glob JSON Pointer (es. /credentials/*) | No | - |
--actor <kind> | Filtra per tipo di attore (human|agent) | No | - |
tail
Trasmette in streaming le nuove voci di audit man mano che vengono scritte (Ctrl+C per fermare)
rdc config audit tail
verify
Verifica l'integrità della catena di hash SHA-256 su tutte le voci di audit
rdc config audit verify
1.15 reconcile
Ricostruisce lo stato di runtime a partire dallo stato reale delle macchine. Corregge dati di collegamento e instradamento obsoleti.
rdc config reconcile [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--machine <m...> | Limita la riconciliazione a queste macchine | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
--accept-observed | Riscrive un posizionamento dichiarato in modo che corrisponda a dove si trova realmente l'immagine, ma solo quando ciò è inequivocabile (osservato su esattamente una macchina). I duplicati restano conflitti. | No | - |
1.16 rotate-cek
Ruota la chiave di cifratura della configurazione dell'organizzazione
rdc config rotate-cek [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--api-url <url> | URL del server account | No | - |
1.17 access
Gestisci le chiavi di accesso della configurazione: chiavi pubbliche SSH che la CLI scrive in authorized_keys di una macchina con una restrizione from= agli intervalli IPv4 e IPv6 dichiarati. Associa una chiave a una macchina con 'machine access set', poi applicala con 'machine access push'
add
Aggiungi una chiave di accesso o aggiornane una esistente sul posto, mantenendo le sue associazioni alle macchine. Gli intervalli indicati qui valgono per la chiave su ogni macchina, a meno che un'associazione non definisca i propri; senza intervalli valgono quelli dell'intera configurazione
rdc config access add <key> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--public-key <key> | Riga di chiave pubblica OpenSSH, oppure percorso di un file che la contiene | Sì | - |
--hosted-executor | Aggiungi gli intervalli di uscita osservati dell'executor ospitato (104.28.0.0/16 e 2a09:bac0::/29) | No | - |
--ipv4 <cidrs> | Intervalli IPv4 in notazione CIDR (separati da virgole, ad es. 203.0.113.0/24) | No | - |
--ipv6 <cidrs> | Intervalli IPv6 in notazione CIDR (separati da virgole, ad es. 2001:db8::/32) | No | - |
--no-restrict | Scrivi solo from=, senza le restrizioni no-forwarding, no-pty e no-user-rc | No | - |
remove
Rimuovi una chiave di accesso dalla configurazione
rdc config access remove <key>
ranges
Imposta gli intervalli di origine usati da ogni chiave di accesso, a meno che la chiave o la sua associazione alla macchina non definisca i propri. Senza opzioni, li mostra
rdc config access ranges [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--hosted-executor | Aggiungi gli intervalli di uscita osservati dell'executor ospitato (104.28.0.0/16 e 2a09:bac0::/29) | No | - |
--ipv4 <cidrs> | Intervalli IPv4 in notazione CIDR (separati da virgole, ad es. 203.0.113.0/24) | No | - |
--ipv6 <cidrs> | Intervalli IPv6 in notazione CIDR (separati da virgole, ad es. 2001:db8::/32) | No | - |
--clear | Rimuovi gli intervalli dell'intera configurazione | No | - |
list
Elenca le chiavi di accesso della configurazione
rdc config access list
2. Gestione del datastore
Pool di storage con nome che contengono i repository. Un datastore è mobile (collegalo a una macchina, spostalo su un'altra) ed è a montaggio singolo (una sola macchina lo detiene alla volta). Il datastore predefinito implicito di ogni macchina non viene gestito qui.
2.1 resize
Espandi o riduci un datastore. È un'operazione offline: i repository al suo interno devono essere fermati.
rdc datastore resize <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--size <size> | Nuova dimensione (es. 200G) | Sì | - |
--debug | Abilita l'output di debug | No | - |
2.2 fork
Fai il fork copy-on-write di un datastore. Il fork è istantaneo e il suo costo non cresce con la dimensione del pool. Richiede il backend rbd: un datastore local non ha un clone a livello di blocco, quindi i repository al suo interno vengono forkati uno alla volta tramite reflink (rdc repo fork).
rdc datastore fork <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--tag <tag> | Tag per il fork (il risultato è nome:tag) | Sì | - |
--attach-to <machine> | Collega subito il fork a questa macchina (richiede --writes) | No | - |
--writes <disposition> | Dove vanno le scritture del fork: local (istantaneo, effimero) oppure ceph (clone durevole) | No | - |
--cow-size <size> | Dimensione dell'overlay per --writes local | No | - |
--debug | Abilita l'output di debug | No | - |
2.3 status
Mostra un datastore: il suo backend, collegamento, utilizzo, repository e snapshot. Un datastore scollegato riporta comunque il proprio record.
rdc datastore status <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
2.4 create
Crea un datastore aggiuntivo con nome su una macchina. Un backend local è un pool basato su file su quella macchina e vi resta. Un backend rbd risiede in Ceph, quindi può spostarsi su qualsiasi macchina che raggiunga lo stesso cluster. Passa --cluster per renderlo un datastore del mondo kubernetes; questo riferimento viene fissato alla creazione.
rdc datastore create <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Macchina su cui creare il datastore | Sì | - |
--size <size> | Dimensione del datastore (es. 100G) | Sì | - |
--backend <type> | Backend di storage: local (basato su file, resta su questa macchina) oppure rbd (Ceph, spostabile) | No | local |
--pool <name> | Pool Ceph per il backend rbd (predefinito: rbd) | No | - |
--image <name> | Nome dell'immagine RBD per il backend rbd (predefinito: il nome del datastore) | No | - |
--cluster <name> | Cluster Kubernetes a cui appartiene questo datastore. Se impostato, solo repository kubernetes; se non impostato, solo repository docker. Fissato alla creazione. | No | - |
--debug | Abilita l'output di debug | No | - |
2.5 list
Elenca i datastore con nome, dove sono collegati e cosa contengono.
rdc datastore list [place]
2.6 attach
Collega un datastore a una macchina. Un datastore è detenuto da una sola macchina alla volta, quindi collegarlo altrove lo sposta: il vecchio detentore lo rilascia per primo, e un handoff fallito lascia intatto il collegamento originale. Un fork deve indicare dove vanno le sue scritture.
rdc datastore attach <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <machine> | Macchina a cui collegare il datastore | Sì | - |
--writes <disposition> | Dove vanno le scritture di un fork: local (istantaneo, effimero, perso allo scollegamento) oppure ceph (clone durevole nel pool). Obbligatorio per un fork. | No | - |
--cow-size <size> | Dimensione dell'overlay per --writes local | No | - |
--no-auto | Non ricollegare automaticamente questo datastore all'avvio | No | - |
--force | Forza il rilascio di un detentore bloccato che non ha ceduto correttamente il datastore | No | - |
--debug | Abilita l'output di debug | No | - |
2.7 detach
Scollega un datastore dalla sua macchina. I repository al suo interno vengono prima fermati. Un fork collegato con --writes local non ha un posto in cui riscrivere il proprio overlay, quindi scollegarlo scarta l'overlay e richiede --discard.
rdc datastore detach <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--discard | Scarta un fork con scritture locali e il suo overlay. I dati non sono recuperabili. | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
2.8 snapshot
Esegue ed elenca gli snapshot puntuali di un datastore. Uno snapshot non costa nulla a riposo ed è ciò da cui un fork viene clonato.
create
Esegue uno snapshot puntuale di un datastore. Niente viene fermato. L'istante è crash-consistent, non application-consistent: se hai bisogno che una scrittura specifica sia inclusa nello snapshot, sincronizzala prima.
rdc datastore snapshot create <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--snapshot <label> | Etichetta dello snapshot (predefinito: un timestamp UTC) | No | - |
--debug | Abilita l'output di debug | No | - |
list
Elenca gli snapshot di un datastore.
rdc datastore snapshot list <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
2.9 delete
Distrugge un datastore e tutto ciò che contiene. Viene prima scollegato; se non si scollega correttamente, l'eliminazione fallisce invece di lasciare orfano un pool montato.
rdc datastore delete <datastore> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
--force | Elimina anche se ci sono ancora repository che vi puntano. I loro dati vengono eliminati insieme ad esso. | No | - |
--debug | Abilita l'output di debug | No | - |
3. Gestione delle macchine
Ispeziona lo stato delle macchine remote: risorse di sistema, container in esecuzione, servizi systemd, repository distribuiti e diagnostica di salute. Query di sola lettura; per modificare i repository usa `repo`. Sottocomandi principali: status (stato completo, filtrabile con --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.
3.1 list
Elenca le macchine
rdc machine list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--search <text> | Cerca nel campo {{field}} | No | - |
--sort <field> | Ordina per campo | No | - |
--desc | Ordina in ordine decrescente | No | - |
3.2 health
Controlla la salute della macchina per pipeline CI/CD
Il comando health restituisce metriche di sistema, stato dei container, stabilità dei servizi e informazioni sullo storage, utile per i gate nelle pipeline CI/CD.
rdc machine health <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
3.3 provision
Provvisiona una nuova macchina su un provider cloud usando OpenTofu
rdc machine provision <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--provider <name> | Nome del provider cloud (da machine provider add) | Sì | - |
--region <region> | Sostituisci la regione predefinita | No | - |
--type <type> | Sostituisci il tipo di istanza predefinito | No | - |
--image <image> | Sostituisci l'immagine OS predefinita | No | - |
--ssh-user <user> | Nome utente SSH per la nuova VM (predefinito: root) | No | - |
--base-domain <domain> | Dominio base per l'infrastruttura (es. example.com). Implica --infra | No | - |
--no-infra | Salta la configurazione dell'infrastruttura (proxy + DNS) | No | - |
--debug | Abilita l'output di debug | No | - |
3.4 deprovision
Distruggi una macchina provisioned nel cloud e rimuovila dalla configurazione
rdc machine deprovision <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
3.5 prune
Rimuovi risorse del datastore orfane e snapshot obsoleti da una macchina. L'esecuzione base pulisce gli artefatti interni del datastore renet (sottovolumi BTRFS, file di lock, tmpfile). Le opzioni seguenti abilitano pulizie più precise dei repository: --orphaned-repos usa solo la configurazione CLI locale come segnale, mentre --prune-unknown consulta anche il mirror di stato .interim/renet affinché i fork legittimi creati da altri strumenti sopravvivano anche se assenti dalla configurazione locale. Entrambi i percorsi di eliminazione eseguono un controllo di sicurezza del montaggio; usa --force-delete-mounted per ignorarlo.
rdc machine prune <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostra cosa verrebbe rimosso senza apportare modifiche | No | - |
--orphaned-repos | Elimina tutte le immagini repository sulla macchina non presenti nella configurazione CLI locale. Grossolano: rimuove anche i fork creati da altri strumenti senza voce nella configurazione locale, anche se il mirror renet li identifica correttamente come fork. Usa --prune-unknown per il comportamento più ristretto che rispetta il mirror. | No | - |
--prune-unknown | Elimina solo i repository che il mirror di stato .interim/renet non riesce a classificare (non presenti nella configurazione locale E senza mirror con marcatura fork). Strettamente più ristretto di --orphaned-repos: i fork senza configurazione sono preservati quando il mirror li identifica. In questo bucket rientrano gli orfani legacy pre-mirror e i grand il cui record di configurazione è stato eliminato. | No | - |
--force-delete-mounted | Ignora il controllo di sicurezza del montaggio ed elimina i repository anche se sono attualmente montati o hanno container Docker in esecuzione. Distinto da --force (che ignora solo il periodo di grazia dell'archivio). Si applica sia a --orphaned-repos sia a --prune-unknown. | No | - |
--force | Salta le richieste di conferma | No | - |
--grace-days <days> | Periodo di grazia in giorni per i repo archiviati di recente (predefinito: 7) | No | - |
--debug | Abilita l'output di debug | No | - |
3.6 converge
Riavvia uno alla volta ogni daemon di repository che gira ancora con un layout di runtime vecchio, così passa a quello attuale. La CLI lo fa da sola dopo un caricamento di renet; a mano serve per vedere prima il piano, riprendere un passaggio fallito o, con --policy always, riavviare dopo qualsiasi modifica del binario renet.
rdc machine converge <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostrare il piano senza riavviare nulla | No | - |
--json | Mostrare il rapporto di convergenza in JSON | No | - |
--include-unknown | Riavviare anche i repository obsoleti assenti dalla configurazione locale (i loro segreti d'ambiente non sono noti) | No | - |
--policy <policy> | Criterio di riavvio: epoch (solo modifiche al layout) o always (anche qualsiasi modifica del binario renet) | No | epoch |
--continue-on-error | Andare avanti quando un repository fallisce invece di fermare il passaggio | No | - |
--debug | Abilita l'output di debug | No | - |
3.7 add
Aggiungi un macchinario alla configurazione corrente. Esegue la scansione automatica delle chiavi host SSH. Dopo l'aggiunta, esegui: config machine setup <nome>
rdc machine add <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--ip <address> | Indirizzo IP o hostname della macchina | Sì | - |
--user <username> | Nome utente SSH | Sì | - |
--port <port> | Porta SSH | No | 22 |
3.8 infra
Gestisci la configurazione dell'infrastruttura (proxy, DNS, certificati)
cert
Gestisci i certificati TLS in cache
Rimuovi la cache dei certificati
rdc machine infra cert clear
Scarica e memorizza nella cache i certificati TLS da un macchinario
rdc machine infra cert pull <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--no-prune | Ignora la rimozione dei certificati con ID di rete obsoleti | No | - |
--debug | Abilita l'output di debug | No | - |
Carica i certificati TLS in cache su un macchinario
rdc machine infra cert push <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
Mostra l'inventario dei certificati in cache
rdc machine infra cert status
push
Invia la configurazione infrastruttura al macchinario (proxy Traefik, router, DNS Cloudflare). Esegui prima 'machine infra set <machine>'
rdc machine infra push <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
set
Imposta la configurazione dell'infrastruttura per un macchinario (specifica per macchinario: IP, dominio, porte; condivisa: email certificato, token DNS CF)
rdc machine infra set <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--public-ipv4 <ip> | Indirizzo IPv4 pubblico (per macchinario) | No | - |
--public-ipv6 <ip> | Indirizzo IPv6 pubblico (per macchinario) | No | - |
--base-domain <domain> | Dominio base per le applicazioni (per macchinario) | No | - |
--cert-email <email> | Email per le notifiche dei certificati TLS (condivisa tra i macchinari) | No | - |
--cf-dns-token <token> | Token API DNS Cloudflare per la challenge ACME DNS-01 (condiviso tra i macchinari) | No | - |
--tcp-ports <ports> | Porte TCP da inoltrare (separate da virgola, es. 25,143,465) | No | - |
--udp-ports <ports> | Porte UDP da inoltrare (separate da virgola, es. 53) | No | - |
show
Mostra la configurazione dell'infrastruttura per un macchinario
rdc machine infra show <machine>
3.9 provider
Gestisci i provider cloud per il provisioning automatizzato dei macchinari
add
Aggiungi un provider cloud
rdc machine provider add <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--provider <source> | Sorgente provider nota (es. linode/linode, hetznercloud/hcloud) | No | - |
--source <source> | Sorgente provider OpenTofu personalizzata (es. vultr/vultr) | No | - |
--token-env <var> | Nome della variabile d'ambiente che contiene il token API del provider; il token non compare mai sulla riga di comando | Sì | - |
--region <region> | Regione predefinita per i nuovi macchinari | No | - |
--type <type> | Tipo/dimensione istanza predefinita | No | - |
--image <image> | Immagine SO predefinita | No | - |
--ssh-user <user> | Nome utente SSH per le nuove VM (predefinito: root) | No | - |
--resource <type> | Personalizzato: tipo di risorsa OpenTofu per la VM | No | - |
--label-attr <attr> | Personalizzato: nome dell'attributo per la label della VM | No | - |
--region-attr <attr> | Personalizzato: nome dell'attributo per la regione | No | - |
--size-attr <attr> | Personalizzato: nome dell'attributo per il tipo di istanza | No | - |
--image-attr <attr> | Personalizzato: nome dell'attributo per l'immagine SO | No | - |
--ipv4-output <attr> | Personalizzato: attributo di output per l'indirizzo IPv4 | No | - |
--ipv6-output <attr> | Personalizzato: attributo di output per l'indirizzo IPv6 | No | - |
--ssh-key-attr <attr> | Personalizzato: nome dell'attributo per le chiavi SSH | No | - |
--ssh-key-format <format> | Personalizzato: formato della chiave SSH (inline_list o resource_id) | No | - |
--ssh-key-resource <type> | Personalizzato: tipo di risorsa OpenTofu per le chiavi SSH | No | - |
list
Elenca i provider cloud configurati
rdc machine provider list
remove
Rimuovi una configurazione di provider cloud
rdc machine provider remove <name>
3.10 remove
Rimuovi un macchinario dalla configurazione corrente
rdc machine remove <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
--force | Rimuovi il macchinario anche se vi sono repository posizionati su di esso o strategie di backup associate, lasciando pendenti quei riferimenti. | No | - |
3.11 restart-services
Riavvia uno alla volta i daemon renet che eseguono ancora un binario sostituito, così passano a quello installato, e verifica che ogni unità sia attiva sul nuovo binario prima di passare alla successiva. Con --include-docker vengono riavviati anche i supervisori rediacc-docker-N di ciascun repository, uno alla volta, il che riavvia i container di quel repository.
rdc machine restart-services <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--include-docker | Riavvia anche il supervisore rediacc-docker-N di ogni repository (ne riavvia i container) | No | - |
--json | Stampa il report in formato JSON | No | - |
3.12 scan-keys
Esegui la scansione delle chiavi host SSH per i macchinari nella configurazione corrente
rdc machine scan-keys [name]
3.13 setup
Provisioning di un macchinario remoto per i repository (installa renet, configura Docker, datastore BTRFS). Idempotente. Obbligatorio dopo 'config machine add' e prima di 'repo create'.
rdc machine setup <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--datastore-path <path> | Percorso del datastore sul macchinario remoto | No | /mnt/rediacc |
--datastore-size <size> | Dimensione del datastore (es. 95%, 100G) | No | 95% |
--no-converge | Non riavviare i daemon di repository ancora su un layout di runtime vecchio (come REDIACC_SKIP_RUNTIME_CONVERGE=1) | No | - |
--debug | Abilita l'output di debug | No | - |
3.14 status
Mostra lo stato completo della macchina (infrastruttura, sistema, repository con nome/guid, container con repository/repository_guid/dominio/autoRoute, servizi con repository/repository_guid). Sola lettura: non aggiorna mai renet sulla macchina; avvisa se la sua versione è diversa.
rdc machine status [name] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
--system | Includi solo le informazioni di sistema | No | - |
--repositories | Includi solo i repository | No | - |
--containers | Includi solo i container | No | - |
--services | Includi solo i servizi | No | - |
--network | Includi solo le interfacce di rete | No | - |
--block-devices | Includi solo i dispositivi a blocchi | No | - |
--licenses | Includi gli stati delle licenze dei repository | No | - |
--storage-health | Mostra la frammentazione BTRFS e i risparmi di reflink per ogni repository | No | - |
--datastores | Mostra i datastore collegati (mount, collegamento, utilizzo) | No | - |
--health-check | Modalita controllo salute: esce con codice 2 se ci sono container non sani | No | - |
--stability-check | Modalita controllo stabilita: esce con codice 2 se ci sono servizi in errore/riavvio | No | - |
--search <text> | Filtra i repository per nome | No | - |
--sync-certs | Scarica anche la cache dei certificati ACME dalla macchina dopo la query | No | - |
--strict | Esci con codice non zero (codice 2) se un container ha superato la soglia di deriva di integrità | No | - |
3.15 gpu
Mostra le GPU che una macchina può assegnare ai repository, i dispositivi CDI che offre e quale repository detiene ciascuno.
list
Elenca le GPU rilevate su una macchina, i nomi dei dispositivi CDI definiti dalle sue specs e i repository a cui ogni dispositivo è concesso. Per concederne uno usa 'rdc repo gpu grant'.
rdc machine gpu list <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
3.16 access
Associa le chiavi di accesso della configurazione a una macchina e scrivile nel suo authorized_keys, ciascuna limitata ai propri intervalli di origine
set
Associa una chiave di accesso a una macchina. Gli intervalli indicati qui sostituiscono quelli della chiave solo su questa macchina. Applica con 'machine access push'
rdc machine access set <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <key> | Nome della chiave di accesso (vedi 'config access list') | Sì | - |
--ipv4 <cidrs> | Intervalli IPv4 in notazione CIDR (separati da virgole, ad es. 203.0.113.0/24) | No | - |
--ipv6 <cidrs> | Intervalli IPv6 in notazione CIDR (separati da virgole, ad es. 2001:db8::/32) | No | - |
--clear-ranges | Scarta gli intervalli propri di questa macchina, così valgono quelli della chiave o della configurazione | No | - |
remove
Dissocia una chiave di accesso da una macchina. Il prossimo 'machine access push' ne rimuove la riga
rdc machine access remove <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <key> | Nome della chiave di accesso (vedi 'config access list') | Sì | - |
show
Mostra le chiavi di accesso associate a una macchina e gli intervalli che ciascuna ha lì
rdc machine access show <machine>
push
Scrivi in authorized_keys di una macchina le chiavi di accesso a essa associate, adottando una riga esistente con la stessa chiave, e rimuovi le righe di questa configurazione per le chiavi non più associate. Rifiuta una modifica che escluderebbe la sessione stessa di rdc e non scrive nulla se il file è cambiato durante il push
rdc machine access push <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostra le modifiche senza scrivere | No | - |
4. Gestione cluster
Esegue il provisioning e gestisce i cluster: insiemi denominati di pool di nodi (ceph, k8s-server, k8s-agent, hyperconverged) su una rete privata. I membri di un pool diventano macchinari a tutti gli effetti, quindi ogni comando -m funziona su di essi.
4.1 create
Dichiara ed esegui il provisioning di un cluster: macchine, pool Ceph e Kubernetes. Passa --provider e --pool per dichiararlo in un solo passaggio; un create senza opzioni esegue il provisioning di un cluster già dichiarato.
rdc cluster create <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--provider <provider> | Provider: una chiave cloudProviders, oppure 'kvm' | No | - |
--pool <spec...> | Specifica del pool name:role:count[:size] (role: ceph|k8s-server|k8s-agent|hyperconverged) | No | - |
--declare-only | Registra il cluster in configurazione senza eseguirne il provisioning | No | - |
--network-cidr <cidr> | CIDR della rete privata (es. 10.0.0.0/24) | No | - |
--network-primitive <primitive> | Primitiva di rete (es. vlan, vpc, network) | No | - |
--control-node <machine> | Macchinario esplicito per il nodo di controllo (predefinito: primo membro k8s-server) | No | - |
--net-name <name> | KVM: rete libvirt per questo cluster (es. renet12) | No | - |
--net-base <prefix> | KVM: prefisso di rete, i primi tre ottetti (es. 192.168.112) | No | - |
--net-offset <n> | KVM: offset aggiunto all'id di ogni VM nel derivarne l'indirizzo | No | - |
--control-id <n> | KVM: id della VM del nodo di controllo e registry (predefinito: 1) | No | - |
--docker-registry <endpoint> | KVM: endpoint del registry Docker dentro la VM per questo cluster | No | - |
--ssh-user <user> | Utente SSH per i membri sottoposti a provisioning | No | - |
--base-domain <domain> | Dominio base per il DNS pubblico del cluster (altrimenti ereditato da un macchinario dello stesso gruppo) | No | - |
--control-ds-size <size> | Dimensione del datastore di controllo di ancoraggio (predefinito 10G) | No | - |
--control-ds-backend <backend> | Backend del datastore di controllo di ancoraggio: local | ceph (predefinito: ceph se il cluster include ceph, altrimenti local) | No | - |
--control-ds-pool <pool> | Pool Ceph RBD per il datastore di controllo di ancoraggio (backend ceph) | No | - |
--debug | Abilita l'output di debug | No | - |
4.2 status
Elenca tutti i cluster, oppure passa il nome di un cluster per mostrarne la configurazione completa.
rdc cluster status [cluster]
4.3 scale
Modifica il numero di membri di un pool (aggiunge/rimuove macchinari e fa entrare/uscire nodi). I pool k8s-agent vengono scalati sul posto; la crescita del pool ceph avviene direttamente tramite cephadm.
rdc cluster scale <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--pool <pool> | Nome del pool | Sì | - |
--count <n> | Numero di membri desiderato | Sì | - |
--debug | Abilita l'output di debug | No | - |
4.4 destroy
Smantella i membri sottoposti a provisioning e rimuove il cluster e i suoi macchinari dalla configurazione.
rdc cluster destroy <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Salta la conferma e continua anche in caso di errori di smantellamento | No | - |
--debug | Abilita l'output di debug | No | - |
4.5 kubeconfig
Recupera il kubeconfig dal nodo di controllo del cluster via SSH e lo mette in cache localmente (0600) per kubectl.
rdc cluster kubeconfig <cluster>
4.6 fork
Clona un intero cluster, compresi i dati dei suoi repository, in un nuovo cluster: copy-on-write coordinato delle immagini del cluster e dei PV, seguito dalla riscrittura dell'identità dei nodi affinché il fork si avvii con nuovi indirizzi. Il cluster di origine continua a funzionare.
rdc cluster fork <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--tag <tag> | Tag del fork | Sì | - |
--to <dest-cluster> | Cluster di destinazione i cui nodi ospitano il fork (il suo nodo di controllo e gli agent; un cluster non può fare il fork sulle proprie macchine, poiché due k3s non possono condividere lo stesso network namespace host) | Sì | - |
--writes <disposition> | Modalità di scrittura del fork: local (overlay dm-COW effimero, impronta Ceph pari a zero) | ceph (clone durevole). Predefinito: local | No | - |
--up | Avvia i repository forkati e verifica la salute del cluster dopo l'avvio del fork | No | - |
--debug | Abilita l'output di debug | No | - |
4.7 migrate
Sposta un intero cluster, compresi i dati dei suoi repository, su un altro macchinario o datacenter con un breve cutover (pre-copia a caldo, poi arresto e riavvio sulla destinazione).
rdc cluster migrate <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <dest-cluster> | Destinazione | Sì | - |
--debug | Abilita l'output di debug | No | - |
4.8 join
Adotta un macchinario registrato esistente come nodo agent Kubernetes di un cluster, usando lo stesso token di adesione derivato dalla CA impiegato per l'ancoraggio e il rientro.
rdc cluster join <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--cluster <name> | Cluster a cui aggiungere il macchinario | Sì | - |
--debug | Abilita l'output di debug | No | - |
4.9 evict
Esegue il drain del nodo, elimina il suo oggetto Node e cancella la sua appartenenza al cluster. Il cluster viene derivato dal macchinario; un macchinario che monta ancora un datastore viene rifiutato.
rdc cluster evict <machine> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Salta il drain se il nodo è già offline | No | - |
--debug | Abilita l'output di debug | No | - |
4.10 rehearse
Prova un rilascio/aggiornamento: forka il cluster su una destinazione come istanza effimera e usa-e-getta (writes=local, ruolo senza segreti: rehearsal), la avvia, ne verifica la salute, quindi la scarta. Il cluster di origine non viene mai toccato.
rdc cluster rehearse <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--on <dest-cluster> | Cluster di destinazione su cui avviare la prova usa-e-getta | Sì | - |
--tag <tag> | Tag opzionale per il fork di prova (predefinito: basato su timestamp) | No | - |
--debug | Abilita l'output di debug | No | - |
4.11 snapshot
Snapshot puntuali dell'intero cluster. Un unico istante crash-consistent su ogni datastore basato su rbd di proprietà del cluster, ottenuto tramite il group snapshot di Ceph: niente si ferma e il cluster non se ne accorge. I datastore con backend locale non hanno una primitiva di gruppo a livello di blocco, quindi restano fuori dall'istante e vengono segnalati come tali. L'istante è crash-consistent, non application-consistent: se hai bisogno che una scrittura specifica sia inclusa nello snapshot, sincronizzala prima.
create
Esegue lo snapshot di ogni datastore basato su rbd nel cluster in UN SOLO istante. Niente viene fermato. Qualsiasi datastore con backend locale nel cluster viene elencato come escluso dall'istante: non fa parte dello snapshot. L'istante è crash-consistent, non application-consistent: se hai bisogno che una scrittura specifica sia inclusa nello snapshot, sincronizzala prima.
rdc cluster snapshot create <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--snapshot <label> | Etichetta dello snapshot (predefinito: un timestamp UTC) | No | - |
--debug | Abilita l'output di debug | No | - |
list
Elenca i group snapshot del cluster.
rdc cluster snapshot list <cluster> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
5. Server MCP
Espone la CLI come server Model Context Protocol (MCP) per l'integrazione con agenti AI. Il server racchiude i comandi CLI come strumenti MCP con input/output JSON strutturato. Sottocomando principale: serve (avvia il server MCP basato su stdio).
5.1 serve
Avvia il server MCP (trasporto stdio)
rdc mcp serve [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--config <name> | Nome della configurazione da usare per tutti i comandi | No | - |
--timeout <ms> | Timeout predefinito dei comandi in millisecondi | No | 120000 |
6. Ciclo di vita del repository
Distribuisci e gestisci repository cifrati sui macchinari. Sottocomandi principali: create, up (distribuisci), down (ferma), fork (clone CoW istantaneo), delete, push/pull (backup), sync (trasferimento file). Ciclo di vita: repo create → repo up → repo down. Consulta Concetti Chiave in rdc --help per architettura, routing e variabili d'ambiente.
6.1 up
Distribuisce o aggiorna un repository (mount, esegue Rediaccfile up che chiama renet compose). La macchina viene determinata dal posizionamento del riferimento. Le route proxy impiegano circa 3s per diventare attive dopo il deploy. Al termine stampa il pattern URL per i servizi esposti via HTTP (label rediacc.service_port). Il primo deploy e i fork vengono montati automaticamente. Il ripristino del checkpoint CRIU è rilevato automaticamente; usa --skip-checkpoint per forzare un avvio pulito. Usa --all --machine <m> per distribuire tutti i repository su una macchina.
rdc repo up [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--no-start | Monta e prepara il repository senza eseguire i suoi passaggi up() (incorpora il comando ritirato 'repo mount'; apertura LUKS e, per i repo su cluster, generazione dei PV). | No | - |
--skip-checkpoint | Ignora il ripristino del checkpoint CRIU anche se i dati del checkpoint esistono (forza avvio pulito) | No | - |
--tls | Richiedi un certificato TLS dedicato per questo repo (i fork usano il certificato condiviso del macchinario per impostazione predefinita) | No | - |
--no-wait | Ritorna appena i container sono avviati; gli health check proseguono in background | No | - |
--all | Distribuisci tutti i repository ospitati su --machine (forma collettiva) | No | - |
-m, --machine <name> | Con --all: la macchina i cui repository sono interessati dall'operazione collettiva | No | - |
--include-forks | Monta e avvia anche i repository forked | No | - |
--parallel | Avvia i repository in modo concorrente | No | - |
--concurrency <n> | Numero massimo di repository concorrenti (predefinito: 3) | No | 3 |
-y, --yes | Salta la conferma per le operazioni in batch | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
6.2 down
Ferma i container Docker del repository (esegue Rediaccfile down tramite renet compose). La macchina viene determinata dal posizionamento del riferimento. NON smonta il volume cifrato: il repo rimane montato e può essere riavviato con 'repo up'. Usa --unmount per chiudere anche il contenitore LUKS dopo l'arresto (incorpora il comando ritirato 'repo unmount'). Usa --checkpoint per salvare lo stato del processo CRIU prima dell'arresto (il successivo 'repo up' lo ripristina automaticamente). Usa --all --machine <m> per fermare tutti i repository su una macchina.
rdc repo down [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--unmount | Smonta (chiude il contenitore LUKS) anche dopo l'arresto. Obbligatorio prima di 'repo resize' o per proteggere completamente il volume | No | - |
--checkpoint | Crea un checkpoint CRIU prima dell'arresto (salva lo stato in memoria dei processi per un ripristino successivo tramite 'repo up') | No | - |
--all | Ferma tutti i repository ospitati su --machine (forma collettiva) | No | - |
-m, --machine <name> | Con --all: la macchina i cui repository sono interessati dall'operazione collettiva | No | - |
--parallel | Avvia i repository in modo concorrente | No | - |
--concurrency <n> | Numero massimo di repository concorrenti (predefinito: 3) | No | 3 |
-y, --yes | Salta la conferma per le operazioni in batch | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
6.3 status
Ottieni lo stato del repository (stato del mount, daemon Docker in esecuzione, numero di contenitori, utilizzo del disco)
rdc repo status <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.4 cat
Legge una finestra delimitata di un file all'interno di un repository e la scrive su stdout (delimitato lato server; i messaggi diagnostici vanno su stderr)
rdc repo cat <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--remote-file <path> | Percorso del file da leggere, relativo alla root di mount del repository | Sì | - |
--max-bytes <n> | Numero massimo di byte da leggere e stampare (predefinito 1 MiB, limite massimo 50 MiB) | No | - |
--offset <n> | Offset in byte da cui iniziare la lettura | No | - |
--head <lines> | Stampa solo le prime N righe (non combinabile con l'intervallo di byte) | No | - |
--tail <lines> | Stampa solo le ultime N righe (non combinabile con l'intervallo di byte) | No | - |
--stat | Stampa solo dimensione, tipo e data di modifica; non legge contenuto | No | - |
--force-binary | Consenti la lettura di contenuti binari (con NUL) | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.5 diff
Diff a livello di file in stile git fra due repository forkati con copy-on-write. Riporta i file aggiunti, modificati, eliminati e rinominati. Confronta il repository indicato dal <ref> posizionale (lato target/nuovo) con il suo padre, risolto dalla configurazione locale, oppure con un repository --base esplicito (lato base/vecchio). Solo metadati e indipendente dalla dimensione: confronta le immagini LUKS cifrate a livello di blocco senza decifrarle, quindi un repo da 1 GB e uno da 100 GB vengono confrontati negli stessi millisecondi.
rdc repo diff <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--base <ref> | Repository con cui confrontare (lato base/vecchio); predefinito il padre di <ref> | No | - |
--name-only | Stampa solo i percorsi dei file modificati, uno per riga (senza lettere di stato) | No | - |
--stat | Mostra la magnitudine del cambiamento per file (delta in byte e blocchi) e i totali | No | - |
--content [path] | Mostra un diff testuale unificato per un singolo file (richiede un percorso file) | No | - |
--fast | Affidati al filtro a blocchi; salta la conferma via hash del contenuto (può sovra-segnalare Modificato) | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.6 list
Elenca i repository su un macchinario
rdc repo list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--datastore <name> | Elenca i repository in questo datastore (risolto sulla macchina che attualmente lo detiene) | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.7 create
Crea un nuovo repository. Indica la sua destinazione una volta sola: una macchina o un datastore.
rdc repo create <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--datastore <name> | Datastore con nome che ospita il repo (tiering docker, oppure la forma cluster) | No | - |
--size <size> | Dimensione del repository (es. 10G, 100G, 1T) | No | - |
--no-docker | Non avviare il daemon Docker dopo la creazione | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.8 delete
Elimina un repository e i suoi dati. La voce di configurazione di un fork passa a deletedRepositories, liberando il nome e mantenendo il GUID recuperabile tramite 'repo admin archive restore'; quella di un repo grand o di uno inviato ad altre macchine viene conservata, a meno che non si passi --archive-config. Accetta un <ref> posizionale; un nome semplice si risolve nella linea grand e viene rifiutato quando più repo condividono lo stesso nome base, quindi passa nome:tag per indicare un fork.
rdc repo delete <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--archive-config | Sposta la voce di configurazione in deletedRepositories per un recupero successivo | No | - |
--purge-backups | Elimina subito anche i backup cloud del repository, invece di lasciarli scadere | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
6.9 commit
Congela lo stato corrente di un fork di lavoro montato in un nuovo commit immutabile (in stile git). Il commit registra il proprio messaggio, autore, timestamp e parent all'interno del volume (in modo da viaggiare con il push) e viene contrassegnato come di sola lettura: ne rifiuta il montaggio. Il fork di lavoro prosegue invariato, proprio come git lascia intatto il working tree. Esegui il checkout di un commit con 'rdc repo checkout' per ottenerne una copia scrivibile.
rdc repo commit <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--message <msg> | Messaggio del commit | Sì | - |
--author <author> | Autore del commit | No | - |
--debug | Abilita l'output di debug | No | - |
6.10 branch
Crea un riferimento branch con nome che punta al commit corrente del fork di lavoro (il suo tip). I riferimenti branch risiedono nella configurazione della CLI (machine = object store, config = ref store).
rdc repo branch <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--branch <branch> | Nome del nuovo ramo | Sì | - |
6.11 checkout
Clona via reflink un commit immutabile (o il tip di un branch) in un nuovo fork di lavoro scrivibile e fa puntare HEAD a esso. Quasi istantaneo e a tempo costante (reflink BTRFS).
rdc repo checkout <commit-or-branch-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--tag <name> | Nome per il nuovo fork di lavoro scrivibile | Sì | - |
--from <workingFork> | Risolvi l'argomento posizionale <commit-or-branch-ref> come nome di ramo su questo working fork | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.12 log
Stampa la cronologia dei commit raggiungibile dal commit corrente di un fork di lavoro (o da un riferimento a un commit), percorrendo la catena dei parent registrata da 'rdc repo commit'. Legge il mirror esterno al volume, quindi nessun commit viene sbloccato.
rdc repo log <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
6.13 merge
Esegue il merge di un commit o fork di origine in un fork di lavoro di destinazione. La destinazione attiva non viene mai modificata sul posto: il risultato viene costruito in un clone reflink e sostituito atomicamente. Una destinazione montata o in esecuzione viene rifiutata a meno che non si usi --force, che la mette prima in quiescenza in modo pulito. Senza --resolve si tratta di un take-theirs sull'intera immagine (la destinazione diventa l'origine); con --resolve ours|theirs si tratta di un merge a tre vie per singolo file rispetto all'antenato comune, prendendo le modifiche uniche di ciascun lato e risolvendo i conflitti bilaterali in base al flag.
rdc repo merge <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--from <source> | Commit o fork di origine da cui eseguire il merge | Sì | - |
--force | Mette prima in quiescenza una destinazione montata/in esecuzione, poi esegue il merge (non modifica mai un mount attivo) | No | - |
| `—resolve <ours | theirs>` | Risoluzione dei conflitti per file in un merge a tre vie: 'ours' mantiene la versione della destinazione, 'theirs' prende quella dell'origine. Ometti per un fast-forward dell'intera immagine (take-theirs). | No |
--base <guid> | GUID del commit antenato comune per un merge a tre vie (usato con --resolve). Predefinito il padre del commit di origine o il commit attuale della destinazione. | No | - |
--debug | Abilita l'output di debug | No | - |
6.14 gc
Elimina gli oggetti commit immutabili su una macchina che nessun ramo o HEAD raggiunge (GC per raggiungibilita). La macchina e l'archivio degli oggetti; la configurazione della CLI e l'archivio dei ref. Dry-run per impostazione predefinita: usa --apply per eliminare. Non tocca mai un oggetto montato o un fork di lavoro.
rdc repo gc [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--apply | Elimina effettivamente i commit non raggiungibili (per impostazione predefinita è un'anteprima dry-run) | No | - |
--debug | Abilita l'output di debug | No | - |
6.15 fork
Crea un fork CoW (Copy-on-Write) di un repository. IL FORK È QUASI ISTANTANEO E A TEMPO COSTANTE indipendentemente dalla dimensione del repo: il reflink BTRFS clona l'immagine sottostante, quindi un repo da 100 GB e uno da 1 GB vengono forked nello stesso tempo (~secondi). Il fork ottiene un NUOVO GUID, networkId, intervallo IP e dominio di auto-route ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) ed è una copia completamente indipendente. Il fork online è supportato: il genitore può rimanere in esecuzione. Il fork eredita automaticamente le credenziali di cifratura del genitore. Usa --checkpoint per catturare lo stato del processo CRIU prima del fork: il fork si ripristina automaticamente al primo 'repo up' (stato in memoria preservato). FORK SU MACCHINARIO DIVERSO: fai prima il fork in locale, poi trasferisci: (1) rdc repo fork <parent-ref> --tag <nome>, (2) rdc repo push <fork-ref> --to <macchina-destinazione>, (3) rdc backup restore <fork-ref> --as <nome-fork> -m <macchina-destinazione> --up. AVVISO: NON usare "repo push" da solo per il fork: crea una copia grezza con lo STESSO GUID (non un fork indipendente). Esegui sempre prima il fork per ottenere una nuova identità. Le auto-route usano il nome del repo, quindi ogni fork ottiene un dominio univoco automaticamente.
rdc repo fork <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--tag <name> | Tag per il fork (crea nome:tag) | Sì | - |
--checkpoint | Crea un checkpoint CRIU sulla sorgente prima del fork (cattura lo stato in memoria dei processi per il ripristino sul fork) | No | - |
--immutable | Contrassegna il fork come di sola lettura: rifiuta il mount e mantiene la sua immagine stabile a livello di byte per sempre (un commit/una base congelato per il delta push tra macchine) | No | - |
--up | Monta e avvia i servizi dopo il fork (fork + mount + up in un unico comando) | No | - |
--no-wait | Con --up: ritorna appena i container sono avviati; gli healthcheck proseguono in background (ideale per fork usa e getta) | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.16 replicate
Crea N repliche di lettura di un repository in pochi secondi, indipendentemente dalla dimensione del database. Esegue UN SOLO snapshot del datastore, poi effettua N fork-attach a tempo costante (copy-on-write, scritture locali usa-e-getta) distribuiti sui nodi del cluster, e applica un overlay generato: un PersistentVolume fissato per ogni replica, uno StatefulSet e due Service ({repo}-rw verso il primario, {repo}-ro verso le repliche). Le repliche sono copie PUNTUALI (point-in-time): nessuno stream di replica, nessuna coerenza read-your-writes; ogni replica esegue un passaggio di crash-recovery prima di servire traffico. Aggiornale con 'repo replicate refresh'. I set di repliche sono stato gestito: consulta 'repo replicate status' e rimuovili con 'repo replicate remove'.
status
Mostra i set di repliche gestiti: repliche, nodi ospitanti, datastore forkati, snapshot e timestamp di aggiornamento.
rdc repo replicate status <ref>
remove
Rimuove un set di repliche: elimina i suoi oggetti k8s generati (con ambito limitato alle label), scarta i suoi datastore forkati, elimina il suo snapshot e dimentica lo stato. I passaggi infrastrutturali sono best-effort, così la rimozione converge anche su un cluster parzialmente già smantellato.
rdc repo replicate remove <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
refresh
Porta ogni replica su un nuovo snapshot puntuale, UNA alla volta: riavvia il pod della replica, scarta e riesegue il fork del suo datastore sullo stesso percorso, e lascia che la readiness la riammetta. Le altre N-1 repliche continuano a servire traffico per tutta la durata dell'operazione.
rdc repo replicate refresh <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
6.17 canary
Esegue una NUOVA immagine accanto a quella stabile e divide il traffico live tra le due in base a una percentuale (gradino 2 della scala di rilascio). Crea un Deployment + Service canary sugli STESSI dati live (nessun fork: gli utenti del canary su dati forkati leggerebbero dati non aggiornati e scriverebbero in una copia destinata a essere scartata) e indica al proxy Rediacc di instradare verso di esso la percentuale indicata del traffico dell'hostname stabile. Un peso pari a 0 mantiene il canary dark; un peso di 100 corrisponde al passaggio blue/green completo. Prima di ogni modifica al canary viene eseguito automaticamente uno snapshot di gruppo dei datastore del cluster (gradino 0 della scala di rilascio), come undo universale. La compatibilità dello schema tra le due versioni (expand-contract) è responsabilità dell'applicazione. Per i rilasci che ROMPONO lo schema, usa invece il blue/green: fai il fork del repository (istantaneo, dati inclusi), punta qui il Service del fork con peso 100 e, per tornare indietro, riavvia il genitore rimasto intatto; le scritture effettuate dopo il passaggio esistono solo nella nuova copia, quindi la finestra di rollback è una decisione di policy.
status
Mostra i set di canary gestiti: peso, immagini, Service stabile e l'ultimo snapshot di release-undo.
rdc repo canary status <ref>
weight
Modifica la percentuale di traffico instradata verso un canary. Esegue prima un nuovo snapshot di gruppo di release-undo, poi riapplica l'overlay; il proxy recepisce la nuova suddivisione al successivo ciclo di aggiornamento. Un peso di 100 invia tutto il traffico alla nuova versione (il passaggio blue/green).
rdc repo canary weight <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--weight <percent> | Percentuale di traffico instradata verso il canary (intero 0-100; 0 = dark, 100 = passaggio completo) | Sì | - |
--debug | Abilita l'output di debug | No | - |
remove
Rimuove il Deployment e il Service di un canary (con ambito limitato alle label); il Service stabile torna a servire il 100% del traffico. Gli snapshot di release-undo vengono conservati; eliminali con i comandi snapshot del datastore.
rdc repo canary remove <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
create
Esegue una NUOVA immagine accanto a quella stabile e le invia una percentuale del traffico live. Il canary condivide i dati live del repository (nessun fork), quindi la compatibilità dello schema tra le due versioni è responsabilità dell'applicazione. Come undo, viene prima eseguito un group snapshot dei datastore del cluster.
rdc repo canary create <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--image <image> | Nuova immagine eseguita dal Deployment canary (sugli stessi dati live condivisi) | Sì | - |
--port <port> | Porta su cui l'app è in ascolto (deve corrispondere al Service stabile) | Sì | - |
--weight <percent> | Percentuale di traffico instradata verso il canary (intero 0-100; 0 = dark, 100 = passaggio completo) | Sì | - |
--service <name> | Service stabile con cui dividere il traffico (predefinito: il nome del repository) | No | - |
--replicas <n> | Numero di repliche del Deployment canary (predefinito: 1) | No | - |
--debug | Abilita l'output di debug | No | - |
6.18 resize
Ridimensiona un repository offline (supporta sia la crescita che la riduzione). Il repo deve essere smontato prima ('repo down --unmount'). Per una crescita senza downtime senza fermare i servizi, usa invece 'repo expand'.
rdc repo resize <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--size <size> | Nuova dimensione del repository (es. 10G, 100G, 1T) | Sì | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.19 expand
Espande un repository montato online (zero downtime, solo crescita). Aumenta il contenitore LUKS e il filesystem mentre i contenitori continuano a girare. Non può ridurre: usa 'repo resize' per questo (richiede lo smontaggio).
rdc repo expand <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--size <size> | Nuova dimensione del repository (es. 10G, 100G, 1T) | Sì | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.20 trim
Recupera spazio del pool del datastore dai repository montati (online, senza interruzioni). I blocchi eliminati nei repository tornano al pool tramite fstrim. Senza un riferimento, vengono trimmati tutti i repository montati su -m più il datastore stesso. fstrim viene saltato per i repository con un backup attivo; la pulizia --docker viene comunque eseguita
rdc repo trim [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--docker | Liberare lo spazio Docker (container fermi, immagini dangling, cache di build); viene eseguito anche durante uno snapshot di backup attivo | No | - |
--docker-volumes | Eliminare anche i volumi Docker inutilizzati | No | - |
--report-only | Mostrare lo stato dei discard e la stima recuperabile senza trimmare | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--debug | Abilita l'output di debug | No | - |
6.21 prune
Classifica lo storage Docker di un repository e lo recupera: immagini inutilizzate, cache di build, container fermi e directory overlay2 che nessuna immagine né container referenzia. Senza --apply è una simulazione. --apply recupera spazio tramite l'API Docker con il repository online; --apply --offline ferma anche il demone Docker del repository per la durata dell'esecuzione e mette in quarantena le directory orfane. Senza rif, esamina tutti i repository montati su -m (solo simulazione)
rdc repo prune [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--apply | Recupera spazio; senza questa opzione l'esecuzione si limita al rapporto | No | - |
--offline | Ferma il demone Docker del repository e mette in quarantena le directory orfane (richiede --apply) | No | - |
--all-images | Rimuovi anche le immagini con tag che nessun container usa | No | - |
--no-trim | Salta fstrim dopo il recupero | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--debug | Abilita l'output di debug | No | - |
6.22 policy
Gestisce la politica di dimensione automatica applicata dal manutentore dello storage della macchina: amplia online la quota di un repository quando si riempie (mai oltre max-quota, mai con il pool scarso) ed esegue trim pianificati. Non esiste riduzione automatica; per quella usare 'repo resize'. Senza un riferimento, viene interessata la politica predefinita a livello di macchina su -m
set
Imposta i campi della politica di dimensione. Cambiano solo i flag passati; gli altri campi salvati mantengono i valori. Abilitare l'auto-crescita richiede --max-quota: il tetto è il consenso esplicito al sovra-provisioning del pool
rdc repo policy set [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--auto-grow <bool> | Abilitare la crescita automatica online della quota (true/false) | No | - |
--max-quota <size> | Tetto dell'auto-crescita (es. 200G); obbligatorio per l'auto-crescita | No | - |
--grow-threshold <percent> | % di uso del filesystem che attiva una crescita (predefinito 85) | No | - |
--grow-step <step> | Crescita per passo: assoluta (10G) o percentuale della quota (20%) | No | - |
--auto-trim <bool> | Abilitare il trim pianificato (true/false) | No | - |
--trim-interval <hours> | Ore minime tra trim automatici (predefinito 24) | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--debug | Abilita l'output di debug | No | - |
get
Mostra il predefinito macchina salvato, l'override del repository (con un riferimento) e la politica effettiva unita su cui agisce il manutentore
rdc repo policy get [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | No | - |
--debug | Abilita l'output di debug | No | - |
6.23 push
Invia un repository a un'altra macchina. Le destinazioni di storage sono dismesse: usa `rdc backup snapshot` per un backup puntuale. Per il trasferimento tra macchine, l'immagine cifrata del repo viene copiata con lo STESSO GUID: si tratta di un backup o di una migrazione, non di un fork. Per creare un fork indipendente, usa prima 'repo fork', poi push. Una copia inviata con push diventa un ARTEFATTO di backup: avviala sulla destinazione con 'backup restore <ref> --as <name> -m <target> --up'
rdc repo push <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <remote> | Macchina di destinazione (rilevata automaticamente dalla configurazione) | No | - |
--to-machine <machine> | — | No | - |
--provision <provider> | Provisioning automatico del macchinario di destinazione tramite il provider cloud se non esiste | No | - |
--checkpoint | Crea un checkpoint CRIU prima del backup (cattura lo stato in memoria dei processi per la migrazione live) | No | - |
--force | Forza la sovrascrittura del backup esistente | No | - |
--bwlimit <limit> | Limite di trasferimento: byte al secondo, unità decimali (12.5M = 12,5 MB/s), binarie (12Mi) o bit (100Mbps). Se omesso non c'è alcun limite | No | - |
--delta-base <guid> | GUID di base immutabile presente byte per byte identico su entrambi i macchinari; trasferisci solo i blocchi modificati (destinazione macchinario). Ometti per la base automatica senza intervento | No | - |
--strategy <strategy> | Strategia di delta a blocchi quando si usa una base delta: auto, physical o shared | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.24 pull
Scarica un repository da un'altra macchina. Le sorgenti di storage sono dismesse: usa `rdc backup restore` per un ripristino puntuale. Il tipo di sorgente viene rilevato automaticamente dalla configurazione. Usa --up per distribuire dopo il pull.
rdc repo pull <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--from <remote> | Nome della macchina di origine (rilevato automaticamente dalla configurazione) | No | - |
--from-machine <machine> | — | No | - |
--force | Forza la sovrascrittura del repository esistente | No | - |
--up | Dopo il pull, monta e distribuisce il repository su questo macchinario | No | - |
--bwlimit <limit> | Limite di trasferimento: byte al secondo, unità decimali (12.5M = 12,5 MB/s), binarie (12Mi) o bit (100Mbps). Se omesso non c'è alcun limite | No | - |
--delta-base <guid> | GUID di base immutabile presente byte per byte identico su entrambi i macchinari; ricevi solo i blocchi modificati (sorgente macchinario) | No | - |
--strategy <strategy> | Strategia di delta a blocchi quando si usa una base delta: auto, physical o shared | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.25 migrate
Migra a caldo un repository da una macchina a un'altra con tempi di inattività minimi. rsync in due fasi: trasferimento massivo durante l'esecuzione, poi una breve pausa per la sincronizzazione delta. Sposta l'intero repository (l'instradamento viene reindirizzato alla nuova destinazione) e, una volta riuscito lo spostamento, elimina le immagini sorgente (usa --keep-source per mantenerle). Supporta il checkpoint CRIU per la migrazione dello stato di memoria dei processi e il provisioning automatico delle macchine di destinazione
rdc repo migrate <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <place> | Macchina o cluster di destinazione | Sì | - |
--provision <provider> | Provisioning automatico della destinazione tramite il provider cloud (es. hetzner, linode) | No | - |
--bwlimit <limit> | Limite di trasferimento: byte al secondo, unità decimali (12.5M = 12,5 MB/s), binarie (12Mi) o bit (100Mbps). Se omesso non c'è alcun limite | No | - |
--checkpoint | Migrazione live CRIU: cattura e ripristina lo stato in memoria dei processi | No | - |
--delta-base <guid> | GUID di base immutabile per il delta del cutover (avanzato; predefinito alla base della Fase 1) | No | - |
--strategy <strategy> | Strategia di delta a blocchi per il cutover: auto, physical o shared | No | - |
--skip-dns | Ignora il cambio dei record DNS dopo la migrazione | No | - |
--keep-source | Mantieni le immagini sorgente dopo uno spostamento riuscito (per impostazione predefinita vengono eliminate; le copie residue non sono indirizzabili da alcun record di configurazione e reconcile le segnala come orfane) | No | - |
--debug | Abilita l'output di debug | No | - |
6.26 sync
Sincronizza repository e file (push/pull in blocco, trasferimento file)
upload
Carica file in un repository tramite rsync su SSH (trasferimento delta). Usa --mirror per eliminare i file remoti in eccesso, --dry-run per l'anteprima, --exclude per escludere pattern.
rdc repo sync upload <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--local <paths...> | Uno o più percorsi locali di file o directory (predefinito: directory corrente) | No | - |
--remote <path> | Percorso della sottodirectory remota nel repository | No | - |
--remote-file <path> | Percorso del singolo file remoto (relativo alla radice del repo) in cui caricare. Incompatibile con --remote. | No | - |
--mirror | Modalità mirror: elimina i file remoti non presenti in locale | No | - |
--verify | Verifica i file tramite checksum dopo la sincronizzazione | No | - |
--confirm | Visualizza l'anteprima delle modifiche e chiedi conferma prima di sincronizzare | No | - |
--exclude <patterns...> | Pattern da escludere dalla sincronizzazione | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
download
Scarica file da un repository tramite rsync su SSH (trasferimento delta). Usa --mirror per eliminare i file locali in eccesso, --dry-run per l'anteprima, --exclude per escludere pattern.
rdc repo sync download <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--local <path> | Percorso locale della directory (predefinito: directory corrente) | No | - |
--remote <path> | Percorso della sottodirectory remota nel repository | No | - |
--remote-file <path> | Percorso del file remoto nel repository (alternativa a --remote per trasferimenti di singoli file) | No | - |
--mirror | Modalità mirror: elimina i file locali non presenti in remoto | No | - |
--verify | Verifica i file tramite checksum dopo la sincronizzazione | No | - |
--confirm | Visualizza l'anteprima delle modifiche e chiedi conferma prima di sincronizzare | No | - |
--exclude <patterns...> | Pattern da escludere dalla sincronizzazione | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
status
Confronto in dry-run dei file locali e remoti (mostra cosa verrebbe trasferito senza eseguire il trasferimento)
rdc repo sync status <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--local <path> | Percorso locale della directory (predefinito: directory corrente) | No | - |
--remote <path> | Percorso della sottodirectory remota nel repository | No | - |
--remote-file <path> | Percorso del file remoto nel repository (alternativa a --remote per trasferimenti di singoli file) | No | - |
6.27 tunnel
Crea un tunnel SSH di port-forward verso la porta di un contenitore su un macchinario remoto. Il contenitore e la porta vengono rilevati automaticamente se non ambigui. Il tunnel rimane aperto finché non si preme Ctrl+C.
rdc repo tunnel <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-c, --container <name> | Nome del contenitore (rilevato automaticamente se ne è in esecuzione solo uno) | No | - |
--port <port> | Porta del contenitore remoto da inoltrare | No | - |
--local <port> | Porta locale (predefinita uguale alla porta remota) | No | - |
--url-only | Stampa solo l'URL locale non appena il tunnel è pronto (leggibile da script) | No | - |
6.28 secret
Gestisci i segreti per repo iniettati al momento del deploy. Solo in scrittura: get restituisce solo il digest (mai il testo in chiaro), set/unset richiedono la corrispondenza del digest --current o --rotate-secret. Due modalità di consegna: env (REDIACC_SECRET_<KEY>) e file (tmpfs in /var/run/rediacc/net-<networkId>/secrets/<KEY> tramite compose `secrets:`). I segreti non entrano mai nell'immagine LUKS cifrata; i fork non li ereditano.
get
Mostra il digest SHA-256 di un segreto. Il valore in chiaro non viene mai restituito by design (solo scrittura). Usa --current su un successivo set/unset per verificare un valore già noto, oppure ruota tramite `set --rotate-secret`.
rdc repo secret get <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <KEY> | Chiave del segreto in UPPER_SNAKE_CASE (max 64 caratteri). Verrà esposta come REDIACC_SECRET_<KEY> in modalità env o come /run/secrets/<key> nei contenitori in modalità file. | Sì | - |
list
Elenca le chiavi e le modalità dei segreti (mai i valori, mai i digest).
rdc repo secret list <ref>
set
Imposta o sovrascrive un segreto. I fork non ereditano i segreti: impostali esplicitamente sul fork. In contesto agente, richiede la corrispondenza del digest --current (stile passwd).
rdc repo secret set <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <KEY> | Chiave del segreto in UPPER_SNAKE_CASE (max 64 caratteri). Verrà esposta come REDIACC_SECRET_<KEY> in modalità env o come /run/secrets/<key> nei contenitori in modalità file. | Sì | - |
--value <value> | Valore del segreto. Passa `-` per leggere da stdin (evita l'esposizione nella cronologia della shell). | Sì | - |
--mode <mode> | Modalità di consegna: 'env' (visibile nell'env del contenitore, docker inspect) o 'file' (file tmpfs, mai nell'env). Predefinito: file. | No | file |
--current <value> | Valore in chiaro precedente (precondizione stile passwd). Obbligatorio per sovrascrittura/rimozione; mutuamente esclusivo con --rotate-secret. | No | - |
--rotate-secret | Conferma la rotazione; ignora la precondizione --current (registrata come rotazione). Da usare quando si ruota intenzionalmente senza verificare il valore precedente. | No | - |
unset
Elimina un segreto. In contesto agente, richiede la corrispondenza del digest --current.
rdc repo secret unset <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <KEY> | Chiave del segreto in UPPER_SNAKE_CASE (max 64 caratteri). Verrà esposta come REDIACC_SECRET_<KEY> in modalità env o come /run/secrets/<key> nei contenitori in modalità file. | Sì | - |
--current <value> | Valore in chiaro precedente (precondizione stile passwd). Obbligatorio per sovrascrittura/rimozione; mutuamente esclusivo con --rotate-secret. | No | - |
--rotate-secret | Conferma la rotazione; ignora la precondizione --current (registrata come rotazione). Da usare quando si ruota intenzionalmente senza verificare il valore precedente. | No | - |
6.29 admin
Comandi di amministrazione e manutenzione dei repository.
archive
Gestione dei record dei repository archiviati.
Elenca le credenziali dei repository archiviati
rdc repo admin archive list
Elimina definitivamente tutte le credenziali archiviate
rdc repo admin archive purge [name] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
Ripristina una credenziale di repository archiviata
rdc repo admin archive restore <name> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--new-name <name> | Nuovo nome della risorsa | No | - |
validate
Verifica l'integrità del repository (contenitore LUKS, coerenza del filesystem, configurazione). Usalo dopo spegnimenti imprevisti o per verificare l'integrità di un backup.
rdc repo admin validate <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
fsck
Convalida i ref della configurazione della CLI (rami, HEAD) rispetto agli oggetti effettivamente presenti su una macchina. Segnala i ref pendenti (un ref che punta a un oggetto mancante) e i commit orfani (un commit immutabile che nessun ref raggiunge). Sola lettura.
rdc repo admin fsck [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
ownership
Modifica l'UID di proprietà della directory del repository sul volume montato (predefinito: 7111). Usalo quando i contenitori necessitano di un UID specifico per accedere ai file del repo.
rdc repo admin ownership <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--uid <uid> | UID del proprietario (predefinito: 7111) | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
autostart
Gestisci l'avvio automatico del repository al boot
Abilita l'avvio automatico per un repository (ometti il nome per abilitare tutti)
rdc repo admin autostart enable [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
Disabilita l'avvio automatico per un repository (ometti il nome per disabilitare tutti)
rdc repo admin autostart disable [ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
Elenca i repository con avvio automatico abilitato
rdc repo admin autostart list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
template
Gestisci e applica template di distribuzione (scrive docker-compose.yml, Rediaccfile e file aggiuntivi). Il Rediaccfile deve usare 'renet compose' (non 'docker compose'). Le policy di restart sono sicure (gestite automaticamente dal watchdog di renet). Renet inietta automaticamente network_mode:host, le capability CRIU e le label rediacc. Le impostazioni pericolose (privileged, pid:host) sono bloccate. Usa 'list' per vedere i template integrati disponibili, 'apply' per distribuirne uno su un repository.
Elenca tutti i template di distribuzione incorporati forniti con la CLI
rdc repo admin template list
Applica un template a un repository. Usa il nome di un template integrato (es. app-postgres) o --file per un template JSON personalizzato. Ciclo di vita del Rediaccfile: up() avvia i contenitori (scarica immagini, genera configurazioni qui), down() li ferma. Rediaccfile minimale: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. IMPORTANTE: il Rediaccfile DEVE usare 'renet compose': 'docker compose' viene rifiutato. VARIABILI D'AMBIENTE: due livelli: (a) shell Rediaccfile: ${SVCNAME_IP} (es. APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) Nei contenitori: renet inietta automaticamente le variabili d'ambiente SERVICE_IP e REDIACC_NETWORK_ID. La riscrittura bind eBPF gestisce l'isolamento IP in modo trasparente, quindi le app possono fare bind su 0.0.0.0 e il kernel riscrive sull'IP loopback corretto. Gli health check possono usare localhost. network_mode:host viene iniettato e ports: vengono ignorati. STORAGE: sia i bind mount ${REDIACC_WORKING_DIR}/... che i volumi Docker con nome sono sicuri: il data-root Docker è all'interno del mount LUKS cifrato. POLICY DI RESTART: le policy di restart sono sicure: renet le rimuove automaticamente per compatibilità CRIU e il watchdog gestisce il recupero. Compose: NON aggiungere network_mode o label rediacc.* (renet le inietta). Multi-progetto: inserisci ogni sotto-progetto nella propria sottodirectory con il proprio Rediaccfile: renet li rileva automaticamente e li esegue in ordine. Routing HTTPS: (A) Auto-route (compatibile con i fork, consigliato): NON aggiungere traefik.enable. Renet genera automaticamente https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Aggiungi la label rediacc.service_port=<porta> per porte diverse da 80. Ogni fork ottiene un dominio univoco. (B) Label Traefik (dominio personalizzato, NON compatibile con i fork): traefik.enable=true, traefik.http.routers.<n>.rule=Host(`dominio`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<porta>. Per TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53
rdc repo admin template apply <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--template <name> | Template da applicare | Sì | - |
--file <path> | Percorso del file JSON del template personalizzato ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): sovrascrive il nome del template integrato | No | - |
--grand <name> | Repository delle credenziali genitore (risolve automaticamente il nome in GUID). Solo per repo che condividono segreti con un genitore. | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.30 promote
Sostituisce i dati del repo grand con i dati di un fork. Il grand conserva la propria identità (GUID, networkId, domini, autostart, catena di backup) ma acquisisce i dati aggiornati del fork. I vecchi dati di produzione vengono conservati come fork di backup. Usalo per: testare un aggiornamento sul fork, verificarlo, poi eseguire il takeover in produzione.
rdc repo promote <fork-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-y, --yes | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
6.31 logs
Mostra i log applicativi dei container di un repository. I repository docker leggono dal daemon Docker del repository stesso; i repository kubernetes leggono i log dei pod nel namespace del repository. Se il repository esegue più di un container, indica quello desiderato con --container.
rdc repo logs <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-c, --container <name> | Container da leggere (necessario solo se il repository ne esegue più di uno) | No | - |
-f, --follow | Continua a trasmettere nuove righe fino all'interruzione | No | - |
--lines <n> | Numero di righe di cronologia da mostrare (predefinito: 100) | No | 100 |
--timestamps | Antepone a ogni riga il proprio timestamp | No | - |
--debug | Abilita l'output di debug | No | - |
6.32 exec
Esegue un comando all'interno di un container del repository. Il codice di uscita del comando viene propagato direttamente, quindi funziona in script e condizionali. I repository docker lo eseguono tramite il daemon Docker del repository; i repository kubernetes lo eseguono nel namespace del repository.
rdc repo exec <ref> <cmd...> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-c, --container <name> | Container in cui eseguire (necessario solo se il repository ne esegue più di uno) | No | - |
-i, --interactive | Alloca un terminale (per un comando che se lo aspetta) | No | - |
-u, --user <user> | Utente con cui eseguire il comando | No | - |
--debug | Abilita l'output di debug | No | - |
6.33 gpu
Concede a un repository un dispositivo CDI (ad esempio nvidia.com/gpu=all) così che i suoi container possano richiederlo, oppure lo revoca. La macchina applica la concessione; una concessione esclusiva riserva il dispositivo a un solo repository.
grant
Consente ai container del repository di richiedere un dispositivo CDI. I nomi si ricavano da 'rdc machine gpu list'.
rdc repo gpu grant <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--device <cdi-name> | Nome CDI completo del dispositivo (ad es. nvidia.com/gpu=all) | Sì | - |
--exclusive | Riserva il dispositivo a questo repository: nessun altro repository può riceverlo nel frattempo | No | - |
--debug | Abilita l'output di debug | No | - |
revoke
Ritira un dispositivo CDI dai container del repository. I container che lo hanno già lo mantengono fino al riavvio.
rdc repo gpu revoke <ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--device <cdi-name> | Nome CDI completo del dispositivo (ad es. nvidia.com/gpu=all) | Sì | - |
--debug | Abilita l'output di debug | No | - |
7. Job in background
Gestisce i job in background su una macchina: elencali, controlla lo stato, riproduci o segui i log degli eventi, annullane uno o elimina (garbage collection) quelli terminati. Un job in background viene eseguito sotto systemd sulla macchina, quindi sopravvive a una disconnessione e può essere riagganciato in seguito.
7.1 list
Elenca i job in background su una macchina, dal più recente
rdc job list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina di destinazione (omettilo per elencare i ticket dei job in sospeso di questa configurazione) | No | - |
7.2 status
Mostra lo stato di un job in background
rdc job status <job-id> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina di destinazione (facoltativo se questa configurazione conserva un ticket per il job) | No | - |
7.3 logs
Riproduce o segue il log degli eventi di un job in background
rdc job logs <job-id> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina di destinazione (facoltativo se questa configurazione conserva un ticket per il job) | No | - |
-f, --follow | Trasmette in streaming finché il job non termina | No | - |
--since-line <n> | Riprende dopo questo numero di righe (il conteggio già ricevuto) | No | - |
--debug | Abilita l'output di debug | No | - |
7.4 cancel
Annulla un job in background in esecuzione
rdc job cancel <job-id> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina di destinazione (facoltativo se questa configurazione conserva un ticket per il job) | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
7.5 gc
Rimuove i job terminati e i relativi log
rdc job gc [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--older-than <duration> | Raccoglie i job terminati da più di questo numero di ore (predefinito: 168) | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
7.6 wait
Riprendere il monitoraggio di un job dal suo ticket, poi confermarlo e uscire con il codice di uscita del job
rdc job wait <job-id> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina di destinazione (facoltativo se questa configurazione conserva un ticket per il job) | No | - |
--timeout <duration> | Smettere di attendere dopo questo tempo (30s, 5m, 2h; un numero da solo indica secondi). Il job continua a girare. | No | - |
8. Backup e ripristino
Gestisci le strategie di backup, le loro esecuzioni pianificate e gli artefatti che producono: dichiara una strategia per un repository, eseguila o ripristinala su richiesta e ispeziona gli archivi scritti su un endpoint di storage.
8.1 browse
Elenca i file contenuti in un repository. Per impostazione predefinita è una scansione locale in sola lettura dell'immagine del repository: senza server account e senza rete. Un repository cifrato deve essere montato, o avere il file di chiave distribuito, prima di poter essere aperto; browse lo segnala invece di non elencare nulla. Con --at <momento|snapshot> elenca invece l'elenco di file salvato con uno snapshot dell'archivio dei chunk, senza ripristinarlo.
rdc backup browse <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--path <subdir> | Limita l'elenco a questo sottoalbero | No | - |
--depth <n> | Limita la discesa a N livelli (0 per illimitato) | No | - |
--limit <n> | Numero massimo di voci da restituire (0 per illimitato) | No | - |
| `—at <time | snapshot>` | Elenca lo snapshot eseguito a questo momento o prima, oppure questo ID snapshot (legge l'archivio dei chunk) | No |
--debug | Abilita l'output di debug | No | - |
8.2 cancel
Annulla un backup in esecuzione su una macchina remota
rdc backup cancel [strategy] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--debug | Abilita l'output di debug | No | - |
8.3 list
Elenca gli artefatti di backup su una macchina.
rdc backup list [artifact-ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | No | - |
--path <subdir> | Limita l'elenco a una sottodirectory; ometti per elencare l'intero datastore | No | - |
--debug | Abilita l'output di debug | No | - |
8.4 manifests
Elenca i manifest degli snapshot di backup registrati sul server
rdc backup manifests [repo-ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--limit <n> | Righe per pagina (predefinito e massimo 500) | No | - |
--before <cursor> | Cursore di pagina di un elenco precedente (nextBefore) | No | - |
--include-deleted | Includere gli snapshot con eliminazione ritardata in attesa | No | - |
8.5 restore
Trasforma un artefatto di backup in un repository attivo. Il posizionamento si specifica qui.
rdc backup restore <artifact-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--as <name> | Nome per il repository ripristinato (predefinito: il nome dell'artefatto) | No | - |
-m, --machine <name> | Nome della macchina | No | - |
--datastore <name> | Ripristina in questo datastore con nome (la macchina a cui è collegato lo ospita) | No | - |
--at <time> | Ripristina a un punto nel tempo: un ID di snapshot o un orario RFC3339 (ripristino da storage a chunk) | No | - |
--any-stream | Con --at, considera anche gli snapshot scritti da altre macchine e dai fork di questa linea (predefinito: solo questo repository sulla sua macchina di origine) | No | - |
--no-seed | Recupera ogni chunk dallo store invece di riutilizzare ancore locali o immagini del repository (dimostra che lo store è leggibile) | No | - |
--allow-unopenable | Posiziona l'immagine anche se la passphrase del repository non la apre (uno snapshot precedente a un cambio di passphrase) | No | - |
--salvage | Prosegue oltre i chunk persi o corrotti e lascia le loro celle come buchi (richiede --as) | No | - |
--path <file-or-dir> | Ripristina solo questo file o questa cartella dallo snapshot, senza ripristinare l'intero repository (richiede --at) | No | - |
--to <dir> | Cartella in cui collocare il percorso ripristinato (predefinita: la cartella dei ripristini della macchina per lo snapshot) | No | - |
--up | Distribuisci il repository ripristinato dopo il trasferimento | No | - |
--health-window <seconds> | Finestra totale del gate di salute in secondi (predefinito 300) | No | - |
--health-timeout <seconds> | Timeout dell'health check per singolo tentativo in secondi (predefinito 30) | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
8.6 retention
Mostra la politica di conservazione degli snapshot applicata dal server.
clear
Rimuovi la politica dichiarata, in modo che torni ad applicarsi il valore predefinito del piano o del server.
rdc backup retention clear <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--stream <id> | Applica solo a questo flusso di backup (un id di flusso); senza, vale il valore predefinito dell'intero repository | No | - |
set
Indica quanti snapshot conservare. Ogni parametro viene sostituito, non unito.
rdc backup retention set <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--keep-last <n> | Conserva questo numero degli snapshot più recenti | No | - |
--keep-hourly <n> | Conserva lo snapshot più recente per ciascuna di queste ore | No | - |
--keep-daily <n> | Conserva lo snapshot più recente per ciascuno di questi giorni | No | - |
--keep-weekly <n> | Conserva lo snapshot più recente per ciascuna di queste settimane | No | - |
--keep-monthly <n> | Conserva lo snapshot più recente per ciascuno di questi mesi | No | - |
--keep-yearly <n> | Conserva lo snapshot più recente per ciascuno di questi anni | No | - |
--keep-within <duration> | Mantenere ogni snapshot entro questo intervallo dal più recente, ad es. 24h | No | - |
--stream <id> | Applica solo a questo flusso di backup (un id di flusso); senza, vale il valore predefinito dell'intero repository | No | - |
preview
Mostra quali snapshot eliminerebbe la prossima pulizia e quanto spazio libererebbe.
rdc backup retention preview <repo-ref>
8.7 run
Avvia immediatamente un backup su una macchina remota
rdc backup run [strategy] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--debug | Abilita l'output di debug | No | - |
8.8 schedule
Distribuisci la programmazione dei backup su una macchina remota (timer systemd)
rdc backup schedule [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--dry-run | Visualizza le unità generate senza distribuirle | No | - |
--force | Procedi anche se un backup è in esecuzione (la nuova unità si applica al prossimo tick; l'invocazione in corso mantiene la vecchia unità) | No | - |
--reset-failed | Cancella lo stato di errore sui servizi modificati dopo una distribuzione riuscita (disabilitato per default, preserva il segnale di errore) | No | - |
--debug | Abilita l'output di debug | No | - |
8.9 snapshot
Carica uno snapshot su storage a chunk: prima l'inventario completo, poi le celle modificate
rdc backup snapshot <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--reseed | Non fidarti dell'ancora locale e ricarica un inventario completo (ricarica tutto e riaddebita la quota) | No | - |
--dry-run | Pianifica soltanto: nessun caricamento. Riporta cosa verrebbe spostato | No | - |
--cold | Ferma i container, congela, riavvia e solo allora carica. Costa un breve fermo reale ma restituisce uno snapshot coerente a livello applicativo; non si può combinare con --dry-run | No | - |
--accept-identity-change | Considera questa immagine come nuova base quando la sua identità LUKS è cambiata o si è ridotta; carica uno snapshot completo | No | - |
--bwlimit <rate> | Limite di caricamento: byte al secondo, unità decimali (12.5M = 12,5 MB/s), binarie (12Mi) o bit (100Mbps). Se omesso non c'è alcun limite | No | - |
--parallelism <n> | Quanti blocchi caricare in parallelo (predefinito 4) | No | - |
--read-bwlimit <rate> | Limite di lettura per l'hashing e la lettura delle celle: stesse unità di --bwlimit; predefinito 50M, 0 = illimitato | No | - |
--hash-parallelism <n> | Quante celle calcolare in hash in parallelo (predefinito 1; 0 = una per CPU, fino a 16) | No | - |
--cpu-limit <percent> | Limite di CPU di questo snapshot: percentuale di tutti i core, 1-100 (predefinito 50; 100 = nessun limite) | No | - |
--debug | Abilita l'output di debug | No | - |
8.10 status
Mostra lo stato del backup e dei timer su una macchina remota
rdc backup status [strategy] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--debug | Abilita l'output di debug | No | - |
8.11 strategy
Gestisci le strategie di backup con nome (modalità hot/cold, destinazioni, pianificazione)
set
Crea o aggiorna una strategia di backup
rdc backup strategy set <strategy> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--destination <name> | Nome della destinazione all'interno della strategia. Crea una destinazione storage a chunk di Rediacc | No | - |
--cron <expression> | Pianificazione cron (es. "0 * * * *" per ogni ora) | No | - |
--mode <mode> | Modalità di backup: "hot" crea lo snapshot mentre tutto resta in esecuzione, "cold" ferma i container per il tempo dello snapshot | No | - |
--bwlimit <limit> | Limite di banda in upload in byte al secondo, con suffisso K/M/G facoltativo (es. "6M", "500K") | No | - |
--read-bwlimit <limit> | Limite di lettura per gli snapshot di questa strategia: stesse unità di --bwlimit; none lo rimuove | No | - |
--cpu-limit <percent> | Limite di CPU degli snapshot di questa strategia: percentuale di tutti i core, 1-100 (predefinito 50); none lo rimuove | No | - |
--include <repos> | Esegui il backup solo di questi repo (nomi separati da virgola) | No | - |
--exclude <repos> | Escludi questi repo dal backup (nomi separati da virgola) | No | - |
--retention <spec> | Conservazione degli snapshot, ad esempio last=7,daily=7,weekly=4,monthly=6 ("none" la rimuove) | No | - |
--rpo <duration> | Obiettivo di protezione dichiarato, ad esempio 15m (almeno 5m; none lo rimuove) | No | - |
--repo-rpo <ref=duration> | Obiettivo per repository come <ref>=<durata>, ripetibile (none lo rimuove); name:* è la famiglia | No | - |
--repo-cell-size <ref=size> | Dimensione di cella per repository come <ref>=<dimensione>, ripetibile. Una modifica reinizializza il repository | No | - |
--no-estimate | Saltare la stima di variazione e costo | No | - |
--dry-run | Mostrare cosa cambierebbe senza scrivere nulla | No | - |
--enable | Abilita la strategia o la destinazione | No | - |
--disable | Disabilita la strategia o la destinazione | No | - |
bind
Associa una strategia di backup a una macchina per distribuirvi la sua pianificazione
rdc backup strategy bind <strategy> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
unbind
Dissocia una strategia di backup da una macchina
rdc backup strategy unbind <strategy> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
remove
Rimuovi una strategia o destinazione di backup
rdc backup strategy remove <strategy> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--destination <name> | Rimuovi solo questa destinazione (conserva le altre destinazioni) | No | - |
--unbind | Rimuovi la strategia anche da ogni macchinario che la associa | No | - |
list
Elenca tutte le strategie di backup
rdc backup strategy list
show
Mostra i dettagli della strategia di backup
rdc backup strategy show [strategy]
8.12 reconcile
Riallinea il registro dei byte archiviati di un repository a ciò che lo store contiene davvero (non elimina mai un chunk)
rdc backup reconcile [repo-ref] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostra i valori senza modificare il registro | No | - |
--check | Prova a vuoto che termina con codice 1 se il registro differisce dallo store | No | - |
8.13 usage
Mostra la quota di storage dei backup, i byte memorizzati e l'utilizzo per repository
rdc backup usage
8.14 verify
Verifica l'ancora di backup di un repository rispetto allo storage a chunk
rdc backup verify <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--deep | Ricalcola l'hash di ogni cella registrata (verifica completa) invece di un controllo campionato | No | - |
--store | Fa ricalcolare al server l'hash di ogni chunk archiviato di questo repository e segnala quelli mancanti o danneggiati | No | - |
--restore-test | Ripristina lo snapshot dell'ancora con un nome usa e getta direttamente dallo store, lo confronta con l'ancora, registra il risultato ed elimina la copia | No | - |
--debug | Abilita l'output di debug | No | - |
8.15 snapshots
Gestisci gli snapshot archiviati
delete
Elimina uno snapshot archiviato. I suoi dati esclusivi vengono liberati dalla prossima garbage collection.
rdc backup snapshots delete <repo-ref> <snapshot-id>
8.16 download
Copia le immagini dei repository da una macchina in una directory locale o su un disco esterno. Ogni esecuzione crea un nuovo snapshot che esiste solo finché dura la sessione, aggiorna la copia locale sul posto con il delta di rsync, riprende dopo un'interruzione e verifica il risultato con sha256.
rdc backup download [refs...] [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <dir> | Directory esistente e scrivibile che riceve <machine>/<name>.<tag>.img (non viene mai creata) | Sì | - |
--all | Copia tutti i repository grand della macchina indicata con -m | No | - |
-m, --machine <name> | Nome della macchina | No | - |
--include-forks | Con --all, copia anche i fork | No | - |
--bwlimit <rate> | Limite di banda di rete, ad esempio 100Mbps o 12.5M (predefinito: illimitato) | No | - |
--checkpoint | Esegue il checkpoint e congela il repository prima dello snapshot (backup a caldo) | No | - |
--retries <n> | Tentativi ripetuti durante l'esecuzione dopo un errore di rete (predefinito: 3) | No | - |
--skip-verify | Salta il confronto sha256 dopo rsync; il checksum di rsync viene comunque eseguito | No | - |
--skip-space-check | Avvisa invece di rifiutare quando la destinazione potrebbe non avere spazio libero sufficiente | No | - |
--store | Ricostruisce l'immagine cifrata direttamente dall'archivio dei backup, senza macchina. Richiede un token API con l'ambito backup:read + backup:restore in REDIACC_TOKEN | No | - |
| `—at <time | snapshot>` | Con --store, lo snapshot da recuperare: un orario (ISO 8601) o un id di snapshot (predefinito: il più recente) | No |
8.17 upload
Invia a una macchina un'immagine di repository locale, creata da 'rdc backup download', e la registra come nuovo repository. Il trasferimento riprende dopo un'interruzione, e la macchina controlla lo sha256 e l'header LUKS prima di collocare l'immagine.
rdc backup upload <image-file> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--to <machine> | Macchina che riceve l'immagine | Sì | - |
--as <name> | Nome del nuovo repository (predefinito: il nome del repository dell'immagine) | No | - |
--datastore <name> | Colloca l'immagine su questo datastore con nome invece di quello predefinito della macchina | No | - |
--from-repo <name> | Repository della configurazione che fornisce credenziali e lignaggio quando il file di stato è andato perso o indica un repository sconosciuto | No | - |
--bwlimit <rate> | Limite di banda di rete, ad esempio 100Mbps o 12.5M (predefinito: illimitato) | No | - |
--retries <n> | Tentativi ripetuti durante l'esecuzione dopo un errore di rete (predefinito: 3) | No | - |
--up | Avvia il repository una volta registrato | No | - |
--skip-verify | Salta il confronto dell'immagine locale con lo sha256 registrato durante il download | No | - |
--debug | Abilita l'output di debug | No | - |
8.18 purge
Elimina in un colpo solo tutti gli snapshot di backup archiviati di un repository dall'archivio a chunk. Il repository resta intatto.
rdc backup purge <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
--cancel | Annullare una rimozione totale ritardata prima che abbia effetto | No | - |
8.19 check
Verifica che uno snapshot si apra con la passphrase ripristinando un file
rdc backup check <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--path <file> | Il file da ripristinare e confrontare (predefinito: il file non vuoto più piccolo) | No | - |
--debug | Abilita l'output di debug | No | - |
8.20 repair
Ricarica dall'ancora di questa macchina i chunk persi o errati nello store
rdc backup repair <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--dry-run | Mostra cosa verrebbe eliminato e ricaricato; non modifica nulla | No | - |
--debug | Abilita l'output di debug | No | - |
8.21 toc-key
Gestisce la chiave del listing di navigazione di un repository
rdc backup toc-key
8.22 churn
Misura quanto cambia l'immagine di un repository tra le esecuzioni, proietta il caricamento per dimensione di cella e ne consiglia una. Durante l'operazione sulla macchina resta una base reflink, che viene sempre rimossa.
rdc backup churn <repo-ref> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--samples <n> | Campioni misurati da raccogliere (predefinito 3) | No | - |
--interval <duration> | Attesa tra le sonde, ad esempio 10m (predefinito 10m) | No | - |
--debug | Abilita l'output di debug | No | - |
8.23 immutability
Mostrare o impostare la finestra di eliminazione ritardata dei backup archiviati
show
Mostrare la finestra di eliminazione ritardata in vigore
rdc backup immutability show
set
Impostare la finestra di eliminazione ritardata in giorni (da 0 a 30)
rdc backup immutability set <days>
8.24 undelete
Annullare l'eliminazione ritardata di uno snapshot prima che abbia effetto
rdc backup undelete <snapshot-id>
9. Integrazione VS Code
Apri VS Code con Remote SSH su una macchina o un repository con ambiente per repository isolato. Stessa connessione SSH di `term` ma avvia VS Code invece. Sottocomandi principali: connect (o abbreviazione posizionale), list (mostra le connessioni configurate), cleanup (rimuove le voci di configurazione SSH), check (verifica l'installazione di VS Code).
9.1 connect
Apri VS Code su una macchina o all'interno di un repository.
rdc vscode connect <target> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-f, --folder <path> | Percorso della cartella remota da aprire | No | - |
--url-only | Stampa l'URI di VS Code invece di avviarlo | No | - |
-n, --new-window | Apri in una nuova finestra di VS Code | No | - |
--skip-env-setup | Salta la configurazione dell'ambiente remoto | No | - |
--insiders | Usa le impostazioni di VS Code Insiders | No | - |
--browser | Serve VS Code nel browser dalla sandbox del repository (non serve VS Code locale) | No | - |
--no-open | Stampa l'URL senza aprire il browser locale | No | - |
--local <port> | Porta locale (predefinita uguale alla porta remota) | No | - |
--server-provider <id> | Implementazione del server VS Code nel browser (openvscode, code-server) | No | - |
--server-archive <file> | Percorso del tarball del server pre-caricato sul macchinario (installazioni air-gap) | No | - |
9.2 list
Elenca le connessioni SSH VS Code configurate
rdc vscode list
9.3 cleanup
Rimuovi le configurazioni SSH di VS Code
rdc vscode cleanup [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--all | Rimuovi tutte le configurazioni SSH di rediacc | No | - |
-c, --connection <name> | Rimuovi una connessione specifica | No | - |
9.4 check
Controlla l'installazione e la configurazione di VS Code
rdc vscode check [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--insiders | Usa le impostazioni di VS Code Insiders | No | - |
9.5 serve
Gestisci il server VS Code nel browser all'interno della sandbox
status
Mostra se il server VS Code nel browser è in esecuzione
rdc vscode serve status <target> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--server-provider <id> | Implementazione del server VS Code nel browser (openvscode, code-server) | No | - |
stop
Ferma il server VS Code nel browser
rdc vscode serve stop <target> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--server-provider <id> | Implementazione del server VS Code nel browser (openvscode, code-server) | No | - |
10. Accesso SSH al terminale
Apri un terminale SSH verso una macchina o un repository. La destinazione è un nome di macchina o un riferimento di repository, e il contesto del repository (DOCKER_HOST, directory di lavoro, ambiente) viene configurato automaticamente. Usa `-c` per eseguire un singolo comando in modalità non interattiva. Per i log dei container o un comando singolo in un container, usa `repo logs` e `repo exec`. Per VS Code, usa `vscode`.
10.1 connect
Apri una shell su una macchina, oppure all'interno di un repository con il suo Docker configurato.
rdc term connect <target> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-c, --command <cmd> | Esegui un comando invece della shell interattiva | No | - |
--external | Forza l'apertura in una finestra di terminale esterna | No | - |
--reset-home | Reimposta l'overlay home per-repo per un avvio pulito | No | - |
11. Comandi rapidi (scorciatoie)
11.1 run
ATTENZIONE: comando di basso livello, pensato solo per debug e sperimentazione, non per la produzione. Per l'uso normale ci sono i comandi di livello superiore (repo up, repo down e così via). Esegue una funzione renet grezza su una macchina.
rdc run
11.2 trace
Traccia un task (scorciatoia per: queue trace)
rdc trace
11.3 cancel
Annulla un task (scorciatoia per: queue cancel)
rdc cancel
11.4 retry
Riprova un task in errore (scorciatoia per: queue retry)
rdc retry
12. Gestione dell'abbonamento
Gestisci le licenze e i token di abbonamento. Accedi con login, ispeziona con status, riemetti le licenze con refresh.
12.1 login
Autentica tramite browser o token API
rdc subscription login [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --token <token> | Token API (rdt_...). Passa `-` per leggerlo da stdin (resta fuori dall'elenco dei processi). | No | - |
--password-stdin | Accedere senza browser con la password dell'account letta da stdin (richiede REDIACC_LOGIN_EMAIL) | No | - |
--server <url> | URL del server account | No | - |
12.2 logout
Cancella il token di abbonamento memorizzato
rdc subscription logout
12.3 proxy-token
Emetti un token proxy:exec di breve durata dall'accesso di questo dispositivo, da usare con --proxy
rdc subscription proxy-token [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--json | Stampa in JSON il token e il relativo expiresAt | No | - |
12.4 status
Mostra l'abbonamento e lo stato delle licenze per una macchina.
rdc subscription status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | No | - |
12.5 refresh
Aggiorna le licenze dal server account.
rdc subscription refresh [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | No | - |
--repo <ref> | Riferimento di repository: nome, oppure nome:tag, opzionalmente con @macchina (es. shop oppure shop:test) | No | - |
13. Aggiornamenti CLI
Controlla le nuove versioni della CLI e applica gli aggiornamenti. Supporta --check-only per verificare senza installare e --force per aggiornare anche se si è già all'ultima versione.
rdc update [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Forza l'aggiornamento anche se è già aggiornato | No | - |
--check-only | Controlla solo gli aggiornamenti senza scaricare | No | - |
--rollback | Ripristina la versione precedente | No | - |
--status | Mostra lo stato dell'auto-aggiornamento e la diagnostica | No | - |
--channel <channel> | Imposta il canale di rilascio (stable o edge) | No | - |
14. Crediti di terze parti
Stampa i componenti di terze parti inclusi in rdc: i binari che renet incorpora e distribuisce (CRIU, rsync), il runtime Node.js incorporato e le dipendenze npm incluse. Mostra versioni, identificatori di licenza SPDX e gli URL degli archivi sorgente a versione esatta richiesti per la conformità GPL. Usa --licenses per stampare il testo completo THIRD_PARTY_LICENSES incluso nelle build di release.
rdc credits [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--licenses | Stampa il testo completo THIRD_PARTY_LICENSES incluso nelle build di release | No | - |
15. Diagnostica di sistema
Esegue controlli diagnostici sull'ambiente CLI: versione di Node.js, disponibilita del binario renet, validita del file di configurazione, stato delle chiavi SSH e connettivita di rete. Produce un report di salute strutturato con indicatori di successo/errore.
rdc doctor
16. Strumenti locali
Gestisce gli strumenti locali che rdc esegue su questa macchina. `rdc tools install tofu` scarica la release di OpenTofu fissata, ne confronta lo SHA-256 con il checksum integrato in rdc prima di estrarla e colloca il binario nella directory degli strumenti di rdc. `rdc tools list` mostra ogni strumento con la sua versione e dove è stato trovato.
16.1 install
Scarica la release di OpenTofu fissata in questa CLI, ne verifica il checksum SHA-256 e la installa nella directory degli strumenti di rdc. Se il checksum non corrisponde, il download viene eliminato e non si installa nulla. Terraform non viene mai installato; se è già nel PATH, viene usato così com'è.
rdc tools install <tool> [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Reinstalla anche se la versione fissata è già presente | No | - |
16.2 list
Elenca il motore di provisioning che rdc userebbe (OpenTofu o Terraform) e ogni versione di OpenTofu nella directory degli strumenti di rdc, ciascuna con versione, provenienza e percorso.
rdc tools list
17. Operazioni VM locali
Provisioning e gestione locale di VM usando KVM/QEMU/Hyper-V (rilevamento automatico della piattaforma). Non per macchine remote: usa `machine` per quelle. Sottocomandi principali: up (avvia VM), down (arresta), status (elenca VM in esecuzione), ssh (connettiti alla VM), setup (installa prerequisiti), check (verifica idoneità dell'host).
17.1 up
Provisioning del cluster VM in locale
rdc ops up [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Forza il riavvio di tutte le VM | No | - |
--parallel | Crea le VM in parallelo | No | - |
--basic | Cluster minimale (bridge + 1 worker) | No | - |
--lite | Salta il provisioning delle VM (solo stato) | No | - |
--skip-orchestration | Salta l'orchestrazione del cluster | No | - |
--backend <backend> | Backend di virtualizzazione (kvm|qemu, rilevato automaticamente) | No | - |
--os <name> | Sistema operativo della VM (es. ubuntu-24.04, debian-13) | No | - |
--debug | Abilita l'output di debug | No | - |
17.2 down
Distruggi il cluster VM
rdc ops down [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--backend <backend> | Backend di virtualizzazione (kvm|qemu, rilevato automaticamente) | No | - |
--debug | Abilita l'output di debug | No | - |
17.3 status
Mostra lo stato del cluster VM
rdc ops status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--backend <backend> | Backend di virtualizzazione (kvm|qemu, rilevato automaticamente) | No | - |
17.4 ssh
Connettiti a una VM via SSH
rdc ops ssh [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--vm-id <id> | ID della macchina virtuale | Sì | - |
-c, --command <cmd> | Esegui un comando invece della shell interattiva | No | - |
--backend <backend> | Backend di virtualizzazione (kvm|qemu, rilevato automaticamente) | No | - |
--user <user> | Nome utente SSH per la connessione alla VM | No | - |
17.5 setup
Installa i prerequisiti per la virtualizzazione
rdc ops setup [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
17.6 check
Verifica i prerequisiti per la virtualizzazione
rdc ops check
18. Servizio executor
Esegui questo processo come esecutore in modo che i client possano eseguire comandi tramite esso invece di connettersi da soli via SSH
rdc serve [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-p, --port <port> | Porta su cui restare in ascolto | No | 8080 |
--host <host> | Indirizzo a cui associarsi | No | 0.0.0.0 |
--mode <mode> | Posizionamento: daemon (host del cliente) o container | No | daemon |
Messaggi di errore comuni
Quando qualcosa va storto, la CLI fornisce messaggi di errore chiari:
| Errore | Significato |
|---|---|
| Autenticazione richiesta. Esegui: rdc subscription login | Devi effettuare il login prima |
| Nessuna config attiva. Creane una con: rdc config init <name> | Nessuna config attiva: creane una con `rdc config init` |
| Permesso negato | Il tuo account non ha i permessi necessari |
| Nome macchina obbligatorio. Usa --machine <name> | Specifica una macchina con `--machine` o imposta un valore predefinito nella config |
| Nome team obbligatorio. Usa --team o imposta il valore predefinito con: rdc config set team <name> | Specifica un team con `--team` o imposta un valore predefinito nella config |
| Nome regione obbligatorio. Usa --region o imposta il valore predefinito con: rdc config set region <name> | Specifica una regione con `--region` o imposta un valore predefinito nella config |
Formati di output
Tutti i comandi list/get supportano più formati di output tramite `--output`:
rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table # default
Questo semplifica l'integrazione della CLI Rediacc in script, pipeline CI/CD e flussi di automazione.