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. Utilitários de Agente
Comandos de introspecção para agentes de IA. Subcomandos principais: capabilities (lista todos os comandos com argumentos/opções em JSON), schema (esquema detalhado de um único comando), exec (executa um comando com entrada JSON de stdin, devolve sempre JSON).
1.1 capabilities
Listar todos os comandos disponíveis com argumentos e opções
rdc agent capabilities
1.2 schema
Mostrar o esquema detalhado de um comando específico
rdc agent schema [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--command <path> | Executar um comando em vez do shell interativo | Sim | - |
1.3 exec
Executar um comando com entrada JSON de stdin
rdc agent exec [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--command <path> | Executar um comando em vez do shell interativo | Sim | - |
1.4 generate-reference
Gerar referência de comandos em markdown para competências Claude
rdc agent generate-reference
2. Gestão de Configurações
Gerir ficheiros de configuração do CLI armazenados em ~/.config/rediacc/. Operações CRUD para máquinas, repositórios, backends de armazenamento e chaves SSH dentro de uma configuração. Subcomandos principais: init (criar configuração com nome), show, list, ssh (gerir chaves), recover (a partir de cópia de segurança), prune (limpar resíduos obsoletos). Grupos aninhados: config machine, config repository, config storage, config infra.
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.
2.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 | Eliminar TODOS os repositórios arquivados independentemente da idade, não apenas os que passaram o período de graça. Equivalente a executar 'rdc config repository purge-archived'. Use apenas quando tiver a certeza de que não precisa de nenhuma das credenciais guardadas para restauro. | 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 | - |
2.2 init
Criar um novo ficheiro de configuração com nome
Pode adicionar máquinas diretamente:
rdc config init [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Nã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 | - |
-u, --api-url <url> | URL da API | Não | - |
--server <url> | URL do servidor de conta | Não | - |
2.3 list
Listar todos os ficheiros de configuração
rdc config list
2.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 | - |
2.5 delete
Eliminar um ficheiro de configuração
rdc config delete [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
2.6 set
Definir um valor por omissão (equipa, região, bridge)
rdc config set [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--key <key> | Chave de configuração | Sim | - |
--value <value> | Valor de configuração | Sim | - |
Dica: Definir valores predefinidos significa que não precisa de passar `--team`, `--region` ou `--bridge` em cada comando.
2.7 clear
Limpar os valores por omissão (todos ou uma chave específica)
rdc config clear [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--key <key> | Chave de configuração | Não | - |
2.8 recover
Restaurar a configuração a partir de um ficheiro de cópia de segurança (.bak)
rdc config recover [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Não | - |
-y, --yes | Ignorar pedido de confirmação | Não | - |
2.9 set-ssh
Actualizar a configuração SSH da configuração actual
rdc config set-ssh
2.10 set-renet
Definir o caminho para o binário renet
rdc config set-renet
2.11 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
2.12 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 | - |
--api-url <url> | URL do servidor de conta | 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
2.13 machine
Gerir máquinas na configuração actual
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 config machine add [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--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 |
--datastore <path> | Caminho do datastore na máquina | Não | /mnt/rediacc |
remove
Remover uma máquina da configuração actual
rdc config machine remove [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
list
Listar as máquinas na configuração actual
rdc config machine list
scan-keys
Analisar as chaves de anfitrião SSH das máquinas na configuração actual
rdc config machine scan-keys [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Não | - |
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 config machine setup [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--datastore <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 | - |
set-ceph
Definir a configuração Ceph RBD para uma máquina
rdc config machine set-ceph [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--pool <name> | Nome do pool Ceph (por ex., rbd) | Sim | - |
--image <name> | Nome da imagem RBD (por ex., datastore-prod1) | Sim | - |
--cluster <name> | Nome do cluster Ceph | Não | ceph |
2.14 repository
Gerir mapeamentos de repositórios na configuração actual
add
Adicionar um mapeamento de GUID de repositório à configuração actual
rdc config repository add [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--guid <guid> | GUID do repositório (UUID dos nomes de ficheiros de cópia de segurança do armazenamento) | Sim | - |
--tag <tag> | Tag do repositório | Não | latest |
--credential <credential> | Credencial do repositório (frase-passe de encriptação) | Não | - |
--network-id <id> | ID de rede para isolamento Docker (2816, 2880, ...). Atribuído automaticamente se omitido. | Não | - |
remove
Remover um mapeamento de repositório da configuração actual
rdc config repository remove [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
list
Listar os mapeamentos de GUID de repositórios na configuração actual
rdc config repository list
list-archived
Listar as credenciais de repositórios arquivados
rdc config repository list-archived
restore-archived
Restaurar uma credencial de repositório arquivado
rdc config repository restore-archived [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--new-name <name> | Novo nome do recurso | Não | - |
purge-archived
Eliminar permanentemente todas as credenciais arquivadas
rdc config repository purge-archived
2.15 provider
Gerir fornecedores de cloud para aprovisionamento automático de máquinas
add
Adicionar um fornecedor de cloud
rdc config provider add [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--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 | - |
remove
Remover uma configuração de fornecedor de cloud
rdc config provider remove [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
list
Listar os fornecedores de cloud configurados
rdc config provider list
2.16 storage
Gerir backends de armazenamento na configuração actual
import
Importar armazenamentos de um ficheiro de configuração rclone
rdc config storage import [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--file <path> | Caminho para o ficheiro | Sim | - |
--name <name> | Importar apenas esta secção com nome | Não | - |
remove
Remover um armazenamento da configuração actual
rdc config storage remove [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
list
Listar os armazenamentos na configuração actual
rdc config storage list
2.17 infra
Gerir a configuração de infraestrutura (proxy, DNS, certificados)
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 config infra set [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--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 config infra show [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
push
Enviar a configuração de infraestrutura para a máquina (proxy Traefik, router, DNS Cloudflare). Execute 'config infra set <máquina>' primeiro.
rdc config infra push [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 | - |
2.18 cert-cache
Gerir certificados TLS em cache
pull
Descarregar e colocar em cache os certificados TLS de uma máquina
rdc config cert-cache pull [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--no-prune | Não remover certificados de ID de rede obsoletos | Não | - |
--debug | Ativar saída de depuração | Não | - |
push
Carregar certificados TLS em cache para uma máquina
rdc config cert-cache push [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 | - |
status
Mostrar o inventário de certificados em cache
rdc config cert-cache status
clear
Remover a cache de certificados
rdc config cert-cache clear
2.19 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 | - |
2.20 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 | - |
2.21 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
2.22 backup-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 config backup-strategy set [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome da estratégia (obrigatório) | Sim | - |
--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 | - |
remove
Remover uma estratégia ou destino de cópia de segurança
rdc config backup-strategy remove [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome da estratégia (obrigatório) | Sim | - |
--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 config backup-strategy list
show
Mostrar os detalhes de uma estratégia de cópia de segurança
rdc config backup-strategy show [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome da estratégia (mostra todas se omitido) | Não | - |
3. Gestão do Datastore
Gestão de armazenamento em bloco de baixo nível para datastores de máquinas (Ceph RBD ou BTRFS local). Normalmente só necessário durante a configuração inicial da máquina ou migração entre máquinas. Subcomandos principais: init (criar datastore), status (saúde/utilização), fork (clonar datastore para outra máquina), unfork (restaurar a partir de snapshot).
3.1 init
Inicializar o datastore numa máquina (loop local ou Ceph RBD)
rdc datastore init [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina (onde o datastore Ceph está alojado) | Sim | - |
--size <size> | Tamanho do datastore (por ex., 5G, 50G, 100G) | Sim | - |
--backend <type> | Tipo de backend: local (predefinição) ou ceph | Não | local |
--pool <name> | Nome do pool Ceph (predefinição: da configuração da máquina, ou rbd) | Não | rbd |
--image <name> | Nome da imagem RBD Ceph (predefinição: da configuração da máquina via set-ceph) | Não | - |
--cluster <name> | Nome do cluster Ceph (predefinição: ceph) | Não | ceph |
--force | Forçar inicialização mesmo que o datastore já exista (AVISO: reformata o armazenamento) | Não | - |
--debug | Ativar saída de depuração | Não | - |
3.2 fork
Criar uma cópia COW local de um datastore Ceph via snapshot + clone RBD (< 2s). Guarde os nomes do snapshot/clone do output para unfork. Apenas um fork por nome de destino; execute unfork antes de voltar a fazer fork.
rdc datastore fork [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina (onde o datastore Ceph está alojado) | Sim | - |
--to <name> | Sufixo do clone (cria clone com o nome <image>-fork-<name>). O fork fica na máquina de origem. | Sim | - |
--cow-size <size> | Tamanho do ficheiro de suporte COW (predefinição: auto, cresce conforme necessário) | Não | - |
--debug | Ativar saída de depuração | Não | - |
3.3 unfork
Limpar um fork: desmontar COW, remover clone, remover snapshot
rdc datastore unfork [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina (onde o datastore Ceph está alojado) | Sim | - |
--source <image> | Imagem RBD original que foi usada no fork (de config set-ceph --image, por ex. ds-prod) | Sim | - |
--snapshot <name> | Snapshot a remover (valor "Snapshot:" do output do fork, por ex. fork-<timestamp>) | Sim | - |
--dest <image> | Imagem clone a remover (valor "Clone:" do output do fork, por ex. ds-prod-fork-<machine>) | Sim | - |
--pool <name> | Nome do pool Ceph (predefinição: da configuração da máquina) | Não | - |
--mount-point <path> | Ponto de montagem do fork a desmontar (predefinição: /mnt/rediacc) | Não | - |
--force | Continuar a limpeza mesmo que passos individuais falhem (por ex., desmontagem, remoção do snapshot) | Não | - |
--debug | Ativar saída de depuração | Não | - |
3.4 status
Mostrar backend do datastore, tamanho, utilização, estado de montagem e cow_mode (se em fork)
rdc datastore status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina (onde o datastore Ceph está alojado) | Sim | - |
--debug | Ativar saída de depuração | Não | - |
4. 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: query (estado completo com filtros --system, --containers, --repositories, --services), list, create, rename, delete, prune.
4.1 list
Listar máquinas
rdc machine list [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
--search <text> | Pesquisar em {{field}} | Não | - |
--sort <field> | Ordenar por campo | Não | - |
--desc | Ordenar por ordem decrescente | Não | - |
4.2 create
Criar uma nova máquina
rdc machine create [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
-b, --bridge <name> | Nome da bridge | Não | - |
--vault <json> | Dados do vault da máquina como string JSON | Não | - |
4.3 rename
Renomear uma máquina
rdc machine rename [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--current-name <name> | Nome atual do recurso | Sim | - |
--new-name <name> | Novo nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
4.4 delete
Eliminar uma máquina
rdc machine delete [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
-f, --force | Ignorar pedidos de confirmação | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Não | - |
4.5 vault
Gestão do vault da máquina (apenas adaptador cloud)
rdc machine vault
4.6 vault-status
{{t:cli.commands.machine.vault-status.description}}
rdc machine vault-status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
4.7 update
Atualizar configuração da máquina
rdc machine update
4.8 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
4.9 containers
Listar contentores numa máquina com estado, saúde e encaminhamento de domínio. O JSON inclui detalhes completos dos contentores com o repositório resolvido para nome (original em repository_guid), domínio e autoRoute
rdc machine containers [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | 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 | - |
4.10 services
Listar serviços systemd geridos pela rediacc numa máquina (nome, estado, sub-estado, contagem de reinícios, memória, repositório resolvido para nome com original em repository_guid). Use --stability-check para sair com código 2 se algum falhar ou estiver a reiniciar (para CI/CD)
rdc machine services [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
--stability-check | Modo de verificação de estabilidade - sai com código 2 se algum falhar/reiniciar | Não | - |
4.11 query
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 query [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--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 | - |
--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.12 vault-status
Mostrar estado parsed do vault de uma máquina
rdc machine vault-status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
4.13 repos
Listar repositórios implementados numa máquina (nome, GUID, tamanho, estado de montagem, estado do Docker, contagem de contentores, utilização de disco, data de modificação, Rediaccfile presente). O JSON aninha contentores e serviços em cada repositório. Use --search para filtrar por nome ou GUID
rdc machine repos [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
--search <text> | Filtrar repositórios por nome | Não | - |
4.14 test-connection
Testar ligação SSH a uma máquina e capturar chave do anfitrião
rdc machine test-connection [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--ip <address> | Endereço IP ou hostname da máquina | Sim | - |
--user <name> | Nome de utilizador SSH | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
-b, --bridge <name> | Nome da bridge | Não | - |
--port <number> | Porta SSH | Não | 22 |
--password <pwd> | Palavra-passe SSH para autenticação inicial | Não | - |
--datastore <path> | Caminho do datastore na máquina | Não | /mnt/rediacc |
-m, --machine <name> | Nome da máquina (para atualizar o vault após o teste) | Não | - |
--save | Guardar known_hosts no vault da máquina após teste bem-sucedido | Não | - |
Dica: Use `--save-known-hosts` para persistir automaticamente a chave do host no vault da máquina após um teste bem-sucedido.
4.15 provision
Provisionar uma nova máquina num fornecedor de cloud com OpenTofu
rdc machine provision [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--provider <name> | Nome do fornecedor de cloud (de config 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 | - |
4.16 deprovision
Destruir uma máquina provisionada na cloud e remover da configuração
rdc machine deprovision [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--force | Ignorar pedido de confirmação | Não | - |
--debug | Ativar saída de depuração | Não | - |
4.17 backup
Gestão de cópias de segurança da máquina (agendar, acionar, estado)
list
Listar estratégias de cópia de segurança associadas a todas as máquinas
rdc machine backup list
schedule
Implementar agendamento de cópia de segurança numa máquina remota (temporizadores systemd)
rdc machine 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 | - |
now
Acionar uma cópia de segurança imediatamente numa máquina remota
rdc machine backup now [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--strategy <name> | Nome da estratégia (aciona todas se omitido) | Não | - |
--debug | Ativar saída de depuração | Não | - |
status
Mostrar estado da cópia de segurança e estado do temporizador numa máquina remota
rdc machine backup status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--strategy <name> | Mostrar detalhes de uma estratégia específica | Não | - |
--debug | Ativar saída de depuração | Não | - |
cancel
Cancelar uma cópia de segurança em curso numa máquina remota
rdc machine backup cancel [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
--strategy <name> | Nome da estratégia (cancela todas se omitido) | Não | - |
--debug | Ativar saída de depuração | Não | - |
4.18 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--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 | - |
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 |
--allow-grand | Permitir operações destrutivas em repositórios grand (que não são fork). Predefinição: apenas forks | Não | - |
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 --mount → repo down. Consulte Conceitos Principais em rdc --help para detalhes de arquitectura, encaminhamento e variáveis de ambiente.
6.1 mount
Montar um repositório (desencriptar e abrir o contentor LUKS, tornando o sistema de ficheiros acessível). Necessário na primeira implementação, após 'repo push' para uma nova máquina, ou após 'repo unmount'. Pode também ser feito via 'repo up --mount'. O volume permanece montado até ser desmontado explicitamente. Omita o nome para montar todos os repositórios na máquina.
rdc repo mount [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Não | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--checkpoint | Restaurar ponto de verificação CRIU do contentor após montagem (retomar processos a partir do estado de memória guardado). Utilizado após 'repo push --checkpoint' para migração em directo. | Não | - |
--no-docker | Não iniciar o daemon Docker após a montagem | 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 | - |
6.2 unmount
Desmontar um repositório (fechar o contentor LUKS, desligando o sistema de ficheiros encriptado). Os serviços têm de ser parados primeiro ('repo down'). Após a desmontagem, os dados do repositório ficam inacessíveis até nova montagem. Necessário antes de 'repo resize'. Omita o nome para desmontar todos os repositórios na máquina.
rdc repo unmount [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Não | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--checkpoint | Criar ponto de verificação CRIU antes de desmontar (capturar o estado de memória dos processos em execução para restauro posterior) | 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 | - |
6.3 up
Implementar ou actualizar um repositório (montar, executar o up do Rediaccfile que invoca renet compose). As rotas de proxy demoram ~3s a ficar activas após a implementação. Apresenta o padrão de URL para serviços expostos via HTTP (etiqueta rediacc.service_port) quando concluído. Use --mount para a primeira implementação ou repositórios copiados (fork). O restauro de ponto de verificação CRIU é detectado automaticamente -- use --skip-checkpoint para forçar arranque limpo. Omita o nome para implementar todos os repositórios na máquina.
rdc repo up [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Não | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--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 | - |
--include-forks | Montar e iniciar também os repositórios copiados (fork) | Não | - |
--mount-only | Apenas montar, sem iniciar os serviços | 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.4 up-all
Implementar todos os repositórios numa máquina
rdc repo up-all
6.5 down
Parar os contentores Docker do repositório (executa o down do Rediaccfile via renet compose). NÃO desmonta o volume encriptado -- o repositório permanece montado e pode ser reiniciado com 'repo up'. Use --unmount para fechar também o contentor LUKS após parar. Use --checkpoint para guardar o estado do processo CRIU antes de parar (o próximo 'repo up' restaura automaticamente). Omita o nome para parar todos os repositórios na máquina.
rdc repo down [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Não | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--unmount | Desmontar também (fechar o contentor LUKS) após parar. Equivalente a 'repo down' seguido de 'repo unmount'. 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 | - |
-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.6 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-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 | - |
6.7 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 | 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.8 create
Criar um novo repositório encriptado
rdc repo create [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--size <size> | Tamanho do repositório (por ex., 10G, 100G, 1T) | Sim | - |
--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.9 delete
Eliminar um repositório (destrói contentores, volumes e imagem encriptada). A entrada de configuração é preservada. Use --archive-config para mover as credenciais para deletedRepositories para recuperação via 'config restore-archived'.
rdc repo delete [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--archive-config | Mover a entrada de configuração para deletedRepositories para recuperação posterior | 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.10 fork
Criar 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: Para copiar para outra máquina, primeiro copie localmente e depois transfira: (1) repo fork --parent <pai> -m <origem> --tag <nome>, (2) backup push <nome> -m <origem> --to-machine <destino>, (3) repo up <nome> -m <destino> --mount. AVISO: Não use 'backup push' isoladamente para copiar; cria uma cópia bruta com o MESMO GUID (não é um fork independente). Copie sempre 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--parent <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--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 | - |
--up | Montar e iniciar os serviços após copiar (fork + mount + up num único comando) | 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.11 takeover
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 takeover [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--force | Ignorar avisos de modificaçã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.12 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--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.13 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--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.14 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 validate [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-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 | - |
6.15 autostart
Gerir o arranque automático do repositório no arranque do sistema
enable
Activar o arranque automático de um repositório (omita o nome para activar todos)
rdc repo autostart enable [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Nã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 | - |
disable
Desactivar o arranque automático de um repositório (omita o nome para desactivar todos)
rdc repo autostart disable [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Nã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 | - |
list
Listar os repositórios com arranque automático activado
rdc repo 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 | - |
6.16 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 ownership [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
--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 | - |
6.17 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 salvo com --unsafe. Use 'list' para ver os modelos incorporados disponíveis e 'apply' para implementar um num repositório.
list
Listar todos os modelos de implementação incorporados fornecidos com o CLI
rdc repo template list
apply
Aplicar um modelo a um repositório. Use um nome de modelo incorporado (por ex., app-postgres) ou --file para um modelo JSON personalizado. Ciclo de vida do Rediaccfile: up() inicia os contentores (obtenha as imagens e gere as configurações aqui), down() para. Rediaccfile mínimo: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. IMPORTANTE: o Rediaccfile DEVE 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 SERVICE_IP e REDIACC_NETWORK_ID. A reescrita de bind via eBPF gere 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 correcto. As verificações de estado de saúde podem usar localhost. network_mode:host é injectado e ports: são ignorados. ARMAZENAMENTO: Tanto os bind mounts ${REDIACC_WORKING_DIR}/... como os volumes Docker nomeados são seguros -- a raiz de dados do Docker está 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 CRIU e o watchdog trata da recuperação. Compose: NÃO adicione network_mode nem etiquetas rediacc.* (o renet injeta-as). Multi-projecto: coloque cada sub-projecto na sua própria subdirectoria com o seu próprio Rediaccfile -- o renet descobre-os 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 template apply [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina de destino | Sim | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | 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.18 push
Enviar repositório para um destino remoto (máquina ou armazenamento). Omita o nome para enviar todos os repositórios. 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. Use --up para implementar após o envio.
rdc repo push [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Nã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 | - |
--up | Após o envio, montar e implementar o repositório na máquina de destino | Não | - |
--tag <tag> | Etiqueta de implementação para controlo de versões | Não | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-w, --watch | Monitorizar alterações | 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 | - |
--bwlimit <limit> | Limite de largura de banda para transferência rsync (por ex., "6M", "10M") | 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.19 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Nã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 | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-w, --watch | Monitorizar alterações | 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 | - |
--bwlimit <limit> | Limite de largura de banda para transferência rsync (por ex., "6M", "10M") | 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.20 migrate
Migrar um repositório em directo de uma máquina para outra com tempo de inactividade mínimo. rsync em duas fases: transferência em volume enquanto está em execução, depois breve paragem para sincronização delta. Suporta ponto de verificação CRIU para migração do estado de memória dos processos e aprovisionamento automático das máquinas de destino.
rdc repo migrate [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--from <machine> | Nome da máquina de origem | Sim | - |
--to <machine> | Nome da máquina 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 | - |
--skip-dns | Não comutar os registos DNS após a migração | Não | - |
--debug | Ativar saída de depuração | Não | - |
6.21 backup
Gerir cópias de segurança de repositórios
list
Listar cópias de segurança disponíveis num destino remoto (máquina ou armazenamento). Sem --path, as subpastas hot/ e cold/ são fundidas numa única tabela com uma coluna Modo.
rdc repo backup list [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 | - |
-m, --machine <name> | Nome da máquina | Sim | - |
--path <subdir> | Subdirectoria dentro da raiz de armazenamento. Quando omitido, hot/ e cold/ são listados e fundidos. | Não | - |
-w, --watch | Monitorizar alterações | 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.22 sync
Sincronizar repositórios e ficheiros (push/pull em volume, transferência de ficheiros)
push
Enviar repositórios para armazenamento na cloud (omita o nome para enviar todos)
rdc repo sync push
pull
Receber repositórios do armazenamento na cloud (omita o nome para receber todos)
rdc repo sync pull
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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Nã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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Nã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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Nã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.23 snapshot
Gerir snapshots BTRFS em máquinas remotas
create
Criar um snapshot BTRFS de um repositório num momento específico (instantâneo, sem tempo de inactividade). Use --snapshot-name para um nome personalizado.
rdc repo snapshot create
list
Listar snapshots BTRFS numa máquina remota com nome, data de criação e tamanho
rdc repo snapshot list
delete
Eliminar um snapshot de uma máquina remota
rdc repo snapshot delete
6.24 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Não | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Nã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 | - |
6.25 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <repository> | Nome do repositório (por ex., mail, mail:staging). Sem etiqueta, assume por omissão :latest. | Sim | - |
--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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <repository> | Nome do repositório (por ex., mail, mail:staging). Sem etiqueta, assume por omissão :latest. | Sim | - |
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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <repository> | Nome do repositório (por ex., mail, mail:staging). Sem etiqueta, assume por omissão :latest. | Sim | - |
--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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <repository> | Nome do repositório (por ex., mail, mail:staging). Sem etiqueta, assume por omissão :latest. | Sim | - |
--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 | - |
7. Gestão de Armazenamento
Gerir fornecedores de armazenamento de cópia de segurança remota (S3, compatíveis com rclone). Operações CRUD (listar, criar, renomear, eliminar), configuração do vault, navegação em ficheiros remotos e limpeza de cópias de segurança órfãs.
7.1 list
Listar fornecedores de armazenamento
rdc storage list [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
--search <text> | Pesquisar em {{field}} | Não | - |
--sort <field> | Ordenar por campo | Não | - |
--desc | Ordenar por ordem decrescente | Não | - |
7.2 create
Criar um novo fornecedor de armazenamento
rdc storage create [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
7.3 rename
Renomear um fornecedor de armazenamento
rdc storage rename [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--current-name <name> | Nome atual do recurso | Sim | - |
--new-name <name> | Novo nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
7.4 delete
Eliminar um fornecedor de armazenamento
rdc storage delete [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-t, --team <name> | Nome da equipa | Não | - |
-f, --force | Ignorar pedidos de confirmação | Não | - |
--dry-run | Mostrar o que seria feito sem efetuar alterações | Não | - |
7.5 vault
Gestão do vault de armazenamento (apenas adaptador cloud)
rdc storage vault
7.6 browse
Navegar em ficheiros num sistema de armazenamento
rdc storage browse [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
--path <subpath> | Caminho de subdiretório a listar | Não | “ |
7.7 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 [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-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 | - |
7.8 pull
Transferir uma cópia de segurança do armazenamento na cloud para uma máquina
rdc storage pull
8. 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).
8.1 connect
Ligar a uma máquina ou repositório no VS Code
rdc vscode connect [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
-m, --machine <name> | Nome da máquina | Não | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Nã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 | - |
8.2 list
Listar ligações SSH do VS Code configuradas
rdc vscode list
8.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 | - |
8.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 | - |
9. Acesso SSH por Terminal
Abrir um terminal SSH para uma máquina ou contexto de repositório. Configura automaticamente DOCKER_HOST, diretório de trabalho e ambiente. Suporta ações de contentor via --container: logs, exec, stats, terminal. Use `-c` para executar um único comando de forma não interativa. Para o VS Code, use `vscode` em alternativa.
9.1 connect
Ligar a uma máquina ou repositório via SSH
rdc term connect [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-t, --team <name> | Nome da equipa | Não | - |
-m, --machine <name> | Nome da máquina | Não | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Não | - |
-c, --command <cmd> | Executar um comando em vez do shell interativo | Não | - |
--container <id> | Ligar a um contentor Docker específico | Não | - |
--container-action <action> | Ação do contentor: terminal, logs, stats, exec | Não | - |
--log-lines <lines> | Número de linhas de log a mostrar (predefinição: 50) | Não | - |
--follow | Seguir a saída dos logs | 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 | - |
10. Gestor de Protocolo
Registar e processar URLs de protocolo {{scheme}}://
10.1 register
Registar o processador de protocolo no sistema
rdc protocol register [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--system | Registar em todo o sistema (requer privilégios de administrador) | Não | - |
--force | Forçar novo registo mesmo que já esteja registado | Não | - |
10.2 unregister
Remover o registo do processador de protocolo do sistema
rdc protocol unregister [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--system | Cancelar registo em todo o sistema (requer privilégios de administrador) | Não | - |
10.3 status
Mostrar estado do registo do processador de protocolo
rdc protocol status
10.4 open
Abrir um URL {{scheme}}:// e executar a ação
rdc protocol open <url>
10.5 build
Construir um URL {{scheme}}:// a partir dos componentes
rdc protocol build [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--token <token> | Token de autenticação | Sim | - |
-t, --team <name> | Nome da equipa | Sim | - |
-m, --machine <name> | Nome da máquina | Sim | - |
-r, --repository <name> | Nome do repositório (liga ao ambiente do repositório) | Não | - |
-a, --action <action> | Ação ({{actions}}) | Não | desktop |
-p, --params <key=value...> | Parâmetros adicionais | Não | - |
10.6 parse
Analisar um URL {{scheme}}:// e mostrar componentes
rdc protocol parse <url>
11. Comandos Rápidos (Atalhos)
11.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
11.2 trace
Rastrear uma tarefa (atalho para: queue trace)
rdc trace
11.3 cancel
Cancelar uma tarefa (atalho para: queue cancel)
rdc cancel
11.4 retry
Repetir uma tarefa falhada (atalho para: queue retry)
rdc retry
12. Gestão de Subscrições
Gerir tokens de licenciamento e subscrição. Subcomandos principais: login (autenticar com o portal de subscrição), status (mostrar estado atual da licença), activation (estado dos slots de máquina), repo (gerir licenças por repositório).
12.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 | - |
12.2 logout
Apagar token de subscrição armazenado
rdc subscription logout
12.3 status
Mostrar estado da subscrição, slots de máquina e licenças de repositório
rdc subscription status
12.4 activation
Gestão de slots de máquina
status
Mostrar estado do slot de máquina para uma máquina
rdc subscription activation status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
12.5 repo
Gestão de licenças de repositório
status
Mostrar licenças de repositório instaladas numa máquina
rdc subscription repo status [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
12.6 refresh
Atualizar licenças de repositório numa máquina remota
activation
Atualizar licenças de repositório numa máquina remota
rdc subscription refresh activation [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
repos
Atualizar em lote licenças de repositório numa máquina remota
rdc subscription refresh repos [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
-m, --machine <name> | Nome da máquina | Sim | - |
repo
Atualizar a licença de repositório para um repositório específico
rdc subscription refresh repo [options]
| Flag | Descrição | Obrigatório | Predefinição |
|---|---|---|---|
--name <name> | Nome do recurso | Sim | - |
-m, --machine <name> | Nome da máquina | Sim | - |
13. Atualizações da CLI
Verificar novas versões do CLI e aplicar atualizações. Suporta --check-only para verificar sem instalar e --force para atualizar mesmo que já esteja na versão mais recente.
rdc update [options]
| 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 | - |
14. 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
15. Operações de VM Experimentais
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).
15.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 | - |
15.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 | - |
15.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 | - |
15.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 | - |
15.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 | - |
15.6 check
Verificar pré-requisitos de virtualização
rdc ops check
Mensagens de Erro Comuns
Quando algo corre mal, a CLI fornece mensagens de erro claras:
| Erro | Significado |
|---|---|
| Autenticação necessária. Execute: rdc auth login | Precisa de iniciar sessão primeiro |
| Nenhuma configuração ativa. Crie uma com: rdc config init --name <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 --key team --value <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 --key region --value <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.