Saltar para o conteúdo principal Saltar para a navegação Saltar para o rodapé

Aplicação CLI

Guia completo para utilizar a interface de linha de comandos Rediacc para gestão da plataforma

Referência da CLI Rediacc

Visão Geral

A **CLI Rediacc** (`rdc`) é uma interface de linha de comandos para gerir infraestrutura auto-hospedada: máquinas, repositórios, armazenamento, backups e muito mais.

Instalação

Transfira o binário mais recente para a sua plataforma a partir da [página de versões Rediacc](https://www.rediacc.com) ou instale através do seu gestor de pacotes:

# macOS / Linux
curl -fsSL https://www.rediacc.com | sh

# Or use the packaged binary directly
./rdc --help

Opções Globais

Todos os comandos suportam estas flags globais:

FlagDescrição
--outputFormato de saída (table|json|yaml|csv)
--configUsar configuração específica para este comando
--langSubstituição de idioma ({{languages}})
--forceIgnorar pedidos de confirmação

1. Gestão de Configurações

Gerir ficheiros de configuração: criar, mudar, editar, reconciliar o estado e funcionalidades transversais (campos, auditoria, chaves SSH, sincronização remota).

Os ficheiros de configuração guardam detalhes de ligação (URL da API, credenciais, equipa/região/bridge predefinidas) para que possa alternar entre ambientes rapidamente.

1.1 prune

Remover peso morto do ficheiro de configuração local em ~/.config/rediacc/<config>.json. São limpos três grupos, todos puramente locais (sem chamadas SSH/renet): (1) entradas de cache de certificados ACME cujo GUID/repositório/máquina âncora já não está na configuração activa; (2) repositórios arquivados cujo período de graça expirou (por omissão 7 dias, ver defaults.pruneGraceDays); (3) referências cruzadas pendentes (machine→strategy, strategy→repo). Os recursos em uso, as credenciais, os tokens de armazenamento e o known-hosts nunca são alterados. O comportamento por omissão é aplicar as alterações; passe --dry-run apenas para pré-visualizar.

rdc config prune [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runPré-visualizar o que seria removido sem modificar o ficheiro de configuração. Reflecte a semântica desactivada por omissão dos outros comandos prune.Não-
--certs-onlyRestringir ao grupo de cache de certificados ACME. Ignora a limpeza de arquivos e referências cruzadas. Mutuamente exclusivo com --archives-only e --refs-only.Não-
--archives-onlyRestringir à remoção de arquivos expirados. Ignora a cache de certificados e a limpeza de referências cruzadas. Mutuamente exclusivo com --certs-only e --refs-only.Não-
--refs-onlyRestringir a referências cruzadas pendentes (machine→strategy, excludes/includes de strategy→repo). Ignora a cache de certificados e os arquivos. Mutuamente exclusivo com --certs-only e --archives-only.Não-
--purge-archivedElimina TODOS os repositórios arquivados independentemente da idade, não apenas os que passaram o período de graça. Equivalente a executar 'rdc repo admin archive purge' para cada repositório arquivado. Use apenas quando tiver a certeza de que não precisa de nenhuma das credenciais guardadas para restauro.Não-
--orphan-reposRemove entradas de repositório que não estão colocadas em nenhuma máquina. Cada entrada contém a credencial e a chave SSH desse repositório, pelo que isto é irrecuperável. Execute primeiro 'rdc config reconcile' para que a colocação reflita as máquinas.Não-
--grace-days <days>Substituir a janela de graça de arquivos (em dias) para esta invocação. Recorre a defaults.pruneGraceDays na configuração, depois a 7 se nenhum estiver definido.Não-

1.2 init

Criar um novo ficheiro de configuração com nome

Pode adicionar máquinas diretamente:

rdc config init [name] [options]
FlagDescriçãoObrigatórioPredefinição
--ssh-key <path>Caminho para a chave privada SSH (ex.: ~/.ssh/id_rsa)Não-
--renet-path <path>Caminho para o binário renet (predefinição: renet no PATH)Não-
--master-password <password>Encriptar recursos com uma palavra-passe mestraNão-
--server <url>URL do servidor de contaNão-

1.3 list

Listar todos os ficheiros de configuração

rdc config list

1.4 show

Mostrar os detalhes da configuração actual

rdc config show [options]
FlagDescriçãoObrigatórioPredefinição
--revealMostrar texto simples para valores sensíveis (apenas em modo interactivo)Não-

1.5 current

Mostra a configuração ativa: nome, ficheiro, servidor e canal resolvidos, estado do token

rdc config current

1.6 delete

Eliminar um ficheiro de configuração

rdc config delete <name>

1.7 set

Definir um valor por omissão (equipa, região, bridge)

rdc config set <key> <value>

1.8 clear

Limpar os valores por omissão (todos ou uma chave específica)

rdc config clear [key]

1.9 recover

Restaurar a configuração a partir de um ficheiro de cópia de segurança (.bak)

rdc config recover [name] [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-

1.10 ssh

Gerir a configuração de chaves SSH

set

Definir a chave SSH para a configuração actual

rdc config ssh set [options]
FlagDescriçãoObrigatórioPredefinição
--key <path>Caminho para o ficheiro de chave privada SSHSim-
--embedIncorporar o conteúdo da chave na configuração em vez de guardar o caminhoNão-

show

Mostrar a configuração actual de chave SSH

rdc config ssh show

remove

Remover a chave SSH da configuração actual

rdc config ssh remove

1.11 remote

Gerir a ligação ao armazenamento de configuração remoto

enable

Ligar esta configuração ao armazenamento encriptado remoto

rdc config remote enable [options]
FlagDescriçãoObrigatórioPredefinição
--master-passwordInscreva-se em modo headless com um password slot pré-aprovisionado (sem browser)Não-
--master-password-stdinComo --master-password, mas lê a password mestra de stdinNão-
--api-url <url>URL do servidor de contaNão-
--forceSubstituir o conteúdo local divergente pela cópia do servidor sem confirmaçãoNão-
--config-id <id>Associar a esta configuração existente do armazenamento em vez de criar uma nova entradaNão-

disable

Desligar do armazenamento remoto e guardar a configuração localmente

rdc config remote disable [options]
FlagDescriçãoObrigatórioPredefinição
--localDesligar apenas neste dispositivo, a partir da cópia em cache, sem contactar o servidorNão-
-y, --yesIgnorar pedido de confirmaçãoNão-

status

Mostrar o estado da ligação remota

rdc config remote status

master-password

Gerir a password mestra deste membro (o password slot)

change:

Alterar a password mestra: volta a embrulhar a chave da config a partir do registo deste dispositivo num novo password slot

rdc config remote master-password change [options]
FlagDescriçãoObrigatórioPredefinição
--new-master-password-stdinLer a nova password mestra a partir de stdin (caso contrário, REDIACC_NEW_STORE_MASTER_PASSWORD ou um pedido num TTY)Não-

refresh

Forçar a re-obtenção da configuração a partir do armazenamento remoto

rdc config remote refresh

versions

Listar as versões anteriores desta configuração guardadas no servidor

rdc config remote versions [options]
FlagDescriçãoObrigatórioPredefinição
--explainMostrar os ponteiros JSON que cada versão alterou, a partir das versões guardadas no servidorNão-

restore

Publicar uma versão anterior desta configuração como a sua versão mais recente

rdc config remote restore <version> [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-

1.12 field

Operações em campos de configuração por ponteiro (get/set/unset/rotate/list). Ponteiros JSON (RFC 6901) como /credentials/cfDnsApiToken.

get

Ler um valor de configuração pelo Ponteiro JSON. Os campos sensíveis são ocultados salvo com --reveal (apenas para humanos).

rdc config field get [options]
FlagDescriçãoObrigatórioPredefinição
--pointer <pointer>Ponteiro JSON para o campo (por ex., /credentials/cfDnsApiToken)Sim-
--revealMostrar texto simples para valores sensíveis (apenas TTY interactivo; auditado)Não-
--digestImprimir o resumo SHA-256 em vez do valor (seguro para partilhar com agentes)Não-

set

Escrever um valor de configuração num Ponteiro JSON. Os caminhos sensíveis requerem --current (barreira de conhecimento).

rdc config field set [options]
FlagDescriçãoObrigatórioPredefinição
--pointer <pointer>Ponteiro JSON para o campo (por ex., /credentials/cfDnsApiToken)Sim-
--new <value>Novo valor (interpretado como JSON se parecer JSON: {, [, ", true/false/null/número)Sim-
--current <value>Valor actual em texto simples, obrigatório para mutações em caminhos sensíveis (prova de barreira de conhecimento)Não-

unset

Eliminar um valor de configuração num Ponteiro JSON. Os caminhos sensíveis requerem --current.

rdc config field unset [options]
FlagDescriçãoObrigatórioPredefinição
--pointer <pointer>Ponteiro JSON para o campo (por ex., /credentials/cfDnsApiToken)Sim-
--current <value>Valor actual em texto simples, obrigatório para eliminações em caminhos sensíveisNão-

rotate

Rodar um valor sensível sem --current. Apenas TTY interactivo; auditado explicitamente.

rdc config field rotate [options]
FlagDescriçãoObrigatórioPredefinição
--pointer <pointer>Ponteiro JSON para o campo sensível (por ex., /credentials/cfDnsApiToken)Sim-
--new <value>Novo valorSim-

list

Listar todos os modelos de ponteiro de sensibilidade registados com o seu tipo e política de confirmação/encriptação.

rdc config field list [options]
FlagDescriçãoObrigatórioPredefinição
--sensitiveMostrar apenas modelos sensíveis (não públicos)Não-

1.13 edit

Abrir a configuração activa no $EDITOR como uma projecção JSONC redigida. Apenas para humanos; agentes recusados.

rdc config edit [options]
FlagDescriçãoObrigatórioPredefinição
--revealMostrar texto simples para valores sensíveis (apenas TTY interactivo; auditado)Não-
--dumpImprimir a configuração actual como JSONC para stdout (só leitura; seguro para agentes quando redigido)Não-
--apply <file>Aplicar um ficheiro JSONC editado (ignora o lançamento do $EDITOR)Não-
--current-secrets <file>Ficheiro JSON com mapeamento ponteiro→texto simples antigo para barreira de conhecimento em --applyNão-
--editor <cmd>Substituição do comando do editor (segue precedência git: flag > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR)Não-

1.14 audit

Inspeccionar o registo de auditoria da configuração (JSONL com cadeia de hashes em ~/.config/rediacc/audit.log.jsonl)

log

Imprimir entradas de auditoria recentes como JSON

rdc config audit log [options]
FlagDescriçãoObrigatórioPredefinição
--since <spec>Mostrar apenas entradas mais recentes do que (por ex., '24h', '7d', carimbo de data/hora ISO)Não-
--path <glob>Filtrar por glob de Ponteiro JSON (por ex., /credentials/*)Não-
--actor <kind>Filtrar por tipo de actor (human|agent)Não-

tail

Transmitir novas entradas de auditoria à medida que são escritas (Ctrl+C para parar)

rdc config audit tail

verify

Verificar a integridade da cadeia de hashes SHA-256 em todas as entradas de auditoria

rdc config audit verify

1.15 reconcile

Reconstrói o estado em tempo de execução a partir do estado real das máquinas. Corrige dados de anexação e encaminhamento desatualizados.

rdc config reconcile [options]
FlagDescriçãoObrigatórioPredefinição
--machine <m...>Limitar a reconciliação a estas máquinasNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-
--accept-observedReescreve uma colocação declarada para corresponder ao local real da imagem, mas apenas quando isso é inequívoco (observada em exatamente uma máquina). As duplicações mantêm-se como conflitos.Não-

1.16 rotate-cek

Rodar a chave de encriptação da configuração da organização

rdc config rotate-cek [options]
FlagDescriçãoObrigatórioPredefinição
--api-url <url>URL do servidor de contaNão-

1.17 access

Gerir as chaves de acesso da configuração: chaves públicas SSH que a CLI escreve no authorized_keys de uma máquina com uma restrição from= aos intervalos IPv4 e IPv6 declarados. Associar uma chave a uma máquina com 'machine access set' e aplicá-la com 'machine access push'

add

Adicionar uma chave de acesso ou atualizar uma existente no local, mantendo as suas associações a máquinas. Os intervalos indicados aqui aplicam-se à chave em todas as máquinas, a menos que uma associação defina os seus; sem intervalos, aplicam-se os de toda a configuração

rdc config access add <key> [options]
FlagDescriçãoObrigatórioPredefinição
--public-key <key>Linha de chave pública OpenSSH, ou caminho de um ficheiro que a contenhaSim-
--hosted-executorAdicionar os intervalos de saída observados do executor alojado (104.28.0.0/16 e 2a09:bac0::/29)Não-
--ipv4 <cidrs>Intervalos IPv4 em notação CIDR (separados por vírgulas, p. ex., 203.0.113.0/24)Não-
--ipv6 <cidrs>Intervalos IPv6 em notação CIDR (separados por vírgulas, p. ex., 2001:db8::/32)Não-
--no-restrictEscrever apenas from=, sem as restrições no-forwarding, no-pty e no-user-rcNão-

remove

Remover uma chave de acesso da configuração

rdc config access remove <key>

ranges

Definir os intervalos de origem que cada chave de acesso usa, a menos que a chave ou a sua associação à máquina defina os seus. Sem opções, mostra-os

rdc config access ranges [options]
FlagDescriçãoObrigatórioPredefinição
--hosted-executorAdicionar os intervalos de saída observados do executor alojado (104.28.0.0/16 e 2a09:bac0::/29)Não-
--ipv4 <cidrs>Intervalos IPv4 em notação CIDR (separados por vírgulas, p. ex., 203.0.113.0/24)Não-
--ipv6 <cidrs>Intervalos IPv6 em notação CIDR (separados por vírgulas, p. ex., 2001:db8::/32)Não-
--clearRemover os intervalos de toda a configuraçãoNão-

list

Listar as chaves de acesso da configuração

rdc config access list

2. Gestão do Datastore

Pools de armazenamento com nome que alojam repositórios. Um datastore é móvel (anexe-o a uma máquina, mova-o para outra) e de anexação única (apenas uma máquina o possui de cada vez). O datastore predefinido implícito de cada máquina não é gerido aqui.

2.1 resize

Aumenta ou reduz um datastore. É uma operação offline: os repositórios que contém têm de estar parados.

rdc datastore resize <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--size <size>Novo tamanho (por exemplo 200G)Sim-
--debugAtivar saída de depuraçãoNão-

2.2 fork

Faz fork de um datastore por copy-on-write. O fork é instantâneo e o seu custo não cresce com o tamanho da pool. Precisa do backend rbd: um datastore local não tem clonagem a nível de bloco, pelo que os repositórios que contém fazem fork um de cada vez por reflink (rdc repo fork).

rdc datastore fork <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--tag <tag>Etiqueta para o fork (o resultado é nome:etiqueta)Sim-
--attach-to <machine>Anexar o fork a esta máquina de imediato (requer --writes)Não-
--writes <disposition>Para onde vão as escritas do fork: local (instantâneo, efémero) ou ceph (clone duradouro)Não-
--cow-size <size>Tamanho do overlay para --writes localNão-
--debugAtivar saída de depuraçãoNão-

2.3 status

Mostra um datastore: o seu backend, anexação, utilização, repositórios e snapshots. Um datastore desanexado continua a reportar o seu registo.

rdc datastore status <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

2.4 create

Cria um datastore adicional com nome numa máquina. Um backend local é uma pool suportada por ficheiro nessa máquina e fica lá. Um backend rbd vive no Ceph, pelo que pode mover-se para qualquer máquina que alcance o mesmo cluster. Passe --cluster para o tornar num datastore do mundo Kubernetes; essa referência fica fixa na criação.

rdc datastore create <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Máquina onde criar o datastoreSim-
--size <size>Tamanho do datastore (por exemplo 100G)Sim-
--backend <type>Backend de armazenamento: local (suportado por ficheiro, fica nesta máquina) ou rbd (Ceph, movível)Nãolocal
--pool <name>Pool do Ceph para o backend rbd (por omissão: rbd)Não-
--image <name>Nome da imagem RBD para o backend rbd (por omissão: o nome do datastore)Não-
--cluster <name>Cluster Kubernetes a que este datastore pertence. Definido significa apenas repositórios Kubernetes; não definido significa apenas repositórios docker. Fixo na criação.Não-
--debugAtivar saída de depuraçãoNão-

2.5 list

Listar os datastores com nome, onde estão anexados e o que contêm.

rdc datastore list [place]

2.6 attach

Anexa um datastore a uma máquina. Apenas uma máquina o possui de cada vez, pelo que anexá-lo noutro sítio move-o: o antigo titular liberta-o primeiro, e uma transferência falhada deixa a anexação original intacta. Um fork tem de indicar para onde vão as suas escritas.

rdc datastore attach <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--to <machine>Máquina à qual anexar o datastoreSim-
--writes <disposition>Para onde vão as escritas de um fork: local (instantâneo, efémero, perdido ao desanexar) ou ceph (clone duradouro na pool). Obrigatório para um fork.Não-
--cow-size <size>Tamanho do overlay para --writes localNão-
--no-autoNão voltar a anexar este datastore automaticamente ao arrancarNão-
--forceForçar a remoção de uma máquina obsoleta que não libertou o datastore corretamenteNão-
--debugAtivar saída de depuraçãoNão-

2.7 detach

Desanexa um datastore da sua máquina. Os repositórios dentro dele param primeiro. Um fork anexado com --writes local não tem para onde escrever de volta o seu overlay, pelo que desanexá-lo descarta o overlay e requer --discard.

rdc datastore detach <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--discardDescartar um fork de escritas locais e o seu overlay. Os dados não são recuperáveis.Não-
-y, --yesIgnorar pedido de confirmaçãoNão-
--debugAtivar saída de depuraçãoNão-

2.8 snapshot

Faz e lista snapshots pontuais de um datastore. Um snapshot não custa nada em repouso e é a partir dele que um fork clona.

create

Faz um snapshot pontual de um datastore. Nada é parado. O instante é consistente com falhas, não consistente ao nível da aplicação: se precisar que uma escrita específica esteja NO snapshot, sincronize-a primeiro.

rdc datastore snapshot create <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--snapshot <label>Etiqueta do snapshot (por omissão: um carimbo de data/hora UTC)Não-
--debugAtivar saída de depuraçãoNão-

list

Listar os snapshots de um datastore.

rdc datastore snapshot list <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

2.9 delete

Destrói um datastore e tudo o que contém. É desanexado primeiro; se não conseguir ser desanexado corretamente, a eliminação falha em vez de deixar órfã uma pool montada.

rdc datastore delete <datastore> [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-
--forceEliminar mesmo que ainda existam repositórios a apontar para ele. Os seus dados são eliminados com ele.Não-
--debugAtivar saída de depuraçãoNão-

3. Gestão de Máquinas

Inspecionar o estado de máquinas remotas: recursos do sistema, contentores em execução, serviços systemd, repositórios implementados e diagnósticos de saúde. Consultas de leitura apenas; para modificar repositórios use `repo`. Subcomandos principais: status (estado completo, restringido com --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.

3.1 list

Listar máquinas

rdc machine list [options]
FlagDescriçãoObrigatórioPredefinição
--search <text>Pesquisar em {{field}}Não-
--sort <field>Ordenar por campoNão-
--descOrdenar por ordem decrescenteNão-

3.2 health

Verificar saúde da máquina para pipelines de CI/CD

O comando health produz métricas do sistema, estado dos contentores, estabilidade dos serviços e informações de armazenamento, úteis para verificações em pipelines de CI/CD.

rdc machine health <name> [options]
FlagDescriçãoObrigatórioPredefinição
-t, --team <name>Nome da equipaNão-

3.3 provision

Provisionar uma nova máquina num fornecedor de cloud com OpenTofu

rdc machine provision <name> [options]
FlagDescriçãoObrigatórioPredefinição
--provider <name>Nome do fornecedor de cloud (de machine provider add)Sim-
--region <region>Substituir região predefinidaNão-
--type <type>Substituir tipo de instância predefinidoNão-
--image <image>Substituir imagem de SO predefinidaNão-
--ssh-user <user>Nome de utilizador SSH para a nova VM (predefinição: root)Não-
--base-domain <domain>Domínio base para a infraestrutura (por ex., example.com). Implica --infraNão-
--no-infraIgnorar configuração de infraestrutura (proxy + DNS)Não-
--debugAtivar saída de depuraçãoNão-

3.4 deprovision

Destruir uma máquina provisionada na cloud e remover da configuração

rdc machine deprovision <name> [options]
FlagDescriçãoObrigatórioPredefinição
--forceIgnorar pedido de confirmaçãoNão-
--debugAtivar saída de depuraçãoNão-

3.5 prune

Remover recursos de datastore órfãos e snapshots desatualizados de uma máquina. A execução base limpa artefactos internos do datastore do renet (subvolumes BTRFS, ficheiros de bloqueio, ficheiros temporários). As opções abaixo permitem limpezas progressivamente mais específicas de repositórios: --orphaned-repos usa apenas a configuração local do CLI como referência, enquanto --prune-unknown consulta também o espelho .interim/state do renet para que forks legítimos criados por outras ferramentas sobrevivam mesmo sem entrada na configuração local. Ambos os caminhos de eliminação executam uma verificação prévia de segurança de montagem; use --force-delete-mounted para ignorar.

rdc machine prune <name> [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runMostrar o que seria removido sem efetuar alteraçõesNão-
--orphaned-reposEliminar todos os repositórios na máquina que não existam na configuração local do CLI. Abrangente: também remove forks criados por outras ferramentas sem entrada na configuração local, mesmo quando o espelho renet os identifica corretamente como forks. Use --prune-unknown para o comportamento mais restrito que respeita o espelho.Não-
--prune-unknownEliminar apenas repositórios que o espelho .interim/state do renet não consegue classificar (não na configuração local E sem espelho marcado como fork). Estritamente mais restrito do que --orphaned-repos: forks sem configuração são preservados quando o espelho os identifica. Órfãos legados anteriores ao espelho e grands desatualizados cuja entrada de configuração foi eliminada entram neste grupo.Não-
--force-delete-mountedIgnorar a verificação prévia de segurança de montagem e eliminar repositórios mesmo que estejam montados ou com contentores Docker em execução. Distinto de --force (que apenas ignora o período de carência para repositórios arquivados). Aplica-se a --orphaned-repos e --prune-unknown.Não-
--forceIgnorar pedidos de confirmaçãoNão-
--grace-days <days>Período de graça em dias para repositórios recentemente arquivados (predefinição: 7)Não-
--debugAtivar saída de depuraçãoNão-

3.6 converge

Reinicia, um de cada vez, cada daemon de repositório que ainda roda com um layout de runtime antigo, para que passe ao atual. A CLI faz isso sozinha depois de enviar o renet; à mão, serve para ver o plano antes, retomar uma passagem que falhou ou, com --policy always, reiniciar após qualquer mudança no binário do renet.

rdc machine converge <name> [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runMostrar o plano sem reiniciar nadaNão-
--jsonMostrar o relatório de convergência em JSONNão-
--include-unknownReiniciar também repositórios desatualizados que não estão na configuração local (seus segredos de ambiente são desconhecidos)Não-
--policy <policy>Política de reinício: epoch (só mudanças de layout) ou always (também qualquer mudança no binário do renet)Nãoepoch
--continue-on-errorContinuar quando um repositório falha em vez de parar a passagemNão-
--debugAtivar saída de depuraçãoNão-

3.7 add

Adicionar uma máquina à configuração actual. Analisa automaticamente as chaves de anfitrião SSH. Após adicionar, execute: config machine setup <nome>

rdc machine add <name> [options]
FlagDescriçãoObrigatórioPredefinição
--ip <address>Endereço IP ou hostname da máquinaSim-
--user <username>Nome de utilizador SSHSim-
--port <port>Porta SSHNão22

3.8 infra

Gerir a configuração de infraestrutura (proxy, DNS, certificados)

cert

Gerir certificados TLS em cache

clear:

Remover a cache de certificados

rdc machine infra cert clear

pull:

Descarregar e colocar em cache os certificados TLS de uma máquina

rdc machine infra cert pull <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--no-pruneNão remover certificados de ID de rede obsoletosNão-
--debugAtivar saída de depuraçãoNão-

push:

Carregar certificados TLS em cache para uma máquina

rdc machine infra cert push <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

status:

Mostrar o inventário de certificados em cache

rdc machine infra cert status

push

Enviar a configuração de infraestrutura para a máquina (proxy Traefik, router, DNS Cloudflare). Execute 'machine infra set <machine>' primeiro.

rdc machine infra push <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

set

Definir a configuração de infraestrutura para uma máquina (específico da máquina: IPs, domínio, portas; partilhado: email de certificado, token DNS CF)

rdc machine infra set <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--public-ipv4 <ip>Endereço IPv4 público (por máquina)Não-
--public-ipv6 <ip>Endereço IPv6 público (por máquina)Não-
--base-domain <domain>Domínio base para aplicações (por máquina)Não-
--cert-email <email>Email para notificações de certificados TLS (partilhado entre máquinas)Não-
--cf-dns-token <token>Token de API DNS Cloudflare para desafio ACME DNS-01 (partilhado entre máquinas)Não-
--tcp-ports <ports>Portas TCP a reencaminhar (separadas por vírgula, por ex., 25,143,465)Não-
--udp-ports <ports>Portas UDP a reencaminhar (separadas por vírgula, por ex., 53)Não-

show

Mostrar a configuração de infraestrutura de uma máquina

rdc machine infra show <machine>

3.9 provider

Gerir fornecedores de cloud para aprovisionamento automático de máquinas

add

Adicionar um fornecedor de cloud

rdc machine provider add <name> [options]
FlagDescriçãoObrigatórioPredefinição
--provider <source>Fonte de fornecedor conhecida (por ex., linode/linode, hetznercloud/hcloud)Não-
--source <source>Fonte de fornecedor OpenTofu personalizada (por ex., vultr/vultr)Não-
--token-env <var>Nome da variável de ambiente com o token de API do fornecedor; o token nunca vai na linha de comandosSim-
--region <region>Região por omissão para novas máquinasNão-
--type <type>Tipo/tamanho de instância por omissãoNão-
--image <image>Imagem do sistema operativo por omissãoNão-
--ssh-user <user>Nome de utilizador SSH para novas VMs (por omissão: root)Não-
--resource <type>Personalizado: tipo de recurso OpenTofu para VMNão-
--label-attr <attr>Personalizado: nome do atributo para a etiqueta da VMNão-
--region-attr <attr>Personalizado: nome do atributo para a regiãoNão-
--size-attr <attr>Personalizado: nome do atributo para o tipo de instânciaNão-
--image-attr <attr>Personalizado: nome do atributo para a imagem do sistema operativoNão-
--ipv4-output <attr>Personalizado: atributo de saída para o endereço IPv4Não-
--ipv6-output <attr>Personalizado: atributo de saída para o endereço IPv6Não-
--ssh-key-attr <attr>Personalizado: nome do atributo para as chaves SSHNão-
--ssh-key-format <format>Personalizado: formato da chave SSH (inline_list ou resource_id)Não-
--ssh-key-resource <type>Personalizado: tipo de recurso OpenTofu para chaves SSHNão-

list

Listar os fornecedores de cloud configurados

rdc machine provider list

remove

Remover uma configuração de fornecedor de cloud

rdc machine provider remove <name>

3.10 remove

Remover uma máquina da configuração actual

rdc machine remove <name> [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-
--forceRemover a máquina mesmo que existam repositórios colocados nela ou estratégias de cópia de segurança associadas a ela, deixando essas referências pendentes.Não-

3.11 restart-services

Reinicia um a um os daemons do renet que ainda executam um binário substituído para que passem a usar o instalado, confirmando que cada unidade está ativa no novo binário antes de seguir para a próxima. Com --include-docker, os supervisores rediacc-docker-N de cada repositório também são reiniciados, um repositório por vez, o que reinicia os contêineres desse repositório.

rdc machine restart-services <name> [options]
FlagDescriçãoObrigatórioPredefinição
--include-dockerReiniciar também o supervisor rediacc-docker-N de cada repositório (reinicia os contêineres dele)Não-
--jsonExibir o relatório em JSONNão-

3.12 scan-keys

Analisar as chaves de anfitrião SSH das máquinas na configuração actual

rdc machine scan-keys [name]

3.13 setup

Aprovisionar uma máquina remota para repositórios (instala o renet, configura o Docker, armazém de dados BTRFS). Idempotente. Necessário após 'config machine add' e antes de 'repo create'.

rdc machine setup <name> [options]
FlagDescriçãoObrigatórioPredefinição
--datastore-path <path>Caminho do armazém de dados na máquina remotaNão/mnt/rediacc
--datastore-size <size>Tamanho do armazém de dados (por ex., 95%, 100G)Não95%
--no-convergeNão reiniciar daemons de repositório que ainda usam um layout de runtime antigo (o mesmo que REDIACC_SKIP_RUNTIME_CONVERGE=1)Não-
--debugAtivar saída de depuraçãoNão-

3.14 status

Mostrar estado completo da máquina (infraestrutura, sistema, repos com nome/guid, contentores com repository/repository_guid/domain/autoRoute, serviços com repository/repository_guid). Só de leitura: nunca atualiza o renet na máquina; avisa quando a versão é diferente.

rdc machine status [name] [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-
--systemIncluir apenas informações do sistemaNão-
--repositoriesIncluir apenas repositóriosNão-
--containersIncluir apenas contentoresNão-
--servicesIncluir apenas serviçosNão-
--networkIncluir apenas interfaces de redeNão-
--block-devicesIncluir apenas dispositivos de blocoNão-
--licensesIncluir estados de licença dos repositóriosNão-
--storage-healthMostrar fragmentação BTRFS e poupanças de reflink por repositórioNão-
--datastoresMostrar datastores anexados (montagem, anexação, utilização)Não-
--health-checkModo de verificação de saúde - sai com código 2 se algum não estiver saudávelNão-
--stability-checkModo de verificação de estabilidade - sai com código 2 se algum falhar/reiniciarNão-
--search <text>Filtrar repositórios por nomeNão-
--sync-certsTambém obter a cache de certificados ACME da máquina após a consultaNão-
--strictTerminar com código não zero (código 2) se algum contentor ultrapassou o limiar de desvio de saúdeNão-

3.15 gpu

Mostra as GPUs que uma máquina pode ceder aos repositórios, os dispositivos CDI que oferece e qual repositório detém cada um.

list

Lista as GPUs detetadas numa máquina, os nomes de dispositivo CDI definidos pelas suas specs e os repositórios a que cada dispositivo está concedido. Para conceder um, use 'rdc repo gpu grant'.

rdc machine gpu list <name> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

3.16 access

Associar as chaves de acesso da configuração a uma máquina e escrevê-las no seu authorized_keys, cada uma restrita aos seus intervalos de origem

set

Associar uma chave de acesso a uma máquina. Os intervalos indicados aqui substituem os da chave apenas nesta máquina. Aplique com 'machine access push'

rdc machine access set <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--key <key>Nome da chave de acesso (consulte 'config access list')Sim-
--ipv4 <cidrs>Intervalos IPv4 em notação CIDR (separados por vírgulas, p. ex., 203.0.113.0/24)Não-
--ipv6 <cidrs>Intervalos IPv6 em notação CIDR (separados por vírgulas, p. ex., 2001:db8::/32)Não-
--clear-rangesDescartar os intervalos próprios desta máquina, para que se apliquem os da chave ou da configuraçãoNão-

remove

Desassociar uma chave de acesso de uma máquina. O próximo 'machine access push' remove a sua linha

rdc machine access remove <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--key <key>Nome da chave de acesso (consulte 'config access list')Sim-

show

Mostrar as chaves de acesso associadas a uma máquina e os intervalos que cada uma tem aí

rdc machine access show <machine>

push

Escrever no authorized_keys de uma máquina as chaves de acesso associadas a ela, adotando uma linha existente com a mesma chave, e remover as linhas desta configuração das chaves que já não estão associadas. Recusa uma alteração que bloquearia a própria sessão do rdc e não escreve nada se o ficheiro mudou durante o envio

rdc machine access push <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runMostrar as alterações sem escreverNão-

4. Gestão de Clusters

Provisionar e gerir clusters: conjuntos nomeados de pools de nós (ceph, k8s-server, k8s-agent, hyperconverged) numa rede privada. Os membros dos pools materializam-se em máquinas, pelo que todos os comandos -m funcionam neles.

4.1 create

Declara e provisiona um cluster: máquinas, pools do Ceph e Kubernetes. Passe --provider e --pool para declarar num único passo; um create sem argumentos provisiona um cluster já declarado.

rdc cluster create <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--provider <provider>Fornecedor: uma chave de cloudProviders, ou 'kvm'Não-
--pool <spec...>Especificação do pool nome:papel:contagem[:tamanho] (papel: ceph|k8s-server|k8s-agent|hyperconverged)Não-
--declare-onlyRegistar o cluster na configuração sem o provisionarNão-
--network-cidr <cidr>CIDR da rede privada (ex.: 10.0.0.0/24)Não-
--network-primitive <primitive>Primitiva de rede (ex.: vlan, vpc, network)Não-
--control-node <machine>Máquina de nó de controlo explícita (predefinição: primeiro membro k8s-server)Não-
--net-name <name>KVM: rede libvirt para este cluster (ex.: renet12)Não-
--net-base <prefix>KVM: prefixo de rede, os primeiros três octetos (ex.: 192.168.112)Não-
--net-offset <n>KVM: offset adicionado ao id de cada VM ao derivar o seu endereçoNão-
--control-id <n>KVM: id de VM do nó de controlo e registry (predefinição: 1)Não-
--docker-registry <endpoint>KVM: endpoint do registry Docker dentro da VM para este clusterNão-
--ssh-user <user>Utilizador SSH para os membros provisionadosNão-
--base-domain <domain>Domínio base para o DNS público do cluster (caso contrário, herdado de uma máquina irmã)Não-
--control-ds-size <size>Tamanho do datastore de controlo âncora (predefinição: 10G)Não-
--control-ds-backend <backend>Backend do datastore de controlo âncora: local | ceph (predefinição: ceph se o cluster tiver ceph, caso contrário local)Não-
--control-ds-pool <pool>Pool RBD do Ceph para o datastore de controlo âncora (backend ceph)Não-
--debugAtivar saída de depuraçãoNão-

4.2 status

Listar todos os clusters, ou informar o nome de um cluster para mostrar sua configuração completa.

rdc cluster status [cluster]

4.3 scale

Alterar o número de membros de um pool (adiciona/remove máquinas e junta/drena nós). Os pools k8s-agent escalam no próprio lugar; o crescimento do pool ceph é feito diretamente via cephadm.

rdc cluster scale <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--pool <pool>Nome do poolSim-
--count <n>Número de membros pretendidoSim-
--debugAtivar saída de depuraçãoNão-

4.4 destroy

Desmontar os membros provisionados e remover o cluster e as suas máquinas da configuração.

rdc cluster destroy <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--forceIgnorar a confirmação e continuar mesmo perante erros de desmontagemNão-
--debugAtivar saída de depuraçãoNão-

4.5 kubeconfig

Obter o kubeconfig do nó de controlo do cluster via SSH e colocá-lo em cache localmente (0600) para o kubectl.

rdc cluster kubeconfig <cluster>

4.6 fork

Clonar um cluster inteiro, incluindo os dados dos seus repositórios, para um novo cluster: copy-on-write coordenado das imagens do cluster e dos PVs, seguido da reescrita da identidade dos nós para que o fork arranque em novos endereços. O pai continua em execução.

rdc cluster fork <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--tag <tag>Etiqueta do forkSim-
--to <dest-cluster>Cluster de destino cujos nós alojam o fork (o seu nó de controlo e agentes); um cluster não pode fazer fork para as suas próprias máquinas, uma vez que dois k3s não podem partilhar o mesmo espaço de nomes de rede do anfitriãoSim-
--writes <disposition>Disposição de escrita do fork: local (camada dm-COW efémera, impacto zero no Ceph) | ceph (clone duradouro). Predefinição: localNão-
--upColocar os repositórios do fork em funcionamento e validar a saúde do cluster depois de o fork arrancarNão-
--debugAtivar saída de depuraçãoNão-

4.7 migrate

Mover um cluster inteiro, incluindo os dados dos seus repositórios, para outra máquina ou centro de dados com um curto período de corte (pré-cópia a quente, seguida de paragem-e-reinício no destino).

rdc cluster migrate <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--to <dest-cluster>DestinoSim-
--debugAtivar saída de depuraçãoNão-

4.8 join

Adotar uma máquina registada existente como nó agente Kubernetes de um cluster, utilizando o mesmo token de adesão derivado da CA usado para a ancoragem e o reingresso.

rdc cluster join <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--cluster <name>Cluster ao qual juntar a máquinaSim-
--debugAtivar saída de depuraçãoNão-

4.9 evict

Drenar o nó, eliminar o seu objeto Node e limpar a sua associação ao cluster. O cluster é derivado da máquina; uma máquina que ainda monta um datastore é recusada.

rdc cluster evict <machine> [options]
FlagDescriçãoObrigatórioPredefinição
--forceIgnorar a drenagem quando o nó já está mortoNão-
--debugAtivar saída de depuraçãoNão-

4.10 rehearse

Ensaiar uma release/atualização: fazer fork do cluster para um destino como instância efémera e descartável (writes=local, papel sem segredos: rehearsal), arrancá-la, validar a sua saúde e depois eliminá-la. O pai nunca é tocado.

rdc cluster rehearse <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--on <dest-cluster>Cluster de destino onde arrancar o ensaio descartávelSim-
--tag <tag>Etiqueta opcional para o fork de ensaio (predefinição: com timestamp)Não-
--debugAtivar saída de depuraçãoNão-

4.11 snapshot

Snapshots pontuais de todo o cluster. Um único instante consistente em caso de falha, abrangendo todos os datastores com backend rbd que o cluster possui, obtido através do snapshot de grupo do Ceph: nada é parado e o cluster nem sequer se apercebe. Os datastores com backend local não têm uma primitiva de grupo a nível de bloco, pelo que ficam fora do instante e são reportados como tal. O instante é consistente com falhas, não consistente ao nível da aplicação: se precisar que uma escrita específica esteja NO snapshot, sincronize-a primeiro.

create

Faz snapshot de todos os datastores com backend rbd do cluster num ÚNICO instante. Nada é parado. Qualquer datastore com backend local do cluster fica fora desse instante: não faz parte do snapshot. O instante é consistente com falhas, não consistente ao nível da aplicação: se precisar que uma escrita específica esteja NO snapshot, sincronize-a primeiro.

rdc cluster snapshot create <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--snapshot <label>Etiqueta do snapshot (por omissão: um carimbo de data/hora UTC)Não-
--debugAtivar saída de depuraçãoNão-

list

Listar os snapshots de grupo do cluster.

rdc cluster snapshot list <cluster> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

5. Servidor MCP

Expõe o CLI como servidor Model Context Protocol (MCP) para integração com agentes de IA. O servidor envolve comandos do CLI como ferramentas MCP com entrada/saída JSON estruturada. Subcomando principal: serve (inicia o servidor MCP baseado em stdio).

5.1 serve

Iniciar o servidor MCP (transporte stdio)

rdc mcp serve [options]
FlagDescriçãoObrigatórioPredefinição
--config <name>Nome da configuração a usar em todos os comandosNão-
--timeout <ms>Tempo limite predefinido dos comandos em milissegundosNão120000

6. Ciclo de Vida do Repositório

Implementar e gerir repositórios encriptados em máquinas. Subcomandos principais: create, up (implementar), down (parar), fork (clone CoW instantâneo), delete, push/pull (cópia de segurança), sync (transferência de ficheiros). Ciclo de vida: repo create → repo up → repo down. Consulte Conceitos Principais em rdc --help para detalhes de arquitectura, encaminhamento e variáveis de ambiente.

6.1 up

Implementa ou atualiza um repositório (monta, executa o up do Rediaccfile que invoca o renet compose). A máquina é derivada da localização da ref. As rotas de proxy demoram ~3s a ficar ativas após a implementação. Ao concluir, apresenta o padrão de URL dos serviços expostos via HTTP (etiqueta rediacc.service_port). A primeira implementação e os forks são montados automaticamente. O restauro de checkpoint CRIU é detetado automaticamente; use --skip-checkpoint para forçar um arranque limpo. Use --all --machine <m> para implementar todos os repositórios de uma máquina.

rdc repo up [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--no-startMontar e preparar o repositório sem executar os seus passos up() (integra o retirado 'repo mount'; abre o LUKS e, para repositórios de cluster, gera o PV).Não-
--skip-checkpointIgnorar o restauro de ponto de verificação CRIU mesmo que existam dados de verificação (forçar arranque limpo)Não-
--tlsSolicitar certificado TLS dedicado para este repositório (os forks utilizam o certificado partilhado da máquina por omissão)Não-
--no-waitRetornar assim que os contentores arrancam; os healthchecks continuam em segundo planoNão-
--allImplementar todos os repositórios cuja casa seja --machine (forma em lote)Não-
-m, --machine <name>Com --all: a máquina cujos repositórios receberão o loteNão-
--include-forksMontar e iniciar também os repositórios copiados (fork)Não-
--parallelIniciar os repositórios em simultâneoNão-
--concurrency <n>Máximo de repositórios em simultâneo (por omissão: 3)Não3
-y, --yesIgnorar confirmação em operações em loteNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-

6.2 down

Para os contentores Docker do repositório (executa o down do Rediaccfile via renet compose). A máquina é derivada da localização da ref. NÃO desmonta o volume encriptado: o repositório permanece montado e pode ser reiniciado com 'repo up'. Use --unmount para também fechar o contentor LUKS após parar (integra o retirado 'repo unmount'). Use --checkpoint para guardar o estado do processo CRIU antes de parar (o próximo 'repo up' restaura automaticamente). Use --all --machine <m> para parar todos os repositórios de uma máquina.

rdc repo down [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--unmountTambém desmontar (fechar o contentor LUKS) após parar. Necessário antes de 'repo resize' ou para proteger completamente o volumeNão-
--checkpointCriar ponto de verificação CRIU antes de parar (guardar o estado de memória do processo para restauro posterior via 'repo up')Não-
--allParar todos os repositórios cuja casa seja --machine (forma em lote)Não-
-m, --machine <name>Com --all: a máquina cujos repositórios receberão o loteNão-
--parallelIniciar os repositórios em simultâneoNão-
--concurrency <n>Máximo de repositórios em simultâneo (por omissão: 3)Não3
-y, --yesIgnorar confirmação em operações em loteNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-

6.3 status

Obter o estado do repositório (estado de montagem, daemon Docker em execução, número de contentores, utilização do disco)

rdc repo status <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.4 cat

Ler uma janela delimitada de um ficheiro dentro de um repositório e escrevê-la para stdout (delimitado no servidor; os diagnósticos vão para stderr)

rdc repo cat <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--remote-file <path>Caminho do ficheiro a ler, relativo à raiz de montagem do repositórioSim-
--max-bytes <n>Máximo de bytes a ler e imprimir (predefinição 1 MiB, teto máximo 50 MiB)Não-
--offset <n>Deslocamento em bytes a partir do qual começar a lerNão-
--head <lines>Imprimir apenas as primeiras N linhas (não pode combinar com intervalo de bytes)Não-
--tail <lines>Imprimir apenas as últimas N linhas (não pode combinar com intervalo de bytes)Não-
--statImprimir apenas tamanho, tipo e data de modificação; sem ler conteúdoNão-
--force-binaryPermitir leitura de conteúdo binário (que contém NUL)Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.5 diff

Diff a nível de arquivo no estilo git entre dois repositórios bifurcados em copy-on-write. Relata arquivos adicionados, modificados, excluídos e renomeados. Compara o repositório dado pelo <ref> posicional (lado alvo/novo) com seu pai, resolvido a partir da configuração local, ou com um --base explícito (lado base/antigo). Somente metadados e independente do tamanho: compara as imagens LUKS criptografadas em nível de bloco sem decriptá-las, então um repo de 1 GB e um de 100 GB são comparados nos mesmos milissegundos.

rdc repo diff <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--base <ref>Repositório com o qual comparar (lado base/antigo); padrão é o pai de <ref>Não-
--name-onlyImprimir apenas os caminhos dos arquivos alterados, um por linha (sem letras de status)Não-
--statMostrar a magnitude da alteração por arquivo (deltas em bytes e blocos) e totaisNão-
--content [path]Mostrar diff de texto unificado para um único arquivo (requer caminho de arquivo)Não-
--fastConfiar no filtro de blocos; pular confirmação por hash de conteúdo (pode super-relatar Modificado)Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.6 list

Listar os repositórios numa máquina

rdc repo list [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoNão-
--datastore <name>Listar os repositórios deste datastore (resolvido para a máquina que atualmente o possui)Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.7 create

Cria um novo repositório. Indique a sua localização uma vez: uma máquina ou um datastore.

rdc repo create <name> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoNão-
--datastore <name>Datastore com nome que aloja o repositório (nível docker, ou a forma para clusters)Não-
--size <size>Tamanho do repositório (por ex., 10G, 100G, 1T)Não-
--no-dockerNão iniciar o daemon Docker após a criaçãoNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.8 delete

Elimina um repositório e os seus dados. A entrada de configuração de um fork passa para deletedRepositories, o que liberta o nome e mantém o GUID recuperável via 'repo admin archive restore'; a de um repositório grand, ou de um enviado para outras máquinas, é preservada, a menos que se passe --archive-config. Recebe uma <ref> posicional; um nome simples resolve para a linha grand e é recusado quando vários repositórios partilham o mesmo nome base, pelo que deve passar nome:etiqueta para visar um fork.

rdc repo delete <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--archive-configMover a entrada de configuração para deletedRepositories para recuperação posteriorNão-
--purge-backupsApagar também agora os backups na nuvem do repositório, em vez de deixá-los expirarNão-
-y, --yesIgnorar pedido de confirmaçãoNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-

6.9 commit

Congela o estado actual de um fork de trabalho montado num novo commit imutável (semelhante ao git). O commit regista a sua mensagem, autor, data/hora e pai dentro do volume (para que viaje no push) e é marcado como só de leitura, pelo que se recusa a montar. O fork de trabalho continua inalterado, tal como o git deixa a árvore de trabalho intacta. Faça checkout de um commit com 'rdc repo checkout' para obter uma cópia gravável.

rdc repo commit <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--message <msg>Mensagem do commitSim-
--author <author>Autor do commitNão-
--debugAtivar saída de depuraçãoNão-

6.10 branch

Cria uma referência de branch nomeada apontando para o commit atual do fork de trabalho (sua ponta). As referências de branch ficam na configuração do CLI (máquina = armazenamento de objetos, configuração = armazenamento de referências).

rdc repo branch <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--branch <branch>Nome do novo branchSim-

6.11 checkout

Clona via reflink um commit imutável (ou a ponta de um branch) em um novo fork de trabalho gravável e aponta o HEAD para ele. Quase instantâneo e de tempo constante (reflink BTRFS).

rdc repo checkout <commit-or-branch-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--tag <name>Nome para o novo fork de trabalho gravávelSim-
--from <workingFork>Resolver o argumento posicional <commit-or-branch-ref> como nome de branch neste working forkNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.12 log

Imprime o histórico de commits alcançável a partir do commit atual de um fork de trabalho (ou de uma referência de commit), percorrendo a cadeia de pais registrada por 'rdc repo commit'. Lê o espelho fora do volume, então nenhum commit é desbloqueado.

rdc repo log <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

6.13 merge

Faz merge de um commit ou fork de origem em um fork de trabalho de destino. O destino ativo nunca é alterado no lugar: o resultado é construído em um clone reflink e trocado de forma atômica. Um destino montado ou em execução é recusado, a menos que --force seja usado, o que o suspende de forma limpa primeiro. Sem --resolve, é um take-theirs de imagem inteira (o destino passa a ser a origem); com --resolve ours|theirs, é um merge three-way por arquivo em relação ao ancestral comum, adotando as alterações exclusivas de cada lado e resolvendo os conflitos bilaterais de acordo com a flag.

rdc repo merge <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--from <source>commit ou fork de origem a partir do qual fazer o mergeSim-
--forceSuspende primeiro um destino montado/em execução e, em seguida, faz o merge (nunca altera uma montagem ativa)Não-
`—resolve <ourstheirs>`Resolução de conflitos por arquivo num merge three-way: 'ours' mantém a versão do destino, 'theirs' adota a da origem. Omita para fast-forward de imagem inteira (take-theirs).Não
--base <guid>GUID do commit ancestral comum para um merge three-way (usado com --resolve). O padrão é o pai do commit de origem ou o commit atual do destino.Não-
--debugAtivar saída de depuraçãoNão-

6.14 gc

Exclui objetos de commit imutáveis numa máquina que nenhum branch ou HEAD alcança (GC por alcançabilidade). A máquina é o repositório de objetos; a configuração do CLI é o repositório de referências. Dry-run por padrão: use --apply para excluir. Nunca afeta um objeto montado ou um fork de trabalho.

rdc repo gc [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-
--applyExcluir de fato os commits inalcançáveis (o padrão é uma previsão dry-run)Não-
--debugAtivar saída de depuraçãoNão-

6.15 fork

Cria um fork CoW (Copy-on-Write) de um repositório. O FORK É QUASE INSTANTÂNEO E DE TEMPO CONSTANTE independentemente do tamanho do repositório; o reflink BTRFS clona a imagem subjacente, pelo que um repositório de 100 GB e um de 1 GB são copiados no mesmo tempo (~segundos). O fork recebe um NOVO GUID, networkId, intervalo de IPs e domínio de rota automática ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}), sendo uma cópia totalmente independente. O fork online é suportado; o pai pode permanecer em execução. O fork herda automaticamente as credenciais de encriptação do pai. Use --checkpoint para capturar o estado do processo CRIU antes de copiar; o fork restaura automaticamente no primeiro 'repo up' (estado em memória preservado). FORK ENTRE MÁQUINAS: primeiro faça fork localmente e depois transfira: (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine>, (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. AVISO: NÃO use "repo push" isoladamente para copiar; cria uma cópia bruta com o MESMO GUID (não é um fork independente). Faça sempre fork primeiro para obter uma nova identidade. As rotas automáticas utilizam o nome do repositório, pelo que cada fork obtém automaticamente um domínio único.

rdc repo fork <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--tag <name>Etiqueta para o fork (cria nome:etiqueta)Sim-
--checkpointCriar ponto de verificação CRIU na origem antes de copiar (capturar o estado de memória do processo para restauro no fork)Não-
--immutableMarca o fork como somente leitura: ele recusa a montagem e mantém sua imagem estável em nível de bytes para sempre (um commit/base congelado para o delta push entre máquinas)Não-
--upMontar e iniciar os serviços após copiar (fork + mount + up num único comando)Não-
--no-waitCom --up: retorna assim que os contêineres iniciam; os healthchecks continuam em segundo plano (ideal para forks descartáveis)Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.16 replicate

Cria N réplicas de leitura de um repositório em segundos, independentemente do tamanho da base de dados. Faz UM único snapshot do datastore e, em seguida, N fork-attaches a tempo constante (copy-on-write, escritas locais descartáveis) distribuídos pelos nós do cluster, aplicando depois um overlay gerado: um PersistentVolume fixo por réplica, um StatefulSet e dois Services ({repo}-rw para o primário, {repo}-ro para as réplicas). As réplicas são cópias PONTUAIS no tempo: sem stream de replicação, sem read-your-writes; cada réplica executa uma passagem de recuperação de falhas (crash-recovery) antes de começar a servir. Atualize-as com 'repo replicate refresh'. Os conjuntos de réplicas são estado gerido: consulte 'repo replicate status' e remova-os com 'repo replicate remove'.

status

Mostra os conjuntos de réplicas geridos: réplicas, nós de alojamento, datastores de fork, snapshot e datas/horas de atualização.

rdc repo replicate status <ref>

remove

Remove um conjunto de réplicas: elimina os seus objetos k8s gerados (delimitado por labels), descarta os seus datastores de fork, elimina o seu snapshot e esquece o estado. Os passos de infraestrutura são best-effort, pelo que a remoção converge mesmo num cluster parcialmente desaparecido.

rdc repo replicate remove <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

refresh

Faz rolar cada réplica para um novo snapshot pontual, UMA de cada vez: reinicia o pod da réplica, descarta e refaz o fork do seu datastore sob o mesmo caminho, e deixa que a readiness a readmita. As restantes N-1 réplicas continuam a servir durante todo o processo.

rdc repo replicate refresh <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

6.17 canary

Executar uma NOVA imagem ao lado da estável e dividir o tráfego em produção entre ambas por percentagem (degrau 2 da escada de releases). Cria um Deployment + Service canary sobre OS MESMOS dados em produção (sem fork: utilizadores do canary sobre dados copiados por fork estariam a ler dados desatualizados e a escrever numa cópia condenada) e instrui o proxy da Rediacc a encaminhar para ele a percentagem indicada do tráfego do hostname estável. Um peso de 0 mantém o canary oculto; um peso de 100 corresponde à troca blue/green completa. Antes de cada alteração ao canary, é feito automaticamente um snapshot de grupo dos datastores do cluster (degrau 0 da escada de releases), como undo universal. A compatibilidade de esquema entre as duas versões (expand-contract) é da responsabilidade da aplicação. Para releases que QUEBREM o esquema, use antes o blue/green: faça fork do repositório (instantâneo, incluindo os dados), aponte para aqui o Service do fork com peso 100 e reverta reiniciando o pai intacto; as escritas feitas após a troca existem apenas na nova cópia, pelo que a janela de rollback é uma decisão de política.

status

Mostra os conjuntos de canary geridos: peso, imagens, Service estável e o snapshot de release-undo mais recente.

rdc repo canary status <ref>

weight

Altera a percentagem de tráfego encaminhado para um canary. Cria primeiro um novo snapshot de grupo de release-undo, depois reaplica o overlay; o proxy adota a nova divisão no próximo ciclo de atualização. Um peso de 100 envia todo o tráfego para a nova versão (a troca blue/green).

rdc repo canary weight <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--weight <percent>Percentagem de tráfego encaminhado para o canary (inteiro 0-100; 0 = oculto, 100 = troca total)Sim-
--debugAtivar saída de depuraçãoNão-

remove

Remove o Deployment e o Service de um canary (delimitado por labels); o Service estável volta a servir 100% do tráfego. Os snapshots de release-undo são mantidos; elimine-os com os comandos de snapshot do datastore.

rdc repo canary remove <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

create

Executa uma imagem NOVA ao lado da estável e envia-lhe uma percentagem do tráfego em produção. O canary partilha os dados em produção do repositório (sem fork), pelo que a compatibilidade de esquema entre as duas versões é da responsabilidade da aplicação. É feito primeiro um snapshot de grupo dos datastores do cluster, como undo.

rdc repo canary create <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--image <image>Nova imagem executada pelo Deployment do canary (sobre os dados em produção partilhados)Sim-
--port <port>Porta em que a aplicação escuta (deve corresponder ao Service estável)Sim-
--weight <percent>Percentagem de tráfego encaminhado para o canary (inteiro 0-100; 0 = oculto, 100 = troca total)Sim-
--service <name>Service estável com o qual dividir o tráfego (predefinição: o nome do repositório)Não-
--replicas <n>Número de réplicas do Deployment canary (predefinição: 1)Não-
--debugAtivar saída de depuraçãoNão-

6.18 resize

Redimensionar um repositório offline (suporta crescimento e redução). O repositório tem de ser desmontado primeiro ('repo down --unmount'). Para crescimento sem tempo de inactividade sem parar, use 'repo expand'.

rdc repo resize <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--size <size>Novo tamanho do repositório (por ex., 10G, 100G, 1T)Sim-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.19 expand

Expandir um repositório montado online (sem tempo de inactividade, apenas crescimento). Aumenta o contentor LUKS e o sistema de ficheiros enquanto os contentores continuam em execução. Não é possível reduzir: use 'repo resize' para isso (requer desmontagem).

rdc repo expand <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--size <size>Novo tamanho do repositório (por ex., 10G, 100G, 1T)Sim-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.20 trim

Recupera espaço da pool do datastore a partir de repositórios montados (online, sem tempo de inatividade). Os blocos eliminados dentro dos repositórios voltam à pool via fstrim. Sem uma ref, são aparados todos os repositórios montados em -m mais o próprio datastore. O fstrim é ignorado em repositórios com uma cópia de segurança ativa; a recuperação --docker é executada mesmo assim

rdc repo trim [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--dockerLiberar espaço do Docker (contêineres parados, imagens órfãs, cache de build); é executado mesmo com um snapshot de backup ativoNão-
--docker-volumesRemover também volumes Docker não utilizadosNão-
--report-onlyMostrar o estado de discard e a estimativa recuperável sem apararNão-
-m, --machine <name>Nome da máquina de destinoNão-
--debugAtivar saída de depuraçãoNão-

6.21 prune

Classifica o armazenamento Docker de um repositório e o recupera: imagens sem uso, cache de build, contêineres parados e diretórios overlay2 que nenhuma imagem ou contêiner referencia. É uma simulação, salvo com --apply. --apply recupera espaço pela API do Docker com o repositório online; --apply --offline também para o daemon Docker do repositório durante a execução e coloca os diretórios órfãos em quarentena. Sem ref, examina todos os repositórios montados em -m (somente simulação)

rdc repo prune [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--applyRecuperar espaço; sem esta opção a execução apenas informaNão-
--offlineParar o daemon Docker do repositório e colocar os diretórios órfãos em quarentena (requer --apply)Não-
--all-imagesRemover também as imagens com tag que nenhum contêiner usaNão-
--no-trimPular o fstrim depois de recuperarNão-
-y, --yesIgnorar pedido de confirmaçãoNão-
-m, --machine <name>Nome da máquina de destinoNão-
--debugAtivar saída de depuraçãoNão-

6.22 policy

Gerir a política de tamanho automática aplicada pelo mantenedor de armazenamento da máquina: aumentar a cota de um repositório online quando ele enche (nunca além de max-quota, nunca com o pool baixo) e executar trims agendados. Não há redução automática; para isso use 'repo resize'. Sem uma ref, é gerida a política predefinida de toda a máquina em -m

set

Define campos da política de tamanho. Apenas os flags passados são alterados; os demais campos guardados mantêm seus valores. Ativar o auto-crescimento exige --max-quota: o teto é seu consentimento explícito para superprovisionar o pool

rdc repo policy set [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--auto-grow <bool>Ativar o crescimento automático de cota online (true/false)Não-
--max-quota <size>Teto do auto-crescimento (ex. 200G); obrigatório para o auto-crescimentoNão-
--grow-threshold <percent>% de uso do sistema de arquivos que dispara um crescimento (padrão 85)Não-
--grow-step <step>Crescimento por passo: absoluto (10G) ou percentual da cota (20%)Não-
--auto-trim <bool>Ativar o trim agendado (true/false)Não-
--trim-interval <hours>Horas mínimas entre trims automáticos (padrão 24)Não-
-m, --machine <name>Nome da máquina de destinoNão-
--debugAtivar saída de depuraçãoNão-

get

Mostra a predefinição da máquina guardada, a substituição do repositório (com uma ref) e a política efetiva combinada sobre a qual o mantenedor atua

rdc repo policy get [ref] [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoNão-
--debugAtivar saída de depuraçãoNão-

6.23 push

Enviar repositório para outra máquina. Os destinos de armazenamento foram descontinuados; use `rdc backup snapshot` para uma cópia de segurança pontual. Para transferência entre máquinas, a imagem encriptada do repositório é copiada com o MESMO GUID, pelo que se trata de uma cópia de segurança ou migração, não de um fork. Para criar um fork independente, use 'repo fork' primeiro e depois envie. Uma cópia enviada fica como um ARTEFACTO de cópia de segurança: arranque-o no destino com 'backup restore <ref> --as <name> -m <target> --up'

rdc repo push <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--to <remote>Nome da máquina de destino (detectado automaticamente a partir da configuração)Não-
--to-machine <machine>—Não-
--provision <provider>Aprovisionar automaticamente a máquina de destino via fornecedor de cloud se não existirNão-
--checkpointCriar ponto de verificação CRIU antes da cópia de segurança (captura o estado de memória do processo para migração em directo)Não-
--forceForçar substituição de cópia de segurança existenteNão-
--bwlimit <limit>Limite de transferência: bytes por segundo, unidades decimais (12.5M = 12,5 MB/s), binárias (12Mi) ou bits (100Mbps). Sem valor, não há limiteNão-
--delta-base <guid>GUID de base imutável presente byte-a-byte idêntico em ambas as máquinas; transferir apenas os blocos alterados (máquina de destino). Omita para base automática sem intervençãoNão-
--strategy <strategy>Estratégia de delta de blocos ao usar uma base de delta: auto, physical ou sharedNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.24 pull

Receber repositório de outra máquina. As origens de armazenamento foram descontinuadas; use `rdc backup restore` para uma restauração pontual. O tipo de origem é detectado automaticamente a partir da configuração. Use --up para implementar após a recepção.

rdc repo pull <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--from <remote>Nome da máquina de origem (detectado automaticamente a partir da configuração)Não-
--from-machine <machine>—Não-
--forceForçar substituição do repositório existenteNão-
--upApós a recepção, montar e implementar o repositório nesta máquinaNão-
--bwlimit <limit>Limite de transferência: bytes por segundo, unidades decimais (12.5M = 12,5 MB/s), binárias (12Mi) ou bits (100Mbps). Sem valor, não há limiteNão-
--delta-base <guid>GUID de base imutável presente byte-a-byte idêntico em ambas as máquinas; receber apenas os blocos alterados (máquina de origem)Não-
--strategy <strategy>Estratégia de delta de blocos ao usar uma base de delta: auto, physical ou sharedNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.25 migrate

Migra um repositório em direto de uma máquina para outra com o mínimo de tempo de inatividade. rsync em duas fases: transferência em massa enquanto está em execução, seguida de uma breve paragem para sincronização delta. Move o repositório inteiro (o encaminhamento é redirecionado para o novo destino) e, assim que a mudança for bem-sucedida, elimina as imagens de origem (use --keep-source para as manter). Suporta checkpoint CRIU para migração do estado de memória dos processos e aprovisionamento automático das máquinas de destino

rdc repo migrate <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--to <place>Máquina ou cluster de destinoSim-
--provision <provider>Aprovisionar automaticamente o destino via fornecedor de cloud (por ex., hetzner, linode)Não-
--bwlimit <limit>Limite de transferência: bytes por segundo, unidades decimais (12.5M = 12,5 MB/s), binárias (12Mi) ou bits (100Mbps). Sem valor, não há limiteNão-
--checkpointMigração em directo CRIU: capturar e restaurar o estado de memória dos processosNão-
--delta-base <guid>GUID de base imutável para o delta do corte (avançado; por omissão usa a base da Fase 1)Não-
--strategy <strategy>Estratégia de delta de blocos para o corte: auto, physical ou sharedNão-
--skip-dnsNão comutar os registos DNS após a migraçãoNão-
--keep-sourceManter as imagens de origem após uma mudança bem-sucedida (por omissão são eliminadas; as cópias remanescentes não são endereçáveis por nenhum registo de configuração e o reconcile assinala-as como órfãs)Não-
--debugAtivar saída de depuraçãoNão-

6.26 sync

Sincronizar repositórios e ficheiros (push/pull em volume, transferência de ficheiros)

upload

Carregar ficheiros para um repositório via rsync sobre SSH (transferência delta). Use --mirror para eliminar ficheiros remotos extra, --dry-run para pré-visualizar, --exclude para ignorar padrões.

rdc repo sync upload <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--local <paths...>Um ou mais caminhos de ficheiros ou diretórios locais (predefinição: diretório atual)Não-
--remote <path>Caminho do subdiretório remoto dentro do repositórioNão-
--remote-file <path>Caminho único do ficheiro remoto (relativo à raiz do repositório) para envio. Mutuamente exclusivo com --remote.Não-
--mirrorModo espelho - eliminar ficheiros remotos não presentes localmenteNão-
--verifyVerificar ficheiros com checksums após a sincronizaçãoNão-
--confirmPré-visualizar alterações e pedir confirmação antes de sincronizarNão-
--exclude <patterns...>Padrões a excluir da sincronizaçãoNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-

download

Descarregar ficheiros de um repositório via rsync sobre SSH (transferência delta). Use --mirror para eliminar ficheiros locais extra, --dry-run para pré-visualizar, --exclude para ignorar padrões.

rdc repo sync download <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--local <path>Caminho do diretório local (predefinição: diretório atual)Não-
--remote <path>Caminho do subdiretório remoto dentro do repositórioNão-
--remote-file <path>Caminho do ficheiro remoto dentro do repositório (alternativa a --remote para transferências de ficheiro único)Não-
--mirrorModo espelho - eliminar ficheiros locais não presentes no remotoNão-
--verifyVerificar ficheiros com checksums após a sincronizaçãoNão-
--confirmPré-visualizar alterações e pedir confirmação antes de sincronizarNão-
--exclude <patterns...>Padrões a excluir da sincronizaçãoNão-
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-

status

Comparação em modo de simulação dos ficheiros locais e remotos (mostra o que seria transferido sem transferir de facto)

rdc repo sync status <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--local <path>Caminho do diretório local (predefinição: diretório atual)Não-
--remote <path>Caminho do subdiretório remoto dentro do repositórioNão-
--remote-file <path>Caminho do ficheiro remoto dentro do repositório (alternativa a --remote para transferências de ficheiro único)Não-

6.27 tunnel

Criar um túnel de reencaminhamento de porta SSH para a porta de um contentor numa máquina remota. Detecta automaticamente o contentor e a porta quando não há ambiguidade. O túnel permanece activo até premir Ctrl+C.

rdc repo tunnel <ref> [options]
FlagDescriçãoObrigatórioPredefinição
-c, --container <name>Nome do contentor (detectado automaticamente se apenas um estiver em execução)Não-
--port <port>Porta do contentor remoto a reencaminharNão-
--local <port>Porta local (por omissão, igual à porta remota)Não-
--url-onlyImprimir apenas o URL local quando o túnel estiver pronto (legível por máquina)Não-

6.28 secret

Gerir segredos por repositório injectados no momento da implementação. Apenas de escrita: get devolve apenas o resumo (nunca o texto simples); set/unset requerem correspondência do resumo --current ou --rotate-secret. Dois modos de entrega: env (REDIACC_SECRET_<KEY>) e file (tmpfs em /var/run/rediacc/net-<networkId>/secrets/<KEY> via `secrets:` do compose). Os segredos nunca entram na imagem LUKS encriptada; os forks não herdam nenhum.

get

Mostrar o resumo SHA-256 de um segredo. O valor em texto simples nunca é devolvido por design (apenas de escrita). Use --current numa operação set/unset subsequente para verificar um valor que já conhece, ou rode via `set --rotate-secret`.

rdc repo secret get <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--key <KEY>Chave do segredo em UPPER_SNAKE_CASE (máx. 64 caracteres). Será exposto como REDIACC_SECRET_<KEY> no modo env ou /run/secrets/<key> nos contentores no modo ficheiro.Sim-

list

Listar chaves e modos de segredos (nunca os valores, nunca os resumos).

rdc repo secret list <ref>

set

Definir ou sobrescrever um segredo. Os forks não herdam; defina no fork explicitamente. Em contexto de agente, requer correspondência do resumo --current (estilo passwd).

rdc repo secret set <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--key <KEY>Chave do segredo em UPPER_SNAKE_CASE (máx. 64 caracteres). Será exposto como REDIACC_SECRET_<KEY> no modo env ou /run/secrets/<key> nos contentores no modo ficheiro.Sim-
--value <value>Valor do segredo. Passe `-` para ler a partir de stdin (evita exposição no histórico da shell).Sim-
--mode <mode>Modo de entrega: 'env' (visível no ambiente do contentor, docker inspect) ou 'file' (ficheiro tmpfs, nunca em env). Por omissão: file.Nãofile
--current <value>Valor anterior em texto simples (pré-condição estilo passwd). Obrigatório para sobrescrever/remover; mutuamente exclusivo com --rotate-secret.Não-
--rotate-secretConfirmar rotação; ignorar a pré-condição --current (auditado como rotação). Use quando pretende rodar intencionalmente sem verificar o valor anterior.Não-

unset

Eliminar um segredo. Em contexto de agente, requer correspondência do resumo --current.

rdc repo secret unset <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--key <KEY>Chave do segredo em UPPER_SNAKE_CASE (máx. 64 caracteres). Será exposto como REDIACC_SECRET_<KEY> no modo env ou /run/secrets/<key> nos contentores no modo ficheiro.Sim-
--current <value>Valor anterior em texto simples (pré-condição estilo passwd). Obrigatório para sobrescrever/remover; mutuamente exclusivo com --rotate-secret.Não-
--rotate-secretConfirmar rotação; ignorar a pré-condição --current (auditado como rotação). Use quando pretende rodar intencionalmente sem verificar o valor anterior.Não-

6.29 admin

Verbos de administração e manutenção de repositórios.

archive

Gestão de registos de repositórios arquivados.

list:

Listar as credenciais de repositórios arquivados

rdc repo admin archive list

purge:

Eliminar permanentemente todas as credenciais arquivadas

rdc repo admin archive purge [name] [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-

restore:

Restaurar uma credencial de repositório arquivado

rdc repo admin archive restore <name> [options]
FlagDescriçãoObrigatórioPredefinição
--new-name <name>Novo nome do recursoNão-

validate

Validar a integridade do repositório (contentor LUKS, consistência do sistema de ficheiros, configuração). Use após encerramentos inesperados ou para verificar a integridade das cópias de segurança.

rdc repo admin validate <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

fsck

Valida as referências da configuração do CLI (branches, HEAD) contra os objetos realmente presentes numa máquina. Reporta referências pendentes (uma referência apontando para um objeto ausente) e commits órfãos (um commit imutável que nenhuma referência alcança). Somente leitura.

rdc repo admin fsck [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-

ownership

Alterar o UID de proprietário da directoria do repositório no volume montado (por omissão: 7111). Use quando os contentores precisam de um UID específico para aceder aos ficheiros do repositório.

rdc repo admin ownership <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--uid <uid>UID do proprietário (por omissão: 7111)Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

autostart

Gerir o arranque automático do repositório no arranque do sistema

enable:

Activar o arranque automático de um repositório (omita o nome para activar todos)

rdc repo admin autostart enable [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

disable:

Desactivar o arranque automático de um repositório (omita o nome para desactivar todos)

rdc repo admin autostart disable [ref] [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

list:

Listar os repositórios com arranque automático activado

rdc repo admin autostart list [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

template

Gerir e aplicar modelos de implementação (escreve docker-compose.yml, Rediaccfile e ficheiros adicionais). O Rediaccfile deve usar 'renet compose' (não 'docker compose'). As políticas de reinício são seguras (geridas automaticamente pelo watchdog do renet). O renet injeta automaticamente network_mode:host, capacidades CRIU e etiquetas rediacc. Definições perigosas (privileged, pid:host) são bloqueadas. Use 'list' para ver os modelos incorporados disponíveis e 'apply' para implementar um num repositório.

list:

Listar todos os modelos de implementação incorporados fornecidos com o CLI

rdc repo admin template list

apply:

Aplicar um modelo a um repositório. Use um nome de modelo incorporado (por ex., app-postgres) ou --file para um modelo JSON personalizado. Ciclo de vida do Rediaccfile: up() inicia os contentores (obtenha as imagens e gere as configurações aqui), down() para. Rediaccfile mínimo: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. IMPORTANTE: o Rediaccfile TEM de usar 'renet compose': 'docker compose' é rejeitado. VARIÁVEIS DE AMBIENTE: dois níveis: (a) shell do Rediaccfile: ${SVCNAME_IP} (por ex., APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) Dentro dos contentores: o renet injeta automaticamente as variáveis SERVICE_IP e REDIACC_NETWORK_ID. A reescrita de bind via eBPF trata o isolamento de IPs de forma transparente, pelo que as aplicações podem ligar-se a 0.0.0.0 e o kernel reescreve para o IP de loopback correto. As verificações de saúde podem usar localhost. network_mode:host é injetado e ports: são ignoradas. ARMAZENAMENTO: tanto os bind mounts ${REDIACC_WORKING_DIR}/... como os volumes Docker nomeados são seguros: a raiz de dados do Docker fica dentro do volume LUKS encriptado. POLÍTICA DE REINÍCIO: as políticas de reinício são seguras: o renet remove-as automaticamente para compatibilidade com CRIU e o watchdog trata da recuperação. Compose: NÃO adicione network_mode nem etiquetas rediacc.* (o renet injeta-as). Multi-projeto: coloque cada subprojeto no seu próprio subdiretório com o seu próprio Rediaccfile: o renet deteta-os automaticamente e executa-os por ordem. Encaminhamento HTTPS: (A) Rota automática (compatível com fork, recomendado): NÃO adicione traefik.enable. O renet gera automaticamente https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Adicione a etiqueta rediacc.service_port=<porta> para portas diferentes de 80. Cada fork obtém um domínio único. (B) Etiquetas Traefik (domínio personalizado, NÃO compatível com fork): traefik.enable=true, traefik.http.routers.<n>.rule=Host(`domínio`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<porta>. Para TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53

rdc repo admin template apply <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--template <name>Modelo a aplicarSim-
--file <path>Caminho para o ficheiro JSON de modelo personalizado ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): substitui o nome do modelo incorporadoNão-
--grand <name>Repositório de credenciais pai (resolve automaticamente o nome para GUID). Apenas para repositórios que partilham segredos com um pai.Não-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.30 promote

Substituir os dados do repositório pai pelos dados de um fork. O pai mantém a sua identidade (GUID, networkId, domínios, arranque automático, cadeia de cópia de segurança) mas recebe os dados actualizados do fork. Os dados de produção antigos são preservados como fork de cópia de segurança. Utilização: testar actualização no fork, verificar, e depois fazer takeover para produção.

rdc repo promote <fork-ref> [options]
FlagDescriçãoObrigatórioPredefinição
-y, --yesIgnorar pedido de confirmaçãoNão-
--debugAtivar saída de depuraçãoNão-
--skip-router-restartIgnorar o reinício do servidor de rotas após atualização do binárioNão-

6.31 logs

Mostra os logs de aplicação dos contentores de um repositório. Os repositórios docker são lidos a partir do próprio daemon Docker do repositório; os repositórios Kubernetes leem os logs dos pods no namespace do repositório. Se o repositório executar mais do que um contentor, indique qual pretende com --container.

rdc repo logs <ref> [options]
FlagDescriçãoObrigatórioPredefinição
-c, --container <name>Contentor a ler (apenas necessário quando o repositório executa mais do que um)Não-
-f, --followContinuar a transmitir novas linhas até interromperNão-
--lines <n>Quantas linhas de histórico mostrar (por omissão: 100)Não100
--timestampsPrefixar cada linha com o seu carimbo de data/horaNão-
--debugAtivar saída de depuraçãoNão-

6.32 exec

Executa um comando dentro de um contentor do repositório. O código de saída do próprio comando é propagado tal e qual, pelo que funciona em scripts e condicionais. Os repositórios docker executam-no através do daemon Docker do repositório; os repositórios Kubernetes executam-no no namespace do repositório.

rdc repo exec <ref> <cmd...> [options]
FlagDescriçãoObrigatórioPredefinição
-c, --container <name>Contentor onde executar (apenas necessário quando o repositório executa mais do que um)Não-
-i, --interactiveAtribuir um terminal (para um comando que o espera)Não-
-u, --user <user>Utilizador com o qual executar o comandoNão-
--debugAtivar saída de depuraçãoNão-

6.33 gpu

Concede a um repositório um dispositivo CDI (por exemplo nvidia.com/gpu=all) para que os seus contentores o possam pedir, ou revoga-o de novo. A máquina impõe a concessão; uma concessão exclusiva reserva o dispositivo para um único repositório.

grant

Permite que os contentores do repositório peçam um dispositivo CDI. Os nomes vêm de 'rdc machine gpu list'.

rdc repo gpu grant <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--device <cdi-name>Nome CDI completo do dispositivo (p. ex. nvidia.com/gpu=all)Sim-
--exclusiveReservar o dispositivo para este repositório: entretanto nenhum outro repositório o pode receberNão-
--debugAtivar saída de depuraçãoNão-

revoke

Retira um dispositivo CDI dos contentores do repositório. Os contentores que já o têm mantêm-no até reiniciarem.

rdc repo gpu revoke <ref> [options]
FlagDescriçãoObrigatórioPredefinição
--device <cdi-name>Nome CDI completo do dispositivo (p. ex. nvidia.com/gpu=all)Sim-
--debugAtivar saída de depuraçãoNão-

7. Jobs desanexados

Gerencia jobs desanexados em uma máquina: liste-os, verifique o status, reproduza ou acompanhe seus logs de eventos, cancele um deles ou remova os finalizados (garbage collection). Um job desanexado é executado sob o systemd na máquina, portanto sobrevive a uma queda de conexão e pode ser reconectado depois.

7.1 list

Lista os jobs desanexados em uma máquina, do mais recente ao mais antigo

rdc job list [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destino (omita para listar os tickets de jobs pendentes desta configuração)Não-

7.2 status

Mostra o status de um job desanexado

rdc job status <job-id> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destino (opcional quando esta configuração guarda um ticket do job)Não-

7.3 logs

Reproduz ou acompanha o log de eventos de um job desanexado

rdc job logs <job-id> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destino (opcional quando esta configuração guarda um ticket do job)Não-
-f, --followTransmite continuamente até o job terminarNão-
--since-line <n>Retoma após esta quantidade de linhas (a contagem que você já recebeu)Não-
--debugAtivar saída de depuraçãoNão-

7.4 cancel

Cancela um job desanexado em execução

rdc job cancel <job-id> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destino (opcional quando esta configuração guarda um ticket do job)Não-
-y, --yesIgnorar pedido de confirmaçãoNão-

7.5 gc

Remove jobs finalizados e seus logs

rdc job gc [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-
--older-than <duration>Coleta jobs finalizados há mais tempo que isso, em horas (padrão: 168)Não-
-y, --yesIgnorar pedido de confirmaçãoNão-

7.6 wait

Retomar o acompanhamento de um job a partir do seu ticket, confirmá-lo e sair com o código de saída do job

rdc job wait <job-id> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destino (opcional quando esta configuração guarda um ticket do job)Não-
--timeout <duration>Parar de esperar após esse tempo (30s, 5m, 2h; um número sozinho são segundos). O job continua em execução.Não-

8. Backup e Restauro

Gerir estratégias de cópia de segurança, as suas execuções agendadas e os artefactos que produzem: declarar uma estratégia para um repositório, executá-la ou restaurá-la a pedido, e inspecionar os arquivos que escreveu num destino de armazenamento.

8.1 browse

Lista os ficheiros que um repositório contém. Por predefinição, é uma leitura local, só de leitura, da imagem do repositório: sem servidor de conta e sem rede. Um repositório cifrado tem de estar montado, ou ter o ficheiro de chave implementado, antes de poder ser aberto; o browse indica-o em vez de não listar nada. Com --at <momento|snapshot>, lista em vez disso a lista de ficheiros guardada com um snapshot do armazém de blocos, sem o restaurar.

rdc backup browse <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--path <subdir>Limitar a listagem a esta subárvoreNão-
--depth <n>Limitar a descida a N níveis (0 para ilimitado)Não-
--limit <n>Número máximo de entradas a devolver (0 para ilimitado)Não-
`—at <timesnapshot>`Listar o snapshot feito neste momento ou antes, ou este id de snapshot (lê o armazém de blocos)Não
--debugAtivar saída de depuraçãoNão-

8.2 cancel

Cancelar uma cópia de segurança em curso numa máquina remota

rdc backup cancel [strategy] [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaSim-
--debugAtivar saída de depuraçãoNão-

8.3 list

Listar artefactos de cópia de segurança numa máquina.

rdc backup list [artifact-ref] [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaNão-
--path <subdir>Limita a listagem a um subdiretório; omite para listar todo o datastoreNão-
--debugAtivar saída de depuraçãoNão-

8.4 manifests

Listar os manifestos de snapshots de cópia de segurança registados no servidor

rdc backup manifests [repo-ref] [options]
FlagDescriçãoObrigatórioPredefinição
--limit <n>Linhas por página (padrão e máximo 500)Não-
--before <cursor>Cursor de página de uma listagem anterior (nextBefore)Não-
--include-deletedIncluir snapshots com exclusão adiada pendenteNão-

8.5 restore

Transforma um artefacto de cópia de segurança num repositório ativo. A localização é indicada aqui.

rdc backup restore <artifact-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--as <name>Nome para o repositório restaurado (por omissão, o nome do artefacto)Não-
-m, --machine <name>Nome da máquinaNão-
--datastore <name>Restaurar para este datastore com nome (é alojado pela máquina a que está anexado)Não-
--at <time>Restaurar um ponto no tempo: um ID de snapshot ou uma hora RFC3339 (restauro a partir do armazenamento fragmentado)Não-
--any-streamCom --at, considera também os snapshots escritos por outras máquinas e forks desta linhagem (por omissão, só este repositório na sua máquina de origem)Não-
--no-seedBuscar cada fragmento no armazenamento em vez de reutilizar âncoras locais ou imagens do repositório (prova que o armazenamento é legível)Não-
--allow-unopenableColocar a imagem mesmo que a frase secreta do repositório não a abra (um snapshot anterior a uma alteração da frase)Não-
--salvageContinuar apesar de chunks perdidos ou corrompidos e deixar as suas células como buracos (requer --as)Não-
--path <file-or-dir>Restaurar apenas este arquivo ou diretório do snapshot, sem restaurar o repositório inteiro (exige --at)Não-
--to <dir>Diretório onde colocar o caminho restaurado (padrão: a pasta de restaurações da máquina para o snapshot)Não-
--upImplementar o repositório restaurado após a transferênciaNão-
--health-window <seconds>Janela total da verificação de saúde, em segundos (por omissão 300)Não-
--health-timeout <seconds>Tempo limite por tentativa da verificação de saúde, em segundos (por omissão 30)Não-
-y, --yesIgnorar pedido de confirmaçãoNão-
--debugAtivar saída de depuraçãoNão-

8.6 retention

Mostra a política de retenção de snapshots aplicada pelo servidor.

clear

Remove a política declarada, para que volte a aplicar-se o valor predefinido do plano ou do servidor.

rdc backup retention clear <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--stream <id>Aplicar apenas a este fluxo de backup (um id de fluxo); sem ele, vale o padrão do repositório inteiroNão-

set

Indique quantos snapshots manter. Cada campo é substituído por completo, nunca combinado.

rdc backup retention set <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--keep-last <n>Manter esta quantidade dos snapshots mais recentesNão-
--keep-hourly <n>Manter o snapshot mais recente de cada uma destas horasNão-
--keep-daily <n>Manter o snapshot mais recente de cada um destes diasNão-
--keep-weekly <n>Manter o snapshot mais recente de cada uma destas semanasNão-
--keep-monthly <n>Manter o snapshot mais recente de cada um destes mesesNão-
--keep-yearly <n>Manter o snapshot mais recente de cada um destes anosNão-
--keep-within <duration>Manter todo snapshot dentro deste tempo do mais recente, p. ex. 24hNão-
--stream <id>Aplicar apenas a este fluxo de backup (um id de fluxo); sem ele, vale o padrão do repositório inteiroNão-

preview

Mostra quais snapshots a próxima limpeza apagaria e quanto espaço liberaria.

rdc backup retention preview <repo-ref>

8.7 run

Acionar uma cópia de segurança imediatamente numa máquina remota

rdc backup run [strategy] [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaSim-
--debugAtivar saída de depuraçãoNão-

8.8 schedule

Implementar o agendamento de cópias de segurança numa máquina remota (temporizadores systemd)

rdc backup schedule [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaSim-
--dry-runPré-visualizar as unidades geradas sem implementarNão-
--forceProsseguir mesmo que uma cópia de segurança esteja em curso (a nova unidade aplica-se no próximo ciclo; a invocação em curso mantém a unidade antiga)Não-
--reset-failedLimpar estado falhado nos serviços afetados após uma implementação bem-sucedida (desativado por predefinição, preserva o sinal de falha)Não-
--debugAtivar saída de depuraçãoNão-

8.9 snapshot

Enviar um snapshot para o armazenamento fragmentado: primeiro o inventário completo, depois as células alteradas

rdc backup snapshot <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--reseedDesconfiar da âncora local e reenviar um inventário completo (reenvia tudo e volta a debitar a quota)Não-
--dry-runApenas planear: sem envio. Reporta o que se moveriaNão-
--coldPara os contêineres, congela, reinicia e só então envia. Custa uma parada real curta em troca de um snapshot consistente com a aplicação; não pode ser combinado com --dry-runNão-
--accept-identity-changeAceitar esta imagem como nova referência quando a sua identidade LUKS mudou ou ela encolheu; envia um snapshot completoNão-
--bwlimit <rate>Limite de envio: bytes por segundo, unidades decimais (12.5M = 12,5 MB/s), binárias (12Mi) ou bits (100Mbps). Sem valor, não há limiteNão-
--parallelism <n>Quantos blocos são enviados ao mesmo tempo (padrão 4)Não-
--read-bwlimit <rate>Limite de leitura para o hash e a leitura de células: mesmas unidades de --bwlimit; padrão 50M, 0 = sem limiteNão-
--hash-parallelism <n>Quantas células são processadas com hash ao mesmo tempo (padrão 1; 0 = uma por CPU, até 16)Não-
--cpu-limit <percent>Teto de CPU deste snapshot: percentagem de todos os núcleos, 1-100 (padrão 50; 100 = sem teto)Não-
--debugAtivar saída de depuraçãoNão-

8.10 status

Mostrar estado da cópia de segurança e estado do temporizador numa máquina remota

rdc backup status [strategy] [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaSim-
--debugAtivar saída de depuraçãoNão-

8.11 strategy

Gerir estratégias de cópia de segurança com nome (modos hot/cold, destinos, agendamento)

set

Criar ou actualizar uma estratégia de cópia de segurança

rdc backup strategy set <strategy> [options]
FlagDescriçãoObrigatórioPredefinição
--destination <name>Nome do destino dentro da estratégia. Cria um destino de armazenamento fragmentado da RediaccNão-
--cron <expression>Agendamento cron (por ex., "0 * * * *" para de hora em hora)Não-
--mode <mode>Modo de cópia de segurança: "hot" tira o snapshot com tudo em execução, "cold" para os contentores durante o momento do snapshotNão-
--bwlimit <limit>Limite de largura de banda de envio em bytes por segundo, com sufixo K/M/G opcional (por ex., "6M", "500K")Não-
--read-bwlimit <limit>Limite de leitura para os snapshots desta estratégia: mesmas unidades de --bwlimit; none remove o limiteNão-
--cpu-limit <percent>Teto de CPU dos snapshots desta estratégia: percentagem de todos os núcleos, 1-100 (padrão 50); none remove-oNão-
--include <repos>Fazer cópia de segurança apenas destes repositórios (nomes separados por vírgula)Não-
--exclude <repos>Excluir estes repositórios da cópia de segurança (nomes separados por vírgula)Não-
--retention <spec>Retenção de snapshots, por exemplo last=7,daily=7,weekly=4,monthly=6 ("none" a remove)Não-
--rpo <duration>Meta de proteção declarada, por exemplo 15m (mínimo 5m; none a remove)Não-
--repo-rpo <ref=duration>Meta por repositório como <ref>=<duração>, repetível (none a remove); name:* é a famíliaNão-
--repo-cell-size <ref=size>Tamanho de célula por repositório como <ref>=<tamanho>, repetível. Uma mudança semeia o repositório de novoNão-
--no-estimatePular a estimativa de variação e custoNão-
--dry-runMostrar o que mudaria sem gravar nadaNão-
--enableActivar a estratégia ou destinoNão-
--disableDesactivar a estratégia ou destinoNão-

bind

Vincular uma estratégia de cópia de segurança a uma máquina para que o seu agendamento seja implementado nela

rdc backup strategy bind <strategy> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-

unbind

Desvincular uma estratégia de cópia de segurança de uma máquina

rdc backup strategy unbind <strategy> [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquina de destinoSim-

remove

Remover uma estratégia ou destino de cópia de segurança

rdc backup strategy remove <strategy> [options]
FlagDescriçãoObrigatórioPredefinição
--destination <name>Remover apenas este destino (mantém os outros destinos)Não-
--unbindRemover também a estratégia de todas as máquinas que a associamNão-

list

Listar todas as estratégias de cópia de segurança

rdc backup strategy list

show

Mostrar os detalhes de uma estratégia de cópia de segurança

rdc backup strategy show [strategy]

8.12 reconcile

Redefine o registro de bytes armazenados de um repositório para o que o armazenamento realmente contém (nunca apaga um fragmento)

rdc backup reconcile [repo-ref] [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runMostrar os números sem alterar o registroNão-
--checkSimulação que termina com código 1 quando o registro difere do armazenamentoNão-

8.13 usage

Mostrar a quota de armazenamento de cópias de segurança, os bytes armazenados e o uso por repositório

rdc backup usage

8.14 verify

Verificar a âncora de cópia de segurança de um repositório face ao armazenamento fragmentado

rdc backup verify <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--deepRecalcular o hash de cada célula registada (verificação completa) em vez de uma verificação por amostragemNão-
--storePedir ao servidor que recalcule o hash de cada bloco guardado deste repositório e indique os que faltam ou estão corrompidosNão-
--restore-testRestaurar o snapshot da âncora com um nome descartável diretamente do armazenamento, compará-lo com a âncora, registar o resultado e apagar a cópiaNão-
--debugAtivar saída de depuraçãoNão-

8.15 snapshots

Gerenciar os snapshots armazenados

delete

Apaga um snapshot armazenado. Os dados exclusivos dele são liberados na próxima coleta de lixo.

rdc backup snapshots delete <repo-ref> <snapshot-id>

8.16 download

Copia imagens de repositório de uma máquina para um diretório local ou um disco externo. Cada execução cria um snapshot novo, mantido apenas enquanto a sessão durar, atualiza a cópia local no lugar por delta do rsync, retoma após uma interrupção e verifica o resultado por sha256.

rdc backup download [refs...] [options]
FlagDescriçãoObrigatórioPredefinição
--to <dir>Diretório existente e gravável que recebe <machine>/<name>.<tag>.img (nunca é criado)Sim-
--allCopiar todos os repositórios grand da máquina indicada por -mNão-
-m, --machine <name>Nome da máquinaNão-
--include-forksCom --all, copiar também os forksNão-
--bwlimit <rate>Limite de largura de banda da rede, como 100Mbps ou 12.5M (padrão: sem limite)Não-
--checkpointFazer checkpoint e congelar o repositório antes do snapshot (backup a quente)Não-
--retries <n>Novas tentativas durante a execução após uma falha de rede (padrão: 3)Não-
--skip-verifyIgnorar a comparação sha256 após o rsync; a soma de verificação do próprio rsync continua a correrNão-
--skip-space-checkAvisar em vez de recusar quando o destino pode não ter espaço livre suficienteNão-
--storeReconstrói a imagem cifrada diretamente do armazém de backups, sem máquina. Requer um token de API com o escopo backup:read + backup:restore em REDIACC_TOKENNão-
`—at <timesnapshot>`Com --store, o snapshot a obter: um horário (ISO 8601) ou um id de snapshot (padrão: o mais recente)Não

8.17 upload

Envia para uma máquina uma imagem de repositório local, criada por 'rdc backup download', e regista-a como novo repositório. A transferência retoma após uma interrupção, e a máquina verifica o sha256 e o cabeçalho LUKS antes de colocar a imagem.

rdc backup upload <image-file> [options]
FlagDescriçãoObrigatórioPredefinição
--to <machine>Máquina que recebe a imagemSim-
--as <name>Nome do novo repositório (padrão: o nome do repositório da imagem)Não-
--datastore <name>Colocar a imagem neste datastore com nome em vez do padrão da máquinaNão-
--from-repo <name>Repositório da configuração que fornece a credencial e a linhagem quando o ficheiro de estado se perdeu ou indica um repositório desconhecidoNão-
--bwlimit <rate>Limite de largura de banda da rede, como 100Mbps ou 12.5M (padrão: sem limite)Não-
--retries <n>Novas tentativas durante a execução após uma falha de rede (padrão: 3)Não-
--upIniciar o repositório depois de registadoNão-
--skip-verifyIgnorar a comparação da imagem local com o sha256 registado no downloadNão-
--debugAtivar saída de depuraçãoNão-

8.18 purge

Apaga de uma vez todos os snapshots de backup armazenados de um repositório no armazenamento de blocos. O repositório em si é mantido.

rdc backup purge <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runMostrar o que seria feito sem efetuar alteraçõesNão-
-y, --yesIgnorar pedido de confirmaçãoNão-
--cancelCancelar uma remoção total adiada antes de ter efeitoNão-

8.19 check

Comprova que um snapshot abre com a frase secreta restaurando um ficheiro

rdc backup check <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--path <file>O ficheiro a restaurar e comparar (predefinição: o menor ficheiro não vazio)Não-
--debugAtivar saída de depuraçãoNão-

8.20 repair

Reenviar a partir da âncora desta máquina os chunks perdidos ou errados

rdc backup repair <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--dry-runIndica o que seria apagado e reenviado; não altera nadaNão-
--debugAtivar saída de depuraçãoNão-

8.21 toc-key

Gerir a chave da listagem de navegação de um repositório

rdc backup toc-key

8.22 churn

Mede quanto a imagem de um repositório muda entre execuções, projeta o envio por tamanho de célula e recomenda um. Uma base reflink fica na máquina durante a medição e é sempre removida.

rdc backup churn <repo-ref> [options]
FlagDescriçãoObrigatórioPredefinição
--samples <n>Amostras medidas a coletar (padrão 3)Não-
--interval <duration>Espera entre as sondas, por exemplo 10m (padrão 10m)Não-
--debugAtivar saída de depuraçãoNão-

8.23 immutability

Mostrar ou definir a janela de exclusão adiada dos backups armazenados

show

Mostrar a janela de exclusão adiada em vigor

rdc backup immutability show

set

Definir a janela de exclusão adiada em dias (0 a 30)

rdc backup immutability set <days>

8.24 undelete

Cancelar a exclusão adiada de um snapshot antes de ter efeito

rdc backup undelete <snapshot-id>

9. Integração com VS Code

Abrir o VS Code com Remote SSH para uma máquina ou repositório com ambiente isolado por repositório. Mesma ligação SSH que `term` mas inicia o VS Code em vez do terminal. Subcomandos principais: connect (ou atalho posicional), list (mostrar ligações configuradas), cleanup (remover entradas de configuração SSH), check (verificar instalação do VS Code).

9.1 connect

Abrir o VS Code numa máquina ou dentro de um repositório.

rdc vscode connect <target> [options]
FlagDescriçãoObrigatórioPredefinição
-f, --folder <path>Caminho da pasta remota a abrirNão-
--url-onlyImprimir o URI do VS Code em vez de o lançarNão-
-n, --new-windowAbrir numa nova janela do VS CodeNão-
--skip-env-setupIgnorar configuração do ambiente remotoNão-
--insidersUsar definições do VS Code InsidersNão-
--browserServir o VS Code para browser a partir da sandbox do repositório (sem VS Code local)Não-
--no-openImprimir o URL sem abrir o browser localNão-
--local <port>Porta local (por omissão, igual à porta remota)Não-
--server-provider <id>Implementação do servidor VS Code para browser (openvscode, code-server)Não-
--server-archive <file>Caminho do arquivo tar do servidor pré-colocado na máquina (instalações sem ligação à internet)Não-

9.2 list

Listar ligações SSH do VS Code configuradas

rdc vscode list

9.3 cleanup

Remover configurações SSH do VS Code

rdc vscode cleanup [options]
FlagDescriçãoObrigatórioPredefinição
--allRemover todas as configurações SSH do rediaccNão-
-c, --connection <name>Remover ligação específicaNão-

9.4 check

Verificar instalação e configuração do VS Code

rdc vscode check [options]
FlagDescriçãoObrigatórioPredefinição
--insidersUsar definições do VS Code InsidersNão-

9.5 serve

Gerir o servidor VS Code para browser dentro da sandbox

status

Mostrar se o servidor VS Code para browser está em execução

rdc vscode serve status <target> [options]
FlagDescriçãoObrigatórioPredefinição
--server-provider <id>Implementação do servidor VS Code para browser (openvscode, code-server)Não-

stop

Parar o servidor VS Code para browser

rdc vscode serve stop <target> [options]
FlagDescriçãoObrigatórioPredefinição
--server-provider <id>Implementação do servidor VS Code para browser (openvscode, code-server)Não-

10. Acesso SSH por Terminal

Abre um terminal SSH para uma máquina ou um repositório. O destino é um nome de máquina ou uma ref de repositório, e o contexto do repositório (DOCKER_HOST, diretório de trabalho, ambiente) é configurado automaticamente. Use `-c` para executar um único comando de forma não interativa. Para logs de contentor ou um comando pontual num contentor, use `repo logs` e `repo exec`. Para o VS Code, use `vscode`.

10.1 connect

Abrir uma shell numa máquina, ou dentro de um repositório com o seu Docker configurado.

rdc term connect <target> [options]
FlagDescriçãoObrigatórioPredefinição
-c, --command <cmd>Executar um comando em vez do shell interativoNão-
--externalForçar abertura numa janela de terminal externaNão-
--reset-homeRepor a sobreposição home por repositório para um início limpoNão-

11. Comandos Rápidos (Atalhos)

11.1 run

AVISO: comando de baixo nível destinado apenas a depuração e experimentação, não a produção. Para o uso normal existem os comandos de nível superior (repo up, repo down, etc.). Executa uma função do renet em bruto numa máquina.

rdc run

11.2 trace

Rastrear uma tarefa (atalho para: queue trace)

rdc trace

11.3 cancel

Cancelar uma tarefa (atalho para: queue cancel)

rdc cancel

11.4 retry

Repetir uma tarefa falhada (atalho para: queue retry)

rdc retry

12. Gestão de Subscrições

Gerir licenciamento e tokens de subscrição. Inicie sessão com login, inspecione com status, reemita licenças com refresh.

12.1 login

Autenticar via browser ou token de API

rdc subscription login [options]
FlagDescriçãoObrigatórioPredefinição
-t, --token <token>Token de API (rdt_...). Passe `-` para o ler a partir de stdin (fica fora da lista de processos).Não-
--password-stdinEntrar sem navegador com a senha da conta lida de stdin (exige REDIACC_LOGIN_EMAIL)Não-
--server <url>URL do servidor de contaNão-

12.2 logout

Apagar token de subscrição armazenado

rdc subscription logout

12.3 proxy-token

Emitir um token proxy:exec de curta duração a partir do login deste dispositivo, para usar com --proxy

rdc subscription proxy-token [options]
FlagDescriçãoObrigatórioPredefinição
--jsonImprimir JSON com o token e o respectivo expiresAtNão-

12.4 status

Mostrar a subscrição e o estado de licença de uma máquina.

rdc subscription status [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaNão-

12.5 refresh

Renovar licenças a partir do servidor de conta.

rdc subscription refresh [options]
FlagDescriçãoObrigatórioPredefinição
-m, --machine <name>Nome da máquinaNão-
--repo <ref>Ref do repositório: nome, ou nome:etiqueta, opcionalmente com @machine (por exemplo shop ou shop:test)Não-

13. Atualizações da CLI

Verificar novas versões do CLI e aplicar atualizações. Suporta --check-only para verificar sem instalar e --force para atualizar mesmo que já esteja na versão mais recente.

rdc update [options]
FlagDescriçãoObrigatórioPredefinição
--forceForçar atualização mesmo que já esteja na versão mais recenteNão-
--check-onlyApenas verificar atualizações sem transferirNão-
--rollbackReverter para a versão anteriorNão-
--statusMostrar estado e diagnósticos da atualização automáticaNão-
--channel <channel>Definir canal de versão (stable ou edge)Não-

14. Créditos de Terceiros

Imprimir os componentes de terceiros incluídos com o rdc: os binários que o renet incorpora e transporta (CRIU, rsync), o runtime Node.js incorporado, e as dependências npm incluídas. Mostra versões, identificadores de licença SPDX, e os URLs de arquivo de código-fonte da versão exata exigidos para conformidade com a GPL. Use --licenses para imprimir o texto completo THIRD_PARTY_LICENSES incluído nas compilações de lançamento.

rdc credits [options]
FlagDescriçãoObrigatórioPredefinição
--licensesImprimir o texto completo THIRD_PARTY_LICENSES incluído nas compilações de lançamentoNão-

15. Diagnóstico do Sistema

Executar verificações de diagnóstico ao ambiente do CLI: versão do Node.js, disponibilidade do binário renet, validade do ficheiro de configuração, estado das chaves SSH e conectividade de rede. Produz um relatório de saúde estruturado com indicadores de aprovação/falha.

rdc doctor

16. Ferramentas locais

Gerencia as ferramentas locais que o rdc executa nesta máquina. `rdc tools install tofu` baixa a versão fixada do OpenTofu, confere o SHA-256 com o checksum embutido no rdc antes de extrair e coloca o binário no diretório de ferramentas do rdc. `rdc tools list` mostra cada ferramenta com a versão e onde foi encontrada.

16.1 install

Baixa a versão do OpenTofu fixada nesta CLI, verifica o checksum SHA-256 e a instala no diretório de ferramentas do rdc. Se o checksum não bater, o download é apagado e nada é instalado. O Terraform nunca é instalado; se já houver um no PATH, ele é usado como está.

rdc tools install <tool> [options]
FlagDescriçãoObrigatórioPredefinição
--forceReinstalar mesmo que a versão fixada já esteja presenteNão-

16.2 list

Lista o motor de provisionamento que o rdc executaria (OpenTofu ou Terraform) e cada versão do OpenTofu no diretório de ferramentas do rdc, com versão, origem e caminho.

rdc tools list

17. Operações de VM Locais

Provisionamento e gestão de VMs locais com KVM/QEMU/Hyper-V (plataforma detetada automaticamente). Não se destina a máquinas remotas. Use `machine` para esse efeito. Subcomandos principais: up (iniciar VMs), down (parar), status (listar VMs em execução), ssh (ligar a VM), setup (instalar pré-requisitos), check (verificar disponibilidade do anfitrião).

17.1 up

Provisionar cluster de VMs localmente

rdc ops up [options]
FlagDescriçãoObrigatórioPredefinição
--forceForçar reinício de todas as VMsNão-
--parallelCriar VMs em paraleloNão-
--basicCluster mínimo (bridge + 1 worker)Não-
--liteIgnorar provisionamento de VMs (apenas estado)Não-
--skip-orchestrationIgnorar orquestração do clusterNão-
--backend <backend>Backend de virtualização (kvm|qemu, detetado automaticamente)Não-
--os <name>Sistema operativo da VM (ex.: ubuntu-24.04, debian-13)Não-
--debugAtivar saída de depuraçãoNão-

17.2 down

Destruir cluster de VMs

rdc ops down [options]
FlagDescriçãoObrigatórioPredefinição
--backend <backend>Backend de virtualização (kvm|qemu, detetado automaticamente)Não-
--debugAtivar saída de depuraçãoNão-

17.3 status

Mostrar estado do cluster de VMs

rdc ops status [options]
FlagDescriçãoObrigatórioPredefinição
--backend <backend>Backend de virtualização (kvm|qemu, detetado automaticamente)Não-

17.4 ssh

Acesso SSH a uma VM

rdc ops ssh [options]
FlagDescriçãoObrigatórioPredefinição
--vm-id <id>ID da máquina virtualSim-
-c, --command <cmd>Executar um comando em vez do shell interativoNão-
--backend <backend>Backend de virtualização (kvm|qemu, detetado automaticamente)Não-
--user <user>Nome de utilizador SSH para ligação à VMNão-

17.5 setup

Instalar pré-requisitos de virtualização

rdc ops setup [options]
FlagDescriçãoObrigatórioPredefinição
--debugAtivar saída de depuraçãoNão-

17.6 check

Verificar pré-requisitos de virtualização

rdc ops check

18. Serviço executor

Executa este processo como executor para que os clientes possam executar comandos através dele em vez de se conectarem eles próprios via SSH

rdc serve [options]
FlagDescriçãoObrigatórioPredefinição
-p, --port <port>Porta para escutarNão8080
--host <host>Endereço ao qual vincularNão0.0.0.0
--mode <mode>Posicionamento: daemon (host do cliente) ou containerNãodaemon

Mensagens de Erro Comuns

Quando algo corre mal, a CLI fornece mensagens de erro claras:

ErroSignificado
Autenticação necessária. Execute: rdc subscription loginPrecisa de iniciar sessão primeiro
Nenhuma configuração ativa. Crie uma com: rdc config init <name>Nenhuma configuração está ativa. Crie uma com `rdc config init`
Permissão negadaA sua conta não tem as permissões necessárias
Nome da máquina necessário. Use --machine <name>Especifique uma máquina com `--machine` ou defina um valor predefinido na configuração
Nome da equipa necessário. Use --team ou defina o padrão com: rdc config set team <name>Especifique uma equipa com `--team` ou defina um valor predefinido na configuração
Nome da região necessário. Use --region ou defina o padrão com: rdc config set region <name>Especifique uma região com `--region` ou defina um valor predefinido na configuração

Formatos de Saída

Todos os comandos de listagem/obtenção suportam múltiplos formatos de saída via `--output`:

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

Isto facilita a integração da CLI Rediacc em scripts, pipelines de CI/CD e fluxos de automação.