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. Utilità agente
Comandi di introspezione per agenti AI. Sottocomandi principali: capabilities (elenca tutti i comandi con argomenti/opzioni come JSON), schema (schema dettagliato per un singolo comando), exec (esegui un comando con input JSON da stdin, restituisce sempre JSON).
1.1 capabilities
Elenca tutti i comandi disponibili con argomenti e opzioni
rdc agent capabilities
1.2 schema
Mostra lo schema dettagliato per un comando specifico
rdc agent schema [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--command <path> | Esegui un comando invece della shell interattiva | Sì | - |
1.3 exec
Esegui un comando con input JSON da stdin
rdc agent exec [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--command <path> | Esegui un comando invece della shell interattiva | Sì | - |
1.4 generate-reference
Genera la documentazione di riferimento dei comandi in markdown per le skill di Claude
rdc agent generate-reference
2. Gestione della config
Gestisci i file di configurazione CLI archiviati in ~/.config/rediacc/. Operazioni CRUD per macchinari, repository, storage backend e chiavi SSH all'interno di una configurazione. Sottocomandi principali: init (crea configurazione con nome), show, list, ssh (gestisci chiavi), recover (da backup), prune (rimuovi elementi obsoleti). Gruppi annidati: config machine, config repository, config storage, config infra.
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.
2.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 config repository purge-archived'. Usalo solo quando sei sicuro di non aver bisogno di nessuna delle credenziali archiviate per il ripristino. | 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 | - |
2.2 init
Crea un nuovo file di configurazione con nome
Puoi aggiungere macchine direttamente:
rdc config init [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
--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 | - |
-u, --api-url <url> | URL dell'API | No | - |
--server <url> | URL del server account | No | - |
2.3 list
Elenca tutti i file di configurazione
rdc config list
2.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 | - |
2.5 delete
Elimina un file di configurazione
rdc config delete [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
2.6 set
Imposta un valore predefinito (team, regione, bridge)
rdc config set [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <key> | Chiave di configurazione | Sì | - |
--value <value> | Valore di configurazione | Sì | - |
Suggerimento: Impostare i valori predefiniti significa che non devi passare `--team`, `--region` o `--bridge` ad ogni comando.
2.7 clear
Cancella i valori predefiniti (tutti o una chiave specifica)
rdc config clear [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--key <key> | Chiave di configurazione | No | - |
2.8 recover
Ripristina la configurazione dal file di backup (.bak)
rdc config recover [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-y, --yes | Salta la richiesta di conferma | No | - |
2.9 set-ssh
Aggiorna la configurazione SSH per la configurazione corrente
rdc config set-ssh
2.10 set-renet
Imposta il percorso del binario renet
rdc config set-renet
2.11 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
2.12 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 |
|---|---|---|---|
--headless | Usa il flusso device code (per server headless) | No | - |
--api-url <url> | URL del server account | No | - |
disable
Disconnetti dallo storage remoto e salva la configurazione in locale
rdc config remote disable
status
Mostra lo stato della connessione remota
rdc config remote status
refresh
Forza il recupero della configurazione dallo storage remoto
rdc config remote refresh
2.13 machine
Gestisci i macchinari nella configurazione corrente
add
Aggiungi un macchinario alla configurazione corrente. Esegue la scansione automatica delle chiavi host SSH. Dopo l'aggiunta, esegui: config machine setup <nome>
rdc config machine add [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--ip <address> | Indirizzo IP o hostname della macchina | Sì | - |
--user <username> | Nome utente SSH | Sì | - |
--port <port> | Porta SSH | No | 22 |
--datastore <path> | Percorso del datastore sulla macchina | No | /mnt/rediacc |
remove
Rimuovi un macchinario dalla configurazione corrente
rdc config machine remove [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
list
Elenca i macchinari nella configurazione corrente
rdc config machine list
scan-keys
Esegui la scansione delle chiavi host SSH per i macchinari nella configurazione corrente
rdc config machine scan-keys [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | No | - |
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 config machine setup [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--datastore <path> | Percorso del datastore sul macchinario remoto | No | /mnt/rediacc |
--datastore-size <size> | Dimensione del datastore (es. 95%, 100G) | No | 95% |
--debug | Abilita l'output di debug | No | - |
set-ceph
Imposta la configurazione Ceph RBD per un macchinario
rdc config machine set-ceph [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--pool <name> | Nome del pool Ceph (es. rbd) | Sì | - |
--image <name> | Nome dell'immagine RBD (es. datastore-prod1) | Sì | - |
--cluster <name> | Nome del cluster Ceph | No | ceph |
2.14 repository
Gestisci le mappature dei repository nella configurazione corrente
add
Aggiungi una mappatura GUID del repository alla configurazione corrente
rdc config repository add [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--guid <guid> | GUID del repository (UUID dai nomi dei file di backup dello storage) | Sì | - |
--tag <tag> | Tag del repository | No | latest |
--credential <credential> | Credenziale del repository (passphrase di cifratura) | No | - |
--network-id <id> | ID di rete per l'isolamento Docker (2816, 2880, ...). Assegnato automaticamente se omesso. | No | - |
remove
Rimuovi una mappatura di repository dalla configurazione corrente
rdc config repository remove [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
list
Elenca le mappature GUID dei repository nella configurazione corrente
rdc config repository list
list-archived
Elenca le credenziali dei repository archiviati
rdc config repository list-archived
restore-archived
Ripristina una credenziale di repository archiviata
rdc config repository restore-archived [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--new-name <name> | Nuovo nome della risorsa | No | - |
purge-archived
Elimina definitivamente tutte le credenziali archiviate
rdc config repository purge-archived
2.15 provider
Gestisci i provider cloud per il provisioning automatizzato dei macchinari
add
Aggiungi un provider cloud
rdc config provider add [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--provider <source> | Sorgente provider nota (es. linode/linode, hetznercloud/hcloud) | No | - |
--source <source> | Sorgente provider OpenTofu personalizzata (es. vultr/vultr) | No | - |
--token <token> | Token API per il provider cloud | 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 | - |
remove
Rimuovi una configurazione di provider cloud
rdc config provider remove [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
list
Elenca i provider cloud configurati
rdc config provider list
2.16 storage
Gestisci i backend di storage nella configurazione corrente
import
Importa gli storage da un file di configurazione rclone
rdc config storage import [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--file <path> | Percorso del file | Sì | - |
--name <name> | Importa solo questa sezione con nome | No | - |
remove
Rimuovi uno storage dalla configurazione corrente
rdc config storage remove [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
list
Elenca gli storage nella configurazione corrente
rdc config storage list
2.17 infra
Gestisci la configurazione dell'infrastruttura (proxy, DNS, certificati)
set
Imposta la configurazione dell'infrastruttura per un macchinario (specifica per macchinario: IP, dominio, porte; condivisa: email certificato, token DNS CF)
rdc config infra set [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--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 config infra show [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
push
Invia la configurazione infrastruttura al macchinario (proxy Traefik, router, DNS Cloudflare). Esegui prima 'config infra set <macchinario>'.
rdc config infra push [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--debug | Abilita l'output di debug | No | - |
2.18 cert-cache
Gestisci i certificati TLS in cache
pull
Scarica e memorizza nella cache i certificati TLS da un macchinario
rdc config cert-cache pull [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--no-prune | Ignora la rimozione dei certificati con ID di rete obsoleti | No | - |
--debug | Abilita l'output di debug | No | - |
push
Carica i certificati TLS in cache su un macchinario
rdc config cert-cache push [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--debug | Abilita l'output di debug | No | - |
status
Mostra l'inventario dei certificati in cache
rdc config cert-cache status
clear
Rimuovi la cache dei certificati
rdc config cert-cache clear
2.19 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 (proof 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 | - |
2.20 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 | - |
2.21 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
2.22 backup-strategy
Gestisci le strategie di backup con nome (modalità hot/cold, destinazioni, pianificazione)
set
Crea o aggiorna una strategia di backup
rdc config backup-strategy set [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della strategia (obbligatorio) | Sì | - |
--destination <name> | Nome della destinazione all'interno della strategia | No | - |
--storage <name> | Nome della configurazione di storage (credenziali rclone) | No | - |
--cron <expression> | Pianificazione cron (es. "0 * * * *" per ogni ora) | No | - |
--mode <mode> | Modalità di backup: "hot" (zero downtime) o "cold" (ferma, snapshot, riavvia) | No | - |
--bwlimit <limit> | Limite di banda rclone (es. "6M", "10M:off", "08:00,3M;22:00,10M") | 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 | - |
--folder <path> | Sottocartella sotto il bucket di storage per questa destinazione (es. hot, cold) | No | - |
--enable | Abilita la strategia o la destinazione | No | - |
--disable | Disabilita la strategia o la destinazione | No | - |
remove
Rimuovi una strategia o destinazione di backup
rdc config backup-strategy remove [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della strategia (obbligatorio) | Sì | - |
--destination <name> | Rimuovi solo questa destinazione (conserva le altre destinazioni) | No | - |
list
Elenca tutte le strategie di backup
rdc config backup-strategy list
show
Mostra i dettagli della strategia di backup
rdc config backup-strategy show [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della strategia (mostra tutto se omesso) | No | - |
3. Gestione del datastore
Gestione a basso livello del block storage per i datastore delle macchine (Ceph RBD o BTRFS locale). Necessario in genere solo durante la configurazione iniziale della macchina o la migrazione cross-machine. Sottocomandi principali: init (crea datastore), status (salute/utilizzo), fork (clona il datastore su un'altra macchina), unfork (ripristina da snapshot).
3.1 init
Inizializza il datastore su una macchina (loop-backed locale o Ceph RBD)
rdc datastore init [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina (dove e ospitato il datastore Ceph) | Sì | - |
--size <size> | Dimensione del datastore (es. 5G, 50G, 100G) | Sì | - |
--backend <type> | Tipo di backend: local (predefinito) o ceph | No | local |
--pool <name> | Nome del pool Ceph (predefinito: dalla configurazione della macchina, o rbd) | No | rbd |
--image <name> | Nome dell'immagine Ceph RBD (predefinito: dalla configurazione della macchina tramite set-ceph) | No | - |
--cluster <name> | Nome del cluster Ceph (predefinito: ceph) | No | ceph |
--force | Forza l'inizializzazione anche se il datastore esiste gia (ATTENZIONE: riformatta lo storage) | No | - |
--debug | Abilita l'output di debug | No | - |
3.2 fork
Crea una copia COW locale del datastore Ceph tramite snapshot + clone RBD (< 2s). Salva i nomi snapshot/clone dall'output per l'unfork. Solo un fork per nome di destinazione; esegui unfork prima di fare un nuovo fork
rdc datastore fork [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina (dove e ospitato il datastore Ceph) | Sì | - |
--to <name> | Suffisso del clone (crea un clone chiamato <image>-fork-<name>). Il fork rimane sulla macchina sorgente | Sì | - |
--cow-size <size> | Dimensione del file di backing COW (predefinito: automatico, cresce su richiesta) | No | - |
--debug | Abilita l'output di debug | No | - |
3.3 unfork
Pulisce un fork: smonta il COW, rimuove il clone, rimuove lo snapshot
rdc datastore unfork [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina (dove e ospitato il datastore Ceph) | Sì | - |
--source <image> | Immagine RBD originale che e stata forkata (da config set-ceph --image, es. ds-prod) | Sì | - |
--snapshot <name> | Snapshot da rimuovere (il valore "Snapshot:" dall'output del fork, es. fork-<timestamp>) | Sì | - |
--dest <image> | Immagine clone da rimuovere (il valore "Clone:" dall'output del fork, es. ds-prod-fork-<machine>) | Sì | - |
--pool <name> | Nome del pool Ceph (predefinito: dalla configurazione della macchina) | No | - |
--mount-point <path> | Punto di montaggio del fork da smontare (predefinito: /mnt/rediacc) | No | - |
--force | Continua la pulizia anche se singoli passaggi falliscono (es. smontaggio, rimozione snapshot) | No | - |
--debug | Abilita l'output di debug | No | - |
3.4 status
Mostra il backend, la dimensione, l'utilizzo, lo stato di montaggio e cow_mode (se in fork) del datastore
rdc datastore status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina (dove e ospitato il datastore Ceph) | Sì | - |
--debug | Abilita l'output di debug | No | - |
4. 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: query (stato completo con filtri --system, --containers, --repositories, --services), list, create, rename, delete, prune.
4.1 list
Elenca le macchine
rdc machine list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
--search <text> | Cerca nel campo {{field}} | No | - |
--sort <field> | Ordina per campo | No | - |
--desc | Ordina in ordine decrescente | No | - |
4.2 create
Crea una nuova macchina
rdc machine create [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
-b, --bridge <name> | Nome del bridge | No | - |
--vault <json> | Dati del vault della macchina come stringa JSON | No | - |
4.3 rename
Rinomina una macchina
rdc machine rename [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--current-name <name> | Nome attuale della risorsa | Sì | - |
--new-name <name> | Nuovo nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
4.4 delete
Elimina una macchina
rdc machine delete [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
-f, --force | Salta le richieste di conferma | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
4.5 vault
Gestione del vault della macchina (solo adapter cloud)
rdc machine vault
4.6 vault-status
{{t:cli.commands.machine.vault-status.description}}
rdc machine vault-status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
4.7 update
Aggiorna la configurazione della macchina
rdc machine update
4.8 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
4.9 containers
Elenca i container su una macchina con stato, salute e routing dei domini. Il JSON include i dettagli completi del container con il repository risolto al nome (originale in repository_guid), dominio e autoRoute
rdc machine containers [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
--health-check | Modalita controllo salute: esce con codice 2 se ci sono container non sani | No | - |
4.10 services
Elenca i servizi systemd gestiti da rediacc su una macchina (nome, stato, sotto-stato, numero di riavvii, memoria, repository risolto al nome con originale in repository_guid). Usa --stability-check per uscire con codice 2 se ci sono servizi in errore o in riavvio (per CI/CD)
rdc machine services [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
--stability-check | Modalita controllo stabilita: esce con codice 2 se ci sono servizi in errore/riavvio | No | - |
4.11 query
Mostra lo stato completo della macchina (infrastruttura, sistema, repository con nome/guid, container con repository/repository_guid/dominio/autoRoute, servizi con repository/repository_guid)
rdc machine query [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--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 | - |
--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 | - |
4.12 vault-status
Mostra lo stato del vault analizzato per una macchina
rdc machine vault-status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
4.13 repos
Elenca i repository distribuiti su una macchina (nome, GUID, dimensione, stato di montaggio, stato Docker, numero di container, utilizzo disco, data di modifica, presenza del Rediaccfile). Il JSON annida container e servizi sotto ogni repository. Usa --search per filtrare per nome o GUID
rdc machine repos [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
--search <text> | Filtra i repository per nome | No | - |
4.14 test-connection
Testa la connessione SSH a una macchina e acquisisce la chiave host
rdc machine test-connection [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--ip <address> | Indirizzo IP o hostname della macchina | Sì | - |
--user <name> | Nome utente SSH | Sì | - |
-t, --team <name> | Nome del team | No | - |
-b, --bridge <name> | Nome del bridge | No | - |
--port <number> | Porta SSH | No | 22 |
--password <pwd> | Password SSH per l'autenticazione iniziale | No | - |
--datastore <path> | Percorso del datastore sulla macchina | No | /mnt/rediacc |
-m, --machine <name> | Nome della macchina (per aggiornare il vault dopo il test) | No | - |
--save | Salva known_hosts nel vault della macchina dopo un test riuscito | No | - |
Suggerimento: Usa `--save-known-hosts` per salvare automaticamente la chiave host nel vault della macchina dopo un test riuscito.
4.15 provision
Provvisiona una nuova macchina su un provider cloud usando OpenTofu
rdc machine provision [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--provider <name> | Nome del provider cloud (da config 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 | - |
4.16 deprovision
Distruggi una macchina provisioned nel cloud e rimuovila dalla configurazione
rdc machine deprovision [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--force | Salta la richiesta di conferma | No | - |
--debug | Abilita l'output di debug | No | - |
4.17 backup
Gestione dei backup della macchina (programmazione, avvio, stato)
list
Elenca le strategie di backup associate a tutte le macchine
rdc machine backup list
schedule
Distribuisci la programmazione dei backup su una macchina remota (timer systemd)
rdc machine backup schedule [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--dry-run | Visualizza le unita generate senza distribuirle | No | - |
--force | Procedi anche se un backup e in esecuzione (la nuova unita si applica al prossimo tick; l'invocazione in corso mantiene la vecchia unita) | 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 | - |
now
Avvia immediatamente un backup su una macchina remota
rdc machine backup now [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--strategy <name> | Nome della strategia (avvia tutte se omesso) | No | - |
--debug | Abilita l'output di debug | No | - |
status
Mostra lo stato del backup e dei timer su una macchina remota
rdc machine backup status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--strategy <name> | Mostra i dettagli per una strategia specifica | No | - |
--debug | Abilita l'output di debug | No | - |
cancel
Annulla un backup in esecuzione su una macchina remota
rdc machine backup cancel [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
--strategy <name> | Nome della strategia (annulla tutte se omesso) | No | - |
--debug | Abilita l'output di debug | No | - |
4.18 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 piu precise dei repository: --orphaned-repos usa solo la configurazione CLI locale come segnale, mentre --prune-unknown consulta anche il mirror di stato .interim/renet affinche 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--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 piu 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 piu 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 e 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 | - |
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 |
--allow-grand | Consenti operazioni distruttive sui repository grand (non fork). Predefinito: solo modalita fork | No | - |
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 --mount → repo down. Consulta Concetti Chiave in rdc --help per architettura, routing e variabili d'ambiente.
6.1 mount
Monta un repository (decifra e apre il contenitore LUKS, rendendo il filesystem accessibile). Necessario al primo deploy, dopo 'repo push' su un nuovo macchinario, o dopo 'repo unmount'. Si può fare anche con 'repo up --mount'. Il volume rimane montato finché non viene smontato esplicitamente. Ometti il nome per montare tutti i repo sul macchinario.
rdc repo mount [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--checkpoint | Ripristina il checkpoint del contenitore CRIU dopo il mount (riprende i processi dallo stato di memoria salvato). Usato dopo 'repo push --checkpoint' per la migrazione live. | No | - |
--no-docker | Non avviare il daemon Docker dopo il mount | 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 | - |
6.2 unmount
Smonta un repository (chiude il contenitore LUKS, distaccando il filesystem cifrato). I servizi devono essere fermati prima ('repo down'). Dopo lo smontaggio, i dati del repo non sono accessibili finché non viene rimontato. Obbligatorio prima di 'repo resize'. Ometti il nome per smontare tutti i repo sul macchinario.
rdc repo unmount [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--checkpoint | Crea un checkpoint del contenitore CRIU prima dello smontaggio (cattura lo stato in memoria dei processi in esecuzione per un ripristino successivo) | 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 | - |
6.3 up
Distribuisce o aggiorna un repository (mount, esegue Rediaccfile up che chiama renet compose). 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). Usa --mount per il primo deploy o per i repo forked. Il ripristino del checkpoint CRIU è rilevato automaticamente: usa --skip-checkpoint per forzare un avvio pulito. Ometti il nome per distribuire tutti i repo sul macchinario.
rdc repo up [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--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 | - |
--include-forks | Monta e avvia anche i repository forked | No | - |
--mount-only | Solo mount, non avviare i servizi | 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.4 up-all
Distribuisce tutti i repository su un macchinario
rdc repo up-all
6.5 down
Ferma i contenitori Docker del repository (esegue Rediaccfile down tramite renet compose). 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. Usa --checkpoint per salvare lo stato del processo CRIU prima dell'arresto (il successivo 'repo up' lo ripristina automaticamente). Ometti il nome per fermare tutti i repo sul macchinario.
rdc repo down [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--unmount | Smonta (chiude il contenitore LUKS) anche dopo l'arresto. Equivale a 'repo down' poi 'repo unmount'. 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 | - |
-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.6 status
Ottieni lo stato del repository (stato del mount, daemon Docker in esecuzione, numero di contenitori, utilizzo del disco)
rdc repo status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-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 | - |
6.7 list
Elenca i repository su un macchinario
rdc repo 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 | - |
6.8 create
Crea un nuovo repository cifrato
rdc repo create [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--size <size> | Dimensione del repository (es. 10G, 100G, 1T) | Sì | - |
--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.9 delete
Elimina un repository (distrugge contenitori, volumi e immagine cifrata). La voce di configurazione viene conservata. Usa --archive-config per spostare le credenziali in deletedRepositories per un eventuale recupero tramite 'config restore-archived'.
rdc repo delete [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--archive-config | Sposta la voce di configurazione in deletedRepositories per un recupero successivo | 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.10 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: per fare il fork su un altro macchinario, prima fai il fork in locale, poi trasferisci: (1) repo fork --parent <genitore> -m <sorgente> --tag <nome>, (2) backup push <nome> -m <sorgente> --to-machine <destinazione>, (3) repo up <nome> -m <destinazione> --mount. AVVISO: NON usare 'backup 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--parent <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--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 | - |
--up | Monta e avvia i servizi dopo il fork (fork + mount + up in un unico comando) | 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.11 takeover
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 takeover [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--force | Ignora gli avvisi di modifica | 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 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--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.13 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--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.14 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 validate [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-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 | - |
6.15 autostart
Gestisci l'avvio automatico del repository al boot
enable
Abilita l'avvio automatico per un repository (ometti il nome per abilitare tutti)
rdc repo autostart enable [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-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 | - |
disable
Disabilita l'avvio automatico per un repository (ometti il nome per disabilitare tutti)
rdc repo autostart disable [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
-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 | - |
list
Elenca i repository con avvio automatico abilitato
rdc repo 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 | - |
6.16 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 ownership [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
--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 | - |
6.17 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 a meno che non si usi --unsafe. Usa 'list' per vedere i template integrati disponibili, 'apply' per distribuirne uno su un repository.
list
Elenca tutti i template di distribuzione incorporati forniti con la CLI
rdc repo template list
apply
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 template apply [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome del macchinario di destinazione | Sì | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | 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.18 push
Invia un repository a una destinazione remota (macchinario o storage). Ometti il nome per inviare tutti i repo. Il tipo di destinazione viene rilevato automaticamente dalla configurazione. Per il trasferimento tra macchinari, l'immagine cifrata del repo viene copiata con lo STESSO GUID: si tratta di un backup/migrazione, non di un fork. Per creare un fork indipendente, usa prima 'repo fork', poi push. Usa --up per distribuire dopo il push.
rdc repo push [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
--to <remote> | Macchinario o storage di destinazione (rilevato 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 | - |
--up | Dopo il push, monta e distribuisce il repository sul macchinario di destinazione | No | - |
--tag <tag> | Tag di distribuzione per il versioning | No | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-w, --watch | Osserva le modifiche | 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 | - |
--bwlimit <limit> | Limite di banda per il trasferimento rsync (es. "6M", "10M") | 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.19 pull
Scarica un repository da una sorgente remota (macchinario o storage). Ometti il nome per scaricare tutti i repo. Il tipo di sorgente viene rilevato automaticamente dalla configurazione. Usa --up per distribuire dopo il pull.
rdc repo pull [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | No | - |
--from <remote> | Nome del macchinario o storage 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 | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-w, --watch | Osserva le modifiche | 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 | - |
--bwlimit <limit> | Limite di banda per il trasferimento rsync (es. "6M", "10M") | 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.20 migrate
Esegue la migrazione live di un repository da un macchinario a un altro con downtime minimo. Rsync in due fasi: trasferimento bulk durante l'esecuzione, poi breve arresto per la sincronizzazione del delta. Supporta il checkpoint CRIU per la migrazione dello stato in memoria dei processi e il provisioning automatico dei macchinari di destinazione.
rdc repo migrate [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--from <machine> | Nome del macchinario di origine | Sì | - |
--to <machine> | Nome del macchinario di destinazione | Sì | - |
--provision <provider> | Provisioning automatico della destinazione tramite il provider cloud (es. hetzner, linode) | No | - |
--bwlimit <limit> | Limite di banda per il trasferimento rsync (es. 10M) | No | - |
--checkpoint | Migrazione live CRIU: cattura e ripristina lo stato in memoria dei processi | No | - |
--skip-dns | Ignora il cambio dei record DNS dopo la migrazione | No | - |
--debug | Abilita l'output di debug | No | - |
6.21 backup
Gestisci i backup dei repository
list
Elenca i backup disponibili su una destinazione remota (macchinario o storage). Senza --path, le sottocartelle hot/ e cold/ vengono unite in un'unica tabella con una colonna Mode.
rdc repo backup list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--from <remote> | Nome del macchinario o storage di origine (rilevato automaticamente dalla configurazione) | No | - |
--from-machine <machine> | — | No | - |
-m, --machine <name> | Nome della macchina | Sì | - |
--path <subdir> | Sottodirectory all'interno della root di storage. Se omessa, vengono elencate e unite sia hot/ che cold/. | No | - |
-w, --watch | Osserva le modifiche | 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.22 sync
Sincronizza repository e file (push/pull in blocco, trasferimento file)
push
Invia i repository allo storage cloud (ometti il nome per inviarli tutti)
rdc repo sync push
pull
Scarica i repository dallo storage cloud (ometti il nome per scaricarli tutti)
rdc repo sync pull
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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
--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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
--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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
--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.23 snapshot
Gestisci gli snapshot BTRFS sui macchinari remoti
create
Crea uno snapshot BTRFS point-in-time di un repository (istantaneo, senza downtime). Usa --snapshot-name per un nome personalizzato.
rdc repo snapshot create
list
Elenca gli snapshot BTRFS su un macchinario remoto con nome, data di creazione e dimensione
rdc repo snapshot list
delete
Elimina uno snapshot da un macchinario remoto
rdc repo snapshot delete
6.24 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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | No | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
-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 | - |
6.25 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/secrets/<networkId>/<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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <repository> | Nome del repository (es. mail, mail:staging). Senza tag, il valore predefinito è :latest. | Sì | - |
--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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <repository> | Nome del repository (es. mail, mail:staging). Senza tag, il valore predefinito è :latest. | Sì | - |
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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <repository> | Nome del repository (es. mail, mail:staging). Senza tag, il valore predefinito è :latest. | Sì | - |
--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 [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <repository> | Nome del repository (es. mail, mail:staging). Senza tag, il valore predefinito è :latest. | Sì | - |
--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 | - |
7. Gestione dello storage
Gestisci i provider di storage per il backup remoto (S3, compatibile con rclone). Operazioni CRUD (list, create, rename, delete), configurazione vault, navigazione dei file remoti e pulizia dei backup orfani.
7.1 list
Elenca i provider di storage
rdc storage list [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
--search <text> | Cerca nel campo {{field}} | No | - |
--sort <field> | Ordina per campo | No | - |
--desc | Ordina in ordine decrescente | No | - |
7.2 create
Crea un nuovo provider di storage
rdc storage create [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
7.3 rename
Rinomina un provider di storage
rdc storage rename [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--current-name <name> | Nome attuale della risorsa | Sì | - |
--new-name <name> | Nuovo nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
7.4 delete
Elimina un provider di storage
rdc storage delete [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-t, --team <name> | Nome del team | No | - |
-f, --force | Salta le richieste di conferma | No | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
7.5 vault
Gestione del vault dello storage (solo adapter cloud)
rdc storage vault
7.6 browse
Naviga i file in un sistema di storage
rdc storage browse [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
--path <subpath> | Percorso della sottodirectory da elencare | No | “ |
7.7 prune
Elimina i backup orfani dallo storage che non sono piu presenti in nessuna configurazione. Sicuro per configurazioni multiple con protezione del periodo di grazia. Le chiamate rclone vengono eseguite su --machine (l'esecutore), non sul tuo laptop, quindi i client non necessitano di rclone installato localmente; --machine e l'esecutore, non la fonte di verita.
rdc storage prune [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Macchina esecutore: esegue le chiamate rclone list/delete sullo storage. Obbligatorio perche non si prevede che i client abbiano rclone installato localmente; le credenziali dello storage provengono comunque dalla configurazione locale. | Sì | - |
--dry-run | Mostra cosa verrebbe fatto senza apportare modifiche | No | - |
--force | Salta le richieste di conferma | No | - |
--force-delete-mounted | Ignora il controllo di sicurezza del montaggio ed elimina i backup cloud anche se il GUID sorgente e attualmente montato o ha un container in esecuzione sulla macchina esecutore. Distinto da --force (che ignora solo il periodo di grazia per i repository archiviati). | 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 | - |
--skip-router-restart | Salta il riavvio del server di routing dopo l'aggiornamento del binario | No | - |
7.8 pull
Scarica un backup dallo storage cloud su una macchina
rdc storage pull
8. 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).
8.1 connect
Connettiti a una macchina o un repository in VS Code
rdc vscode connect [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
-m, --machine <name> | Nome della macchina | No | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
-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 | - |
8.2 list
Elenca le connessioni SSH VS Code configurate
rdc vscode list
8.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 | - |
8.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. Accesso SSH al terminale
Apri un terminale SSH a una macchina o al contesto di un repository. Configura automaticamente DOCKER_HOST, la directory di lavoro e l'ambiente. Supporta azioni sui container tramite --container: logs, exec, stats, terminal. Usa `-c` per eseguire un singolo comando in modalita non interattiva. Per VS Code, usa `vscode`.
9.1 connect
Connettiti a una macchina o un repository tramite SSH
rdc term connect [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --team <name> | Nome del team | No | - |
-m, --machine <name> | Nome della macchina | No | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
-c, --command <cmd> | Esegui un comando invece della shell interattiva | No | - |
--container <id> | Connettiti a un container Docker specifico | No | - |
--container-action <action> | Azione sul container: terminal, logs, stats, exec | No | - |
--log-lines <lines> | Numero di righe di log da mostrare (predefinito: 50) | No | - |
--follow | Segui l'output dei log | 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 | - |
10. Gestore del protocollo
Registra e gestisci gli URL del protocollo {{scheme}}://
10.1 register
Registra il gestore del protocollo nel sistema
rdc protocol register [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--system | Registra a livello di sistema (richiede privilegi di amministratore) | No | - |
--force | Forza la re-registrazione anche se già registrato | No | - |
10.2 unregister
Annulla la registrazione del gestore del protocollo dal sistema
rdc protocol unregister [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--system | Annulla la registrazione a livello di sistema (richiede privilegi di amministratore) | No | - |
10.3 status
Mostra lo stato di registrazione del gestore del protocollo
rdc protocol status
10.4 open
Apri un URL {{scheme}}:// ed esegui l'azione
rdc protocol open <url>
10.5 build
Costruisci un URL {{scheme}}:// dai componenti
rdc protocol build [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--token <token> | Token di autenticazione | Sì | - |
-t, --team <name> | Nome del team | Sì | - |
-m, --machine <name> | Nome della macchina | Sì | - |
-r, --repository <name> | Nome del repository (si connette all'ambiente del repository) | No | - |
-a, --action <action> | Azione ({{actions}}) | No | desktop |
-p, --params <key=value...> | Parametri aggiuntivi | No | - |
10.6 parse
Analizza un URL {{scheme}}:// e mostra i componenti
rdc protocol parse <url>
11. Comandi rapidi (scorciatoie)
11.1 run
ATTENZIONE: Comando di basso livello per debug e sperimentazione soltanto. Non per uso in produzione. Usa i comandi di livello superiore (repo up, repo down, ecc.) in alternativa. Esegue una funzione bridge 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. Sottocomandi principali: login (autenticazione con il portale di abbonamento), status (mostra lo stato corrente della licenza), activation (stato degli slot macchina), repo (gestisci le licenze per repository).
12.1 login
Autentica tramite browser o token API
rdc subscription login [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-t, --token <token> | Token API (rdt_...) | No | - |
--server <url> | URL del server account | No | - |
12.2 logout
Cancella il token di abbonamento memorizzato
rdc subscription logout
12.3 status
Mostra lo stato di abbonamento, slot macchina e licenze repository
rdc subscription status
12.4 activation
Gestione degli slot macchina
status
Mostra lo stato dello slot macchina per una macchina
rdc subscription activation status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
12.5 repo
Gestione delle licenze per repository
status
Mostra le licenze repository installate su una macchina
rdc subscription repo status [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
12.6 refresh
Aggiorna le licenze repository su una macchina remota
activation
Aggiorna le licenze repository su una macchina remota
rdc subscription refresh activation [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
repos
Aggiornamento batch delle licenze repository su una macchina remota
rdc subscription refresh repos [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
-m, --machine <name> | Nome della macchina | Sì | - |
repo
Aggiorna la licenza repository per un repository specifico
rdc subscription refresh repo [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--name <name> | Nome della risorsa | Sì | - |
-m, --machine <name> | Nome della macchina | Sì | - |
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 e gia all'ultima versione.
rdc update [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--force | Forza l'aggiornamento anche se e gia 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. 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
15. Operazioni VM sperimentali
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 idoneita dell'host).
15.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 | - |
15.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 | - |
15.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 | - |
15.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 | - |
15.5 setup
Installa i prerequisiti per la virtualizzazione
rdc ops setup [options]
| Flag | Descrizione | Obbligatorio | Predefinito |
|---|---|---|---|
--debug | Abilita l'output di debug | No | - |
15.6 check
Verifica i prerequisiti per la virtualizzazione
rdc ops check
Messaggi di errore comuni
Quando qualcosa va storto, la CLI fornisce messaggi di errore chiari:
| Errore | Significato |
|---|---|
| Autenticazione richiesta. Esegui: rdc auth login | Devi effettuare il login prima |
| Nessuna config attiva. Creane una con: rdc config init --name <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 --key team --value <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 --key region --value <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.