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:
| Flag | Descrição |
|---|---|
--output | Formato de saída (table|json|yaml|csv) |
--config | Usar configuração específica para este comando |
--lang | Substituição de idioma ({{languages}}) |
--force | Ignorar 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--dry-run | Pré-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-only | Restringir 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-only | Restringir à 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-only | Restringir 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-archived | Elimina 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-repos | Remove 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]
| Flag | Descrição | Obrigatório | Predefiniçã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 mestra | Não | - |
--server <url> | URL do servidor de conta | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--reveal | Mostrar 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--key <path> | Caminho para o ficheiro de chave privada SSH | Sim | - |
--embed | Incorporar o conteúdo da chave na configuração em vez de guardar o caminho | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--headless | Usar fluxo de código de dispositivo (para servidores sem interface gráfica) | Não | - |
--password | Inscreva-se em modo headless com um password slot pré-aprovisionado (sem browser) | Não | - |
--api-url <url> | URL do servidor de conta | Não | - |
--force | Substituir o conteúdo local divergente pela cópia do servidor sem confirmação | Não | - |
disable
Desligar do armazenamento remoto e guardar a configuração localmente
rdc config remote disable
status
Mostrar o estado da ligação remota
rdc config remote status
refresh
Forçar a re-obtenção da configuração a partir do armazenamento remoto
rdc config remote refresh
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--pointer <pointer> | Ponteiro JSON para o campo (por ex., /credentials/cfDnsApiToken) | Sim | - |
--reveal | Mostrar texto simples para valores sensíveis (apenas TTY interactivo; auditado) | Não | - |
--digest | Imprimir 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]
| Flag | Descrição | Obrigatório | Predefiniçã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]
| Flag | Descrição | Obrigatório | Predefiniçã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íveis | Não | - |
rotate
Rodar um valor sensível sem --current. Apenas TTY interactivo; auditado explicitamente.
rdc config field rotate [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--pointer <pointer> | Ponteiro JSON para o campo sensível (por ex., /credentials/cfDnsApiToken) | Sim | - |
--new <value> | Novo valor | Sim | - |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--sensitive | Mostrar 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--reveal | Mostrar texto simples para valores sensíveis (apenas TTY interactivo; auditado) | Não | - |
--dump | Imprimir 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 --apply | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--machine <m...> | Limitar a reconciliação a estas máquinas | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Não | - |
--accept-observed | Reescreve 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--api-url <url> | URL do servidor de conta | Não | - |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--size <size> | Novo tamanho (por exemplo 200G) | Sim | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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 local | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Máquina onde criar o datastore | Sim | - |
--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ão | local |
--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 | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--to <machine> | Máquina à qual anexar o datastore | Sim | - |
--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 local | Não | - |
--no-auto | Não voltar a anexar este datastore automaticamente ao arrancar | Não | - |
--force | Forçar a remoção de uma máquina obsoleta que não libertou o datastore corretamente | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--discard | Descartar um fork de escritas locais e o seu overlay. Os dados não são recuperáveis. | Não | - |
-y, --yes | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--snapshot <label> | Etiqueta do snapshot (por omissão: um carimbo de data/hora UTC) | Não | - |
--debug | Ativar saída de depuração | Não | - |
list
Listar os snapshots de um datastore.
rdc datastore snapshot list <datastore> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Não | - |
--force | Eliminar mesmo que ainda existam repositórios a apontar para ele. Os seus dados são eliminados com ele. | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--search <text> | Pesquisar em {{field}} | Não | - |
--sort <field> | Ordenar por campo | Não | - |
--desc | Ordenar por ordem decrescente | Nã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 -- útil para verificações em pipelines de CI/CD.
rdc machine health <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
3.3 provision
Provisionar uma nova máquina num fornecedor de cloud com OpenTofu
rdc machine provision <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--provider <name> | Nome do fornecedor de cloud (de machine provider add) | Sim | - |
--region <region> | Substituir região predefinida | Não | - |
--type <type> | Substituir tipo de instância predefinido | Não | - |
--image <image> | Substituir imagem de SO predefinida | Nã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 --infra | Não | - |
--no-infra | Ignorar configuração de infraestrutura (proxy + DNS) | Não | - |
--debug | Ativar saída de depuração | Não | - |
3.4 deprovision
Destruir uma máquina provisionada na cloud e remover da configuração
rdc machine deprovision <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--force | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--dry-run | Mostrar o que seria removido sem efetuar alterações | Não | - |
--orphaned-repos | Eliminar 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-unknown | Eliminar 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-mounted | Ignorar 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 | - |
--force | Ignorar pedidos de confirmação | Não | - |
--grace-days <days> | Período de graça em dias para repositórios recentemente arquivados (predefinição: 7) | Não | - |
--debug | Ativar saída de depuração | Não | - |
3.6 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--ip <address> | Endereço IP ou hostname da máquina | Sim | - |
--user <username> | Nome de utilizador SSH | Sim | - |
--port <port> | Porta SSH | Não | 22 |
3.7 infra
Gerir a configuração de infraestrutura (proxy, DNS, certificados)
cert
Gerir certificados TLS em cache
Remover a cache de certificados
rdc machine infra cert clear
Descarregar e colocar em cache os certificados TLS de uma máquina
rdc machine infra cert pull <machine> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--no-prune | Não remover certificados de ID de rede obsoletos | Não | - |
--debug | Ativar saída de depuração | Não | - |
Carregar certificados TLS em cache para uma máquina
rdc machine infra cert push <machine> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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.8 provider
Gerir fornecedores de cloud para aprovisionamento automático de máquinas
add
Adicionar um fornecedor de cloud
rdc machine provider add <name> [options]
| Flag | Descrição | Obrigatório | Predefiniçã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 <token> | Token de API para o fornecedor de cloud | Sim | - |
--region <region> | Região por omissão para novas máquinas | Não | - |
--type <type> | Tipo/tamanho de instância por omissão | Não | - |
--image <image> | Imagem do sistema operativo por omissão | Nã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 VM | Não | - |
--label-attr <attr> | Personalizado: nome do atributo para a etiqueta da VM | Não | - |
--region-attr <attr> | Personalizado: nome do atributo para a região | Não | - |
--size-attr <attr> | Personalizado: nome do atributo para o tipo de instância | Não | - |
--image-attr <attr> | Personalizado: nome do atributo para a imagem do sistema operativo | Não | - |
--ipv4-output <attr> | Personalizado: atributo de saída para o endereço IPv4 | Não | - |
--ipv6-output <attr> | Personalizado: atributo de saída para o endereço IPv6 | Não | - |
--ssh-key-attr <attr> | Personalizado: nome do atributo para as chaves SSH | Nã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 SSH | Nã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.9 remove
Remover uma máquina da configuração actual
rdc machine remove <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Não | - |
--force | Remover a máquina mesmo que ainda existam repositórios nela colocados, deixando essas localizações pendentes. | Não | - |
3.10 scan-keys
Analisar as chaves de anfitrião SSH das máquinas na configuração actual
rdc machine scan-keys [name]
3.11 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--datastore-path <path> | Caminho do armazém de dados na máquina remota | Não | /mnt/rediacc |
--datastore-size <size> | Tamanho do armazém de dados (por ex., 95%, 100G) | Não | 95% |
--debug | Ativar saída de depuração | Não | - |
3.12 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)
rdc machine status [name] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
--system | Incluir apenas informações do sistema | Não | - |
--repositories | Incluir apenas repositórios | Não | - |
--containers | Incluir apenas contentores | Não | - |
--services | Incluir apenas serviços | Não | - |
--network | Incluir apenas interfaces de rede | Não | - |
--block-devices | Incluir apenas dispositivos de bloco | Não | - |
--licenses | Incluir estados de licença dos repositórios | Não | - |
--storage-health | Mostrar fragmentação BTRFS e poupanças de reflink por repositório | Não | - |
--datastores | Mostrar datastores anexados (montagem, anexação, utilização) | Não | - |
--health-check | Modo de verificação de saúde - sai com código 2 se algum não estiver saudável | Não | - |
--stability-check | Modo de verificação de estabilidade - sai com código 2 se algum falhar/reiniciar | Não | - |
--search <text> | Filtrar repositórios por nome | Não | - |
--sync-certs | Também obter a cache de certificados ACME da máquina após a consulta | Não | - |
--strict | Terminar com código não zero (código 2) se algum contentor ultrapassou o limiar de desvio de saúde | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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-only | Registar o cluster na configuração sem o provisionar | Nã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ço | Nã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 cluster | Não | - |
--ssh-user <user> | Utilizador SSH para os membros provisionados | Nã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 | - |
--debug | Ativar saída de depuração | Não | - |
4.2 status
Listar todos os clusters, ou mostrar a configuração completa de um cluster com --name.
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--pool <pool> | Nome do pool | Sim | - |
--count <n> | Número de membros pretendido | Sim | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--force | Ignorar a confirmação e continuar mesmo perante erros de desmontagem | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--tag <tag> | Etiqueta do fork | Sim | - |
--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ão | Sim | - |
--writes <disposition> | Disposição de escrita do fork: local (camada dm-COW efémera, impacto zero no Ceph) | ceph (clone duradouro). Predefinição: local | Não | - |
--up | Colocar os repositórios do fork em funcionamento e validar a saúde do cluster depois de o fork arrancar | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--to <dest-cluster> | Destino | Sim | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--cluster <name> | Cluster ao qual juntar a máquina | Sim | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--force | Ignorar a drenagem quando o nó já está morto | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--on <dest-cluster> | Cluster de destino onde arrancar o ensaio descartável | Sim | - |
--tag <tag> | Etiqueta opcional para o fork de ensaio (predefinição: com timestamp) | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--snapshot <label> | Etiqueta do snapshot (por omissão: um carimbo de data/hora UTC) | Não | - |
--debug | Ativar saída de depuração | Não | - |
list
Listar os snapshots de grupo do cluster.
rdc cluster snapshot list <cluster> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--config <name> | Nome da configuração a usar em todos os comandos | Não | - |
--timeout <ms> | Tempo limite predefinido dos comandos em milissegundos | Não | 120000 |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--no-start | Montar 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-checkpoint | Ignorar o restauro de ponto de verificação CRIU mesmo que existam dados de verificação (forçar arranque limpo) | Não | - |
--tls | Solicitar certificado TLS dedicado para este repositório (os forks utilizam o certificado partilhado da máquina por omissão) | Não | - |
--no-wait | Retornar assim que os contentores arrancam; os healthchecks continuam em segundo plano | Não | - |
--all | Implementar 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 lote | Não | - |
--include-forks | Montar e iniciar também os repositórios copiados (fork) | Não | - |
--parallel | Iniciar os repositórios em simultâneo | Não | - |
--concurrency <n> | Máximo de repositórios em simultâneo (por omissão: 3) | Não | 3 |
-y, --yes | Ignorar confirmação em operações em lote | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--unmount | Também desmontar (fechar o contentor LUKS) após parar. Necessário antes de 'repo resize' ou para proteger completamente o volume | Não | - |
--checkpoint | Criar ponto de verificação CRIU antes de parar (guardar o estado de memória do processo para restauro posterior via 'repo up') | Não | - |
--all | Parar 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 lote | Não | - |
--parallel | Iniciar os repositórios em simultâneo | Não | - |
--concurrency <n> | Máximo de repositórios em simultâneo (por omissão: 3) | Não | 3 |
-y, --yes | Ignorar confirmação em operações em lote | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--remote-file <path> | Caminho do ficheiro a ler, relativo à raiz de montagem do repositório | Sim | - |
--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 ler | Nã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 | - |
--stat | Imprimir apenas tamanho, tipo e data de modificação; sem ler conteúdo | Não | - |
--force-binary | Permitir leitura de conteúdo binário (que contém NUL) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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 por --name (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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--base <ref> | Repositório com o qual comparar (lado base/antigo); padrão é o pai de --name | Não | - |
--name-only | Imprimir apenas os caminhos dos arquivos alterados, um por linha (sem letras de status) | Não | - |
--stat | Mostrar a magnitude da alteração por arquivo (deltas em bytes e blocos) e totais | Não | - |
--content [path] | Mostrar diff de texto unificado para um único arquivo (requer caminho de arquivo) | Não | - |
--fast | Confiar no filtro de blocos; pular confirmação por hash de conteúdo (pode super-relatar Modificado) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.6 list
Listar os repositórios numa máquina
rdc repo list [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Não | - |
--datastore <name> | Listar os repositórios deste datastore (resolvido para a máquina que atualmente o possui) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Nã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-docker | Não iniciar o daemon Docker após a criação | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.8 delete
Elimina um repositório e os seus dados. A entrada de configuração é preservada; use --archive-config para mover as credenciais para deletedRepositories para recuperação via 'repo admin archive restore'. 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--archive-config | Mover a entrada de configuração para deletedRepositories para recuperação posterior | Não | - |
-y, --yes | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Nã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 -- recusa-se 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--message <msg> | Mensagem do commit | Sim | - |
--author <author> | Autor do commit | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--branch <branch> | Nome do novo branch | Sim | - |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--tag <name> | Nome para o novo fork de trabalho gravável | Sim | - |
--from <workingFork> | Resolver o argumento posicional <commit-or-branch-ref> como nome de branch neste working fork | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--from <source> | commit ou fork de origem a partir do qual fazer o merge | Sim | - |
--force | Suspende primeiro um destino montado/em execução e, em seguida, faz o merge (nunca altera uma montagem ativa) | Não | - |
| `—resolve <ours | theirs>` | 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 | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--apply | Excluir de fato os commits inalcançáveis (o padrão é uma previsão dry-run) | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--tag <name> | Etiqueta para o fork (cria nome:etiqueta) | Sim | - |
--checkpoint | Criar ponto de verificação CRIU na origem antes de copiar (capturar o estado de memória do processo para restauro no fork) | Não | - |
--immutable | Marca 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 | - |
--up | Montar e iniciar os serviços após copiar (fork + mount + up num único comando) | Não | - |
--no-wait | Com --up: retorna assim que os contêineres iniciam; os healthchecks continuam em segundo plano (ideal para forks descartáveis) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--weight <percent> | Percentagem de tráfego encaminhado para o canary (inteiro 0-100; 0 = oculto, 100 = troca total) | Sim | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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 | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--size <size> | Novo tamanho do repositório (por ex., 10G, 100G, 1T) | Sim | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--size <size> | Novo tamanho do repositório (por ex., 10G, 100G, 1T) | Sim | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--docker | Liberar espaço do Docker (contêineres parados, imagens órfãs, cache de build); é executado mesmo com um snapshot de backup ativo | Não | - |
--docker-volumes | Remover também volumes Docker não utilizados | Não | - |
--report-only | Mostrar o estado de discard e a estimativa recuperável sem aparar | Não | - |
-m, --machine <name> | Nome da máquina de destino | Não | - |
--debug | Ativar saída de depuração | Não | - |
6.21 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]
| Flag | Descrição | Obrigatório | Predefiniçã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-crescimento | Nã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 destino | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Não | - |
--debug | Ativar saída de depuração | Não | - |
6.22 push
Enviar repositório para um destino remoto (máquina ou armazenamento). O tipo de destino é detectado automaticamente a partir da configuração. Para transferência entre máquinas, a imagem encriptada do repositório é copiada com o MESMO GUID -- trata-se de uma cópia de segurança/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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--to <remote> | Máquina ou nome de armazenamento 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 existir | Não | - |
--checkpoint | Criar 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 | - |
--force | Forçar substituição de cópia de segurança existente | Não | - |
-w, --watch | Monitorizar alterações | Não | - |
--bwlimit <limit> | Limite de largura de banda para transferência rsync (por ex., "6M", "10M") | Nã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ção | Não | - |
--strategy <strategy> | Estratégia de delta de blocos ao usar uma base de delta: auto, physical ou shared | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.23 pull
Receber repositório de um destino remoto (máquina ou armazenamento). Omita o nome para receber todos os repositórios. 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--from <remote> | Máquina ou nome de armazenamento de origem (detectado automaticamente a partir da configuração) | Não | - |
--from-machine <machine> | — | Não | - |
--force | Forçar substituição do repositório existente | Não | - |
--up | Após a recepção, montar e implementar o repositório nesta máquina | Não | - |
-w, --watch | Monitorizar alterações | Não | - |
--bwlimit <limit> | Limite de largura de banda para transferência rsync (por ex., "6M", "10M") | Nã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 shared | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.24 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--to <place> | Máquina ou cluster de destino | Sim | - |
--provision <provider> | Aprovisionar automaticamente o destino via fornecedor de cloud (por ex., hetzner, linode) | Não | - |
--bwlimit <limit> | Limite de largura de banda para transferência rsync (por ex., 10M) | Não | - |
--checkpoint | Migração em directo CRIU: capturar e restaurar o estado de memória dos processos | Nã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 shared | Não | - |
--skip-dns | Não comutar os registos DNS após a migração | Não | - |
--keep-source | Manter 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 | - |
--debug | Ativar saída de depuração | Não | - |
6.25 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]
| Flag | Descrição | Obrigatório | Predefiniçã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ório | Não | - |
--remote-file <path> | Caminho único do ficheiro remoto (relativo à raiz do repositório) para envio. Mutuamente exclusivo com --remote. | Não | - |
--mirror | Modo espelho - eliminar ficheiros remotos não presentes localmente | Não | - |
--verify | Verificar ficheiros com checksums após a sincronização | Não | - |
--confirm | Pré-visualizar alterações e pedir confirmação antes de sincronizar | Não | - |
--exclude <patterns...> | Padrões a excluir da sincronização | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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ório | Não | - |
--remote-file <path> | Caminho do ficheiro remoto dentro do repositório (alternativa a --remote para transferências de ficheiro único) | Não | - |
--mirror | Modo espelho - eliminar ficheiros locais não presentes no remoto | Não | - |
--verify | Verificar ficheiros com checksums após a sincronização | Não | - |
--confirm | Pré-visualizar alterações e pedir confirmação antes de sincronizar | Não | - |
--exclude <patterns...> | Padrões a excluir da sincronização | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Nã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]
| Flag | Descrição | Obrigatório | Predefiniçã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ório | Não | - |
--remote-file <path> | Caminho do ficheiro remoto dentro do repositório (alternativa a --remote para transferências de ficheiro único) | Não | - |
6.26 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]
| Flag | Descrição | Obrigatório | Predefiniçã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 reencaminhar | Não | - |
--local <port> | Porta local (por omissão, igual à porta remota) | Não | - |
--url-only | Imprimir apenas o URL local quando o túnel estiver pronto (legível por máquina) | Não | - |
6.27 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/secrets/<networkId>/<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]
| Flag | Descrição | Obrigatório | Predefiniçã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]
| Flag | Descrição | Obrigatório | Predefiniçã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ão | file |
--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-secret | Confirmar 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]
| Flag | Descrição | Obrigatório | Predefiniçã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-secret | Confirmar 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.28 admin
Verbos de administração e manutenção de repositórios.
archive
Gestão de registos de repositórios arquivados.
Listar as credenciais de repositórios arquivados
rdc repo admin archive list
Eliminar permanentemente todas as credenciais arquivadas
rdc repo admin archive purge [name] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Não | - |
Restaurar uma credencial de repositório arquivado
rdc repo admin archive restore <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--new-name <name> | Novo nome do recurso | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--uid <uid> | UID do proprietário (por omissão: 7111) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
autostart
Gerir o arranque automático do repositório no arranque do sistema
Activar o arranque automático de um repositório (omita o nome para activar todos)
rdc repo admin autostart enable [ref] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
Desactivar o arranque automático de um repositório (omita o nome para desactivar todos)
rdc repo admin autostart disable [ref] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
Listar os repositórios com arranque automático activado
rdc repo admin autostart list [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Nã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.
Listar todos os modelos de implementação incorporados fornecidos com o CLI
rdc repo admin template list
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--template <name> | Modelo a aplicar | Sim | - |
--file <path> | Caminho para o ficheiro JSON de modelo personalizado ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): substitui o nome do modelo incorporado | Nã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 | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.29 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
6.30 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-c, --container <name> | Contentor a ler (apenas necessário quando o repositório executa mais do que um) | Não | - |
-f, --follow | Continuar a transmitir novas linhas até interromper | Não | - |
--lines <n> | Quantas linhas de histórico mostrar (por omissão: 100) | Não | 100 |
--timestamps | Prefixar cada linha com o seu carimbo de data/hora | Não | - |
--debug | Ativar saída de depuração | Não | - |
6.31 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-c, --container <name> | Contentor onde executar (apenas necessário quando o repositório executa mais do que um) | Não | - |
-i, --interactive | Atribuir um terminal (para um comando que o espera) | Não | - |
-u, --user <user> | Utilizador com o qual executar o comando | Não | - |
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
7.2 status
Mostra o status de um job desanexado
rdc job status <job-id> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
7.3 logs
Reproduz ou acompanha o log de eventos de um job desanexado
rdc job logs <job-id> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
-f, --follow | Transmite continuamente até o job terminar | Não | - |
--since-line <n> | Retoma após esta quantidade de linhas (a contagem que você já recebeu) | Não | - |
--debug | Ativar saída de depuração | Não | - |
7.4 cancel
Cancela um job desanexado em execução
rdc job cancel <job-id> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
-y, --yes | Ignorar pedido de confirmação | Não | - |
7.5 gc
Remove jobs finalizados e seus logs
rdc job gc [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--older-than <duration> | Coleta jobs finalizados há mais tempo que isso, em horas (padrão: 168) | Não | - |
-y, --yes | Ignorar pedido de confirmaçã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 schedule
Implementar o agendamento de cópias de segurança numa máquina remota (temporizadores systemd)
rdc backup schedule [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--dry-run | Pré-visualizar as unidades geradas sem implementar | Não | - |
--force | Prosseguir 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-failed | Limpar estado falhado nos serviços afetados após uma implementação bem-sucedida (desativado por predefinição, preserva o sinal de falha) | Não | - |
--debug | Ativar saída de depuração | Não | - |
8.2 cancel
Cancelar uma cópia de segurança em curso numa máquina remota
rdc backup cancel [strategy] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--debug | Ativar saída de depuração | Não | - |
8.3 list
Listar artefactos de cópia de segurança numa máquina ou armazenamento.
rdc backup list [artifact-ref] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Não | - |
--storage <name> | Listar artefactos neste armazenamento | Não | - |
--path <subdir> | Subdiretório dentro da raiz do armazenamento. Se omitido, hot/ e cold/ são listados e combinados. | Não | - |
-w, --watch | Monitorizar alterações | Não | - |
--debug | Ativar saída de depuração | Não | - |
8.4 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--as <name> | Nome para o repositório restaurado (por omissão, o nome do artefacto) | Não | - |
-m, --machine <name> | Nome da máquina | Não | - |
--datastore <name> | Restaurar para este datastore com nome (é alojado pela máquina a que está anexado) | Não | - |
--up | Implementar o repositório restaurado após a transferência | Nã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, --yes | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Não | - |
8.5 run
Acionar uma cópia de segurança imediatamente numa máquina remota
rdc backup run [strategy] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
-w, --watch | Monitorizar alterações | Não | - |
--debug | Ativar saída de depuração | Não | - |
8.6 status
Mostrar estado da cópia de segurança e estado do temporizador numa máquina remota
rdc backup status [strategy] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--debug | Ativar saída de depuração | Não | - |
8.7 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--destination <name> | Nome do destino dentro da estratégia | Não | - |
--storage <name> | Nome da configuração de armazenamento (credenciais rclone) | Nã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" (sem tempo de inactividade) ou "cold" (parar, snapshot, reiniciar) | Não | - |
--bwlimit <limit> | Limite de largura de banda rclone (por ex., "6M", "10M:off", "08:00,3M;22:00,10M") | Nã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 | - |
--folder <path> | Subpasta dentro do bucket de armazenamento para este destino (por ex., hot, cold) | Não | - |
--enable | Activar a estratégia ou destino | Não | - |
--disable | Desactivar a estratégia ou destino | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
unbind
Desvincular uma estratégia de cópia de segurança de uma máquina
rdc backup strategy unbind <strategy> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina de destino | Sim | - |
remove
Remover uma estratégia ou destino de cópia de segurança
rdc backup strategy remove <strategy> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--destination <name> | Remover apenas este destino (mantém os outros destinos) | Nã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]
9. Gestão de Armazenamento
Gerir destinos externos de armazenamento de cópias de segurança (S3 e outros destinos compatíveis com rclone): registá-los e removê-los, listar o que está registado, explorar os artefactos que contêm e limpar cópias de segurança órfãs.
9.1 list
Listar os armazenamentos. Indique um nome para o detalhe completo.
rdc storage list [name] [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--reveal | Mostrar a configuração de armazenamento em texto simples (apenas TTY interactivo; auditado) | Não | - |
9.2 browse
Navegar em ficheiros num sistema de armazenamento
rdc storage browse <storage> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--path <subpath> | Caminho de subdiretório a listar | Não | “ |
9.3 prune
Eliminar cópias de segurança órfãs do armazenamento que já não constam em nenhuma configuração. Compatível com múltiplas configurações com proteção de período de carência. As chamadas rclone executam em --machine (o executor), não no seu computador local, pelo que os clientes não precisam de ter o rclone instalado localmente; --machine é o executor, não a fonte de informação.
rdc storage prune <storage> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Máquina executora -- executa as chamadas rclone list/delete contra o armazenamento. Obrigatório porque não se espera que os clientes tenham o rclone instalado localmente; as credenciais de armazenamento continuam a vir da sua configuração local. | Sim | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Não | - |
--force | Ignorar pedidos de confirmação | Não | - |
--force-delete-mounted | Ignorar a verificação de segurança de montagem e eliminar cópias de segurança na cloud mesmo que o GUID de origem esteja montado ou com contentor em execução na máquina executora. Distinto de --force (que apenas ignora o período de carência para repositórios arquivados). | Não | - |
--grace-days <days> | Período de graça em dias para repositórios recentemente arquivados (predefinição: 7) | Não | - |
--debug | Ativar saída de depuração | Não | - |
--skip-router-restart | Ignorar o reinício do servidor de rotas após atualização do binário | Não | - |
9.4 add
Registar um armazenamento.
rdc storage add <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--vault <json> | Conteúdo do vault como string JSON | Sim | - |
9.5 import
Importar armazenamentos de um ficheiro de configuração rclone
rdc storage import <file> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Importar apenas esta secção com nome | Não | - |
9.6 remove
Remover um armazenamento da configuração.
rdc storage remove <name> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-y, --yes | Ignorar pedido de confirmação | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Não | - |
10. 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).
10.1 connect
Abrir o VS Code numa máquina ou dentro de um repositório.
rdc vscode connect <target> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-f, --folder <path> | Caminho da pasta remota a abrir | Não | - |
--url-only | Imprimir o URI do VS Code em vez de o lançar | Não | - |
-n, --new-window | Abrir numa nova janela do VS Code | Não | - |
--skip-env-setup | Ignorar configuração do ambiente remoto | Não | - |
--insiders | Usar definições do VS Code Insiders | Não | - |
--browser | Servir o VS Code para browser a partir da sandbox do repositório (sem VS Code local) | Não | - |
--no-open | Imprimir o URL sem abrir o browser local | Nã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 | - |
10.2 list
Listar ligações SSH do VS Code configuradas
rdc vscode list
10.3 cleanup
Remover configurações SSH do VS Code
rdc vscode cleanup [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--all | Remover todas as configurações SSH do rediacc | Não | - |
-c, --connection <name> | Remover ligação específica | Não | - |
10.4 check
Verificar instalação e configuração do VS Code
rdc vscode check [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--insiders | Usar definições do VS Code Insiders | Não | - |
10.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]
| Flag | Descrição | Obrigatório | Predefiniçã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--server-provider <id> | Implementação do servidor VS Code para browser (openvscode, code-server) | Não | - |
11. 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`.
11.1 connect
Abrir uma shell numa máquina, ou dentro de um repositório com o seu Docker configurado.
rdc term connect <target> [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-c, --command <cmd> | Executar um comando em vez do shell interativo | Não | - |
--external | Forçar abertura numa janela de terminal externa | Não | - |
--reset-home | Repor a sobreposição home por repositório para um início limpo | Não | - |
12. Comandos Rápidos (Atalhos)
12.1 run
AVISO: Comando de baixo nível apenas para depuração e experimentação. Não para uso em produção. Use comandos de nível superior (repo up, repo down, etc.) em alternativa. Executa uma função bridge diretamente numa máquina.
rdc run
12.2 trace
Rastrear uma tarefa (atalho para: queue trace)
rdc trace
12.3 cancel
Cancelar uma tarefa (atalho para: queue cancel)
rdc cancel
12.4 retry
Repetir uma tarefa falhada (atalho para: queue retry)
rdc retry
13. 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.
13.1 login
Autenticar via browser ou token de API
rdc subscription login [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --token <token> | Token de API (rdt_...) | Não | - |
--server <url> | URL do servidor de conta | Não | - |
13.2 logout
Apagar token de subscrição armazenado
rdc subscription logout
13.3 status
Mostrar a subscrição e o estado de licença de uma máquina.
rdc subscription status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Não | - |
13.4 refresh
Renovar licenças a partir do servidor de conta.
rdc subscription refresh [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Não | - |
--repo <ref> | Ref do repositório: nome, ou nome:etiqueta, opcionalmente com @machine (por exemplo shop ou shop:test) | Não | - |
14. 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--force | Forçar atualização mesmo que já esteja na versão mais recente | Não | - |
--check-only | Apenas verificar atualizações sem transferir | Não | - |
--rollback | Reverter para a versão anterior | Não | - |
--status | Mostrar estado e diagnósticos da atualização automática | Não | - |
--channel <channel> | Definir canal de versão (stable ou edge) | Não | - |
15. 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, rclone), 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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--licenses | Imprimir o texto completo THIRD_PARTY_LICENSES incluído nas compilações de lançamento | Não | - |
16. 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
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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--force | Forçar reinício de todas as VMs | Não | - |
--parallel | Criar VMs em paralelo | Não | - |
--basic | Cluster mínimo (bridge + 1 worker) | Não | - |
--lite | Ignorar provisionamento de VMs (apenas estado) | Não | - |
--skip-orchestration | Ignorar orquestração do cluster | Nã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 | - |
--debug | Ativar saída de depuração | Não | - |
17.2 down
Destruir cluster de VMs
rdc ops down [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--backend <backend> | Backend de virtualização (kvm|qemu, detetado automaticamente) | Não | - |
--debug | Ativar saída de depuração | Não | - |
17.3 status
Mostrar estado do cluster de VMs
rdc ops status [options]
| Flag | Descrição | Obrigatório | Predefiniçã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--vm-id <id> | ID da máquina virtual | Sim | - |
-c, --command <cmd> | Executar um comando em vez do shell interativo | Não | - |
--backend <backend> | Backend de virtualização (kvm|qemu, detetado automaticamente) | Não | - |
--user <user> | Nome de utilizador SSH para ligação à VM | Não | - |
17.5 setup
Instalar pré-requisitos de virtualização
rdc ops setup [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--debug | Ativar saída de depuração | Nã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]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-p, --port <port> | Porta para escutar | Não | 8080 |
--host <host> | Endereço ao qual vincular | Não | 0.0.0.0 |
--mode <mode> | Posicionamento: daemon (host do cliente) ou container | Não | daemon |
Mensagens de Erro Comuns
Quando algo corre mal, a CLI fornece mensagens de erro claras:
| Erro | Significado |
|---|---|
| Autenticação necessária. Execute: rdc subscription login | Precisa 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 negada | A 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.