Saltar al contenido principal Saltar a navegación Saltar al pie de página

Aplicación CLI

Guía completa para usar la interfaz de línea de comandos de Rediacc para la gestión de la plataforma

Referencia de la CLI de Rediacc

Descripción general

La **CLI de Rediacc** (`rdc`) es una interfaz de línea de comandos para gestionar infraestructura autoalojada — máquinas, repositorios, almacenamiento, copias de seguridad y más.

Instalación

Descargue el último binario para su plataforma desde la [página de versiones de Rediacc](https://www.rediacc.com) o instale a través de su gestor de paquetes:

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

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

Opciones Globales

Todos los comandos admiten estos flags globales:

OpciónDescripción
--outputFormato de salida (table|json|yaml|csv). Anular el valor por defecto con REDIACC_DEFAULT_OUTPUT.
--configUsar una configuración específica para este comando
--langAnulación de idioma ({{languages}})
--forceOmitir indicadores de confirmación

1. Gestión de Configuración

Gestiona archivos de configuración: crear, cambiar, editar, conciliar el estado y funciones transversales (campos, auditoría, claves SSH, sincronización remota).

Los archivos de configuración almacenan detalles de conexión (URL de API, credenciales, equipo/región/puente predeterminados) para que pueda cambiar entre entornos rápidamente.

1.1 prune

Elimina lastre del archivo de configuración local en ~/.config/rediacc/<config>.json. Se limpian tres categorías, todas puramente locales (sin llamadas SSH/renet): (1) entradas de caché de certificados ACME cuyo ancla GUID/repo/máquina ya no está en la configuración activa; (2) repositorios archivados cuyo período de gracia ha expirado (por defecto 7 días, ver defaults.pruneGraceDays); (3) referencias cruzadas colgantes (machine→strategy, strategy→repo). Los recursos en uso, credenciales, tokens de almacenamiento y known-hosts nunca se tocan. El comportamiento por defecto es aplicar cambios; usa --dry-run para previsualizar solo.

rdc config prune [options]
OpciónDescripciónObligatorioPredeterminado
--dry-runPrevisualiza lo que se eliminaría sin modificar el archivo de configuración. Refleja la semántica por defecto desactivada de los demás comandos prune.No-
--certs-onlyRestringe al bucket de caché de certificados ACME. Omite la purga de archivos y la limpieza de referencias cruzadas. Mutuamente excluyente con --archives-only y --refs-only.No-
--archives-onlyRestringe a la purga de archivos expirados. Omite caché de certificados y limpieza de referencias cruzadas. Excluyente con --certs-only y --refs-only.No-
--refs-onlyRestringe a referencias cruzadas colgantes (machine→strategy, strategy→repo excluye/incluye). Omite caché de certificados y archivos. Excluyente con --certs-only y --archives-only.No-
--purge-archivedDescarta TODOS los repositorios archivados sin importar su antigüedad, no solo los que superaron el período de gracia. Equivale a ejecutar 'rdc repo admin archive purge' para cada repositorio archivado. Úsalo solo cuando estés seguro de que no necesitas ninguna de las credenciales guardadas para restaurar.No-
--orphan-reposElimina las entradas de repositorio que no están asignadas a ninguna máquina. Cada entrada contiene la credencial y la clave SSH de ese repositorio, por lo que esta acción es irreversible. Ejecuta primero 'rdc config reconcile' para que la asignación refleje las máquinas.No-
--grace-days <days>Anula la ventana de gracia del archivo (en días) para esta invocación. Recurre a defaults.pruneGraceDays en la configuración, luego a 7 si ninguno está establecido.No-

1.2 init

Crear un nuevo archivo de configuración con nombre

En modo local puede agregar máquinas directamente:

rdc config init [name] [options]
OpciónDescripciónObligatorioPredeterminado
--ssh-key <path>Ruta a clave privada SSH (p. ej., ~/.ssh/id_rsa)No-
--renet-path <path>Ruta al binario renet (predeterminado: renet en PATH)No-
--master-password <password>Cifrar recursos con una contraseña maestraNo-
--server <url>URL del servidor de cuentaNo-

1.3 list

Listar todos los archivos de configuración

rdc config list

1.4 show

Mostrar detalles de la configuración actual

rdc config show [options]
OpciónDescripciónObligatorioPredeterminado
--revealMostrar texto plano para valores sensibles (solo interactivo)No-

1.5 current

Muestra la configuración activa: nombre, archivo, servidor y canal resueltos, estado del token

rdc config current

1.6 delete

Eliminar un archivo de configuración

rdc config delete <name>

1.7 set

Establecer un valor predeterminado (equipo, región, puente)

rdc config set <key> <value>

1.8 clear

Borrar valores predeterminados (todos o uno específico)

rdc config clear [key]

1.9 recover

Restaurar configuración desde archivo de respaldo (.bak)

rdc config recover [name] [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-

1.10 ssh

Gestionar la configuración de clave SSH

set

Establecer clave SSH para la configuración actual

rdc config ssh set [options]
OpciónDescripciónObligatorioPredeterminado
--key <path>Ruta al archivo de clave SSH privada-
--embedIncrustar el contenido de la clave en la configuración en lugar de almacenar la rutaNo-

show

Mostrar la configuración actual de clave SSH

rdc config ssh show

remove

Eliminar clave SSH de la configuración actual

rdc config ssh remove

1.11 remote

Gestionar conexión de almacenamiento remoto de configuración

enable

Vincular esta configuración al almacenamiento cifrado remoto

rdc config remote enable [options]
OpciónDescripciónObligatorioPredeterminado
--headlessUsar flujo de código de dispositivo (para servidores sin interfaz)No-
--passwordInscríbete sin interfaz con un password slot preaprovisionado (sin navegador)No-
--api-url <url>URL del servidor de cuentaNo-
--forceReemplazar el contenido local diferente con la copia del servidor sin confirmaciónNo-

disable

Desconectar del almacenamiento remoto y guardar configuración localmente

rdc config remote disable

status

Mostrar estado de conexión remota

rdc config remote status

refresh

Forzar recarga de configuración desde almacenamiento remoto

rdc config remote refresh

1.12 field

Operaciones de campos de configuración direccionados por puntero (get/set/unset/rotate/list). Punteros JSON (RFC 6901) como /credentials/cfDnsApiToken.

get

Lee un único valor de configuración por puntero JSON. Los campos sensibles se redactan salvo con --reveal (solo humanos).

rdc config field get [options]
OpciónDescripciónObligatorioPredeterminado
--pointer <pointer>Puntero JSON al campo (p. ej. /credentials/cfDnsApiToken)-
--revealMostrar texto en claro de valores sensibles (solo TTY interactivo; auditado)No-
--digestImprimir el resumen SHA-256 en lugar del valor (seguro para compartir con agentes)No-

set

Escribir un valor de configuración en un puntero JSON. Los caminos sensibles requieren --current (puerta de conocimiento).

rdc config field set [options]
OpciónDescripciónObligatorioPredeterminado
--pointer <pointer>Puntero JSON al campo (p. ej. /credentials/cfDnsApiToken)-
--new <value>Valor nuevo (se interpreta como JSON si empieza con {, [, ", true, false, null o un número)-
--current <value>Valor actual en claro — obligatorio para mutar caminos sensibles (prueba de conocimiento)No-

unset

Eliminar un valor de configuración en un puntero JSON. Los caminos sensibles requieren --current.

rdc config field unset [options]
OpciónDescripciónObligatorioPredeterminado
--pointer <pointer>Puntero JSON al campo (p. ej. /credentials/cfDnsApiToken)-
--current <value>Valor actual en claro — obligatorio para eliminar caminos sensiblesNo-

rotate

Rotar un valor sensible sin --current. Solo TTY interactivo; auditado con énfasis.

rdc config field rotate [options]
OpciónDescripciónObligatorioPredeterminado
--pointer <pointer>Puntero JSON al campo sensible (p. ej. /credentials/cfDnsApiToken)-
--new <value>Valor nuevo-

list

Listar cada plantilla de puntero registrada con su tipo y política de commit/encriptación.

rdc config field list [options]
OpciónDescripciónObligatorioPredeterminado
--sensitiveMostrar solo plantillas sensibles (no públicas)No-

1.13 edit

Abre la configuración activa en $EDITOR como proyección JSONC redactada. Solo humanos; los agentes son rechazados.

rdc config edit [options]
OpciónDescripciónObligatorioPredeterminado
--revealMostrar texto en claro de valores sensibles (solo TTY interactivo; auditado)No-
--dumpImprimir la configuración actual como JSONC en stdout en lugar de abrir el editor (solo lectura; seguro para agentes cuando está redactado)No-
--apply <file>Aplicar un archivo JSONC editado (omite el lanzamiento de $EDITOR)No-
--current-secrets <file>Archivo JSON que mapea puntero→texto antiguo en claro para la puerta de conocimiento en --applyNo-
--editor <cmd>Orden de editor (sigue la precedencia de git: --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR)No-

1.14 audit

Inspeccionar el registro de auditoría de configuración (JSONL encadenado por hash en ~/.config/rediacc/audit.log.jsonl)

log

Imprimir entradas de auditoría recientes como JSON

rdc config audit log [options]
OpciónDescripciónObligatorioPredeterminado
--since <spec>Mostrar solo entradas posteriores a (ej.: '24h', '7d', timestamp ISO)No-
--path <glob>Filtrar por patrón de puntero JSON (ej.: /credentials/*)No-
--actor <kind>Filtrar por tipo de actor (human|agent)No-

tail

Transmitir nuevas entradas a medida que se escriben (Ctrl+C para detener)

rdc config audit tail

verify

Verificar la integridad de la cadena SHA-256 de todas las entradas de auditoría

rdc config audit verify

1.15 reconcile

Reconstruye el estado en tiempo de ejecución a partir del estado real de las máquinas. Corrige datos de acoplamiento y enrutamiento obsoletos.

rdc config reconcile [options]
OpciónDescripciónObligatorioPredeterminado
--machine <m...>Limitar la conciliación a estas máquinasNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-
--accept-observedReescribe una ubicación declarada para que coincida con dónde está realmente la imagen, pero solo cuando eso es inequívoco (observada en exactamente una máquina). Los duplicados siguen siendo conflictos.No-

1.16 rotate-cek

Rotar la clave de cifrado de configuración de la organización

rdc config rotate-cek [options]
OpciónDescripciónObligatorioPredeterminado
--api-url <url>URL del servidor de cuentaNo-

2. Gestión de almacenamiento de datos

Pools de almacenamiento con nombre que alojan repositorios. Un almacén de datos es móvil (acóplalo a una máquina, muévelo a otra) y de acoplamiento único (solo una máquina lo posee a la vez). El almacén de datos por defecto implícito de cada máquina no se gestiona aquí.

2.1 resize

Amplía o reduce un almacén de datos. Es una operación sin conexión: los repositorios que contiene deben estar detenidos.

rdc datastore resize <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--size <size>Nuevo tamaño (por ejemplo 200G)-
--debugHabilitar salida de depuración (modo local)No-

2.2 fork

Bifurca un almacén de datos mediante copy-on-write. El fork es instantáneo y su coste no crece con el tamaño del pool. Necesita el backend rbd: un almacén de datos local no tiene clonado a nivel de bloque, así que los repositorios que contiene se bifurcan uno a uno por reflink (rdc repo fork).

rdc datastore fork <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--tag <tag>Etiqueta para el fork (el resultado es nombre:etiqueta)-
--attach-to <machine>Acoplar el fork a esta máquina de inmediato (requiere --writes)No-
--writes <disposition>A dónde van las escrituras del fork: local (instantáneo, efímero) o ceph (clon duradero)No-
--cow-size <size>Tamaño del overlay para --writes localNo-
--debugHabilitar salida de depuración (modo local)No-

2.3 status

Muestra un almacén de datos: su backend, acoplamiento, uso, repositorios e instantáneas. Un almacén de datos desacoplado igualmente reporta su registro.

rdc datastore status <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

2.4 create

Crea un almacén de datos adicional con nombre en una máquina. Un backend local es un pool respaldado por archivo en esa máquina y se queda ahí. Un backend rbd vive en Ceph, así que puede moverse a cualquier máquina que alcance el mismo clúster. Pasa --cluster para convertirlo en un almacén de datos del mundo Kubernetes; esa referencia queda fija en la creación.

rdc datastore create <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Máquina en la que crear el almacén de datos-
--size <size>Tamaño del almacén de datos (por ejemplo 100G)-
--backend <type>Backend de almacenamiento: local (respaldado por archivo, permanece en esta máquina) o rbd (Ceph, movible)Nolocal
--pool <name>Pool de Ceph para el backend rbd (por defecto: rbd)No-
--image <name>Nombre de imagen RBD para el backend rbd (por defecto: el nombre del almacén de datos)No-
--cluster <name>Clúster de Kubernetes al que pertenece este almacén de datos. Si se establece, solo admite repositorios de Kubernetes; si no, solo repositorios docker. Se fija en la creación.No-
--debugHabilitar salida de depuración (modo local)No-

2.5 list

Listar los almacenes de datos con nombre, dónde están acoplados y qué contienen.

rdc datastore list [place]

2.6 attach

Acopla un almacén de datos a una máquina. Solo una máquina lo posee a la vez, así que acoplarlo en otro sitio lo mueve: la máquina anterior lo libera primero, y si el traspaso falla, el acoplamiento original queda intacto. Un fork debe indicar a dónde van sus escrituras.

rdc datastore attach <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--to <machine>Máquina a la que acoplar el almacén de datos-
--writes <disposition>A dónde van las escrituras de un fork: local (instantáneo, efímero, se pierde al desacoplar) o ceph (clon duradero en el pool). Obligatorio para un fork.No-
--cow-size <size>Tamaño del overlay para --writes localNo-
--no-autoNo volver a acoplar este almacén de datos automáticamente al arrancarNo-
--forceForzar el desalojo de una máquina obsoleta que no liberó el almacén de datos correctamenteNo-
--debugHabilitar salida de depuración (modo local)No-

2.7 detach

Desacopla un almacén de datos de su máquina. Antes se detienen los repositorios que contiene. Un fork acoplado con --writes local no tiene dónde volcar su overlay, así que desacoplarlo descarta el overlay y requiere --discard.

rdc datastore detach <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--discardDescartar un fork de escrituras locales y su overlay. Los datos no son recuperables.No-
-y, --yesOmitir indicador de confirmaciónNo-
--debugHabilitar salida de depuración (modo local)No-

2.8 snapshot

Toma y lista instantáneas puntuales de un almacén de datos. Una instantánea no cuesta nada en reposo y es de donde clona un fork.

create

Toma una instantánea puntual de un almacén de datos. Nada se detiene. El instante es consistente ante fallos, no consistente a nivel de aplicación: si necesitas que una escritura específica quede DENTRO de la instantánea, sincronízala antes.

rdc datastore snapshot create <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--snapshot <label>Etiqueta de la instantánea (por defecto: una marca de tiempo UTC)No-
--debugHabilitar salida de depuración (modo local)No-

list

Listar las instantáneas de un almacén de datos.

rdc datastore snapshot list <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

2.9 delete

Destruye un almacén de datos y todo su contenido. Primero se desacopla; si no puede desacoplarse limpiamente, la eliminación falla en lugar de dejar huérfano un pool montado.

rdc datastore delete <datastore> [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-
--forceEliminar aunque aún haya repositorios que apunten a él. Sus datos se eliminan con él.No-
--debugHabilitar salida de depuración (modo local)No-

3. Gestión de Máquinas

Inspeccionar el estado de máquinas remotas: recursos del sistema, contenedores en ejecución, servicios systemd, repositorios desplegados y diagnósticos de salud. Consultas de solo lectura; para modificar repos usa `repo`. Subcomandos clave: status (estado completo, acotable con --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.

3.1 list

Listar máquinas

rdc machine list [options]
OpciónDescripciónObligatorioPredeterminado
--search <text>Buscar en {{field}}No-
--sort <field>Ordenar por campoNo-
--descOrdenar en orden descendenteNo-

3.2 health

Verificar salud de la máquina para pipelines CI/CD

El comando health muestra métricas del sistema, estado de contenedores, estabilidad de servicios e información de almacenamiento — útil para verificaciones de pipelines CI/CD.

rdc machine health <name> [options]
OpciónDescripciónObligatorioPredeterminado
-t, --team <name>Nombre de equipoNo-

3.3 provision

Aprovisionar una nueva máquina en un proveedor de nube usando OpenTofu

rdc machine provision <name> [options]
OpciónDescripciónObligatorioPredeterminado
--provider <name>Nombre del proveedor de nube (de machine provider add)-
--region <region>Anular región predeterminadaNo-
--type <type>Anular tipo de instancia predeterminadoNo-
--image <image>Anular imagen de SO predeterminadaNo-
--ssh-user <user>Nombre de usuario SSH para la nueva VM (predeterminado: root)No-
--base-domain <domain>Dominio base para infraestructura (ej. example.com). Implica --infraNo-
--no-infraOmitir configuración de infraestructura (proxy + DNS)No-
--debugHabilitar salida de depuración (modo local)No-

3.4 deprovision

Destruir una máquina aprovisionada en la nube y eliminar de la configuración

rdc machine deprovision <name> [options]
OpciónDescripciónObligatorioPredeterminado
--forceOmitir indicador de confirmaciónNo-
--debugHabilitar salida de depuración (modo local)No-

3.5 prune

Eliminar recursos huérfanos del almacén de datos e instantáneas obsoletas de una máquina

rdc machine prune <name> [options]
OpciónDescripciónObligatorioPredeterminado
--dry-runMostrar lo que se eliminaría sin realizar cambiosNo-
--orphaned-reposElimina todas las imágenes de repositorio en la máquina que no estén en tu configuración local de la CLI. Es un método poco fino: también elimina forks creados por otras herramientas que no tienen entrada en la configuración local, incluso cuando su espejo renet los identifica correctamente como forks. Usa --prune-unknown para el comportamiento más preciso que respeta el espejo.No-
--prune-unknownElimina solo repos que el espejo renet .interim/state no puede clasificar (no en configuración local Y sin espejo marcado como fork). Estrictamente más estrecho que --orphaned-repos: los forks sin configuración se preservan cuando el espejo los identifica. Huérfanos heredados pre-espejo y grands obsoletos cuya entrada de configuración fue eliminada caen ambos en esta categoría.No-
--force-delete-mountedAnula la verificación de seguridad de montaje y elimina repos incluso si están actualmente montados o tienen contenedores Docker en ejecución. Distinto de --force (que solo anula el período de gracia del archivo). Aplica tanto a --orphaned-repos como a --prune-unknown.No-
--forceOmitir indicadores de confirmaciónNo-
--grace-days <days>Período de gracia en días para repositorios archivados recientemente (predeterminado: 7)No-
--debugHabilitar salida de depuración (modo local)No-

3.6 add

Agregar una máquina a la configuración actual

rdc machine add <name> [options]
OpciónDescripciónObligatorioPredeterminado
--ip <address>Dirección IP de máquina o nombre de host-
--user <username>Nombre de usuario SSH-
--port <port>Puerto SSHNo22

3.7 infra

Gestionar configuración de infraestructura (proxy, DNS, certificados)

cert

Gestionar certificados TLS en caché

clear:

Eliminar la caché de certificados

rdc machine infra cert clear

pull:

Descargar y almacenar en caché certificados TLS desde una máquina

rdc machine infra cert pull <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--no-pruneOmitir limpieza de certificados de ID de red obsoletosNo-
--debugHabilitar salida de depuración (modo local)No-

push:

Subir certificados TLS en caché a una máquina

rdc machine infra cert push <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

status:

Mostrar inventario de certificados en caché

rdc machine infra cert status

push

Enviar configuración de infraestructura a la máquina (proxy Traefik, enrutador, Cloudflare DNS). Ejecuta primero 'machine infra set <machine>'

rdc machine infra push <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

set

Establecer configuración de infraestructura para una máquina (específico de máquina: IPs, dominio, puertos; compartido: email de certificado, token DNS de Cloudflare)

rdc machine infra set <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--public-ipv4 <ip>Dirección IPv4 pública (por máquina)No-
--public-ipv6 <ip>Dirección IPv6 pública (por máquina)No-
--base-domain <domain>Dominio base para aplicaciones (por máquina)No-
--cert-email <email>Correo para notificaciones de certificados TLS (compartido entre máquinas)No-
--cf-dns-token <token>Token de Cloudflare DNS API para desafío ACME DNS-01 (compartido entre máquinas)No-
--tcp-ports <ports>Puertos TCP a reenviar (separados por comas, ej., 25,143,465)No-
--udp-ports <ports>Puertos UDP a reenviar (separados por comas, ej., 53)No-

show

Mostrar configuración de infraestructura para una máquina

rdc machine infra show <machine>

3.8 provider

Gestionar proveedores de nube para aprovisionamiento automático de máquinas

add

Añadir un proveedor de nube

rdc machine provider add <name> [options]
OpciónDescripciónObligatorioPredeterminado
--provider <source>Fuente de proveedor conocido (ej., linode/linode, hetznercloud/hcloud)No-
--source <source>Fuente personalizada de proveedor OpenTofu (ej., vultr/vultr)No-
--token <token>Token de API para el proveedor de nube-
--region <region>Región predeterminada para nuevas máquinasNo-
--type <type>Tipo/tamaño de instancia predeterminadoNo-
--image <image>Imagen de SO predeterminadaNo-
--ssh-user <user>Usuario SSH para nuevas VMs (por defecto: root)No-
--resource <type>Personalizado: tipo de recurso OpenTofu para VMsNo-
--label-attr <attr>Personalizado: nombre del atributo para la etiqueta de la VMNo-
--region-attr <attr>Personalizado: nombre del atributo para la regiónNo-
--size-attr <attr>Personalizado: nombre del atributo para el tipo de instanciaNo-
--image-attr <attr>Personalizado: nombre del atributo para la imagen del SONo-
--ipv4-output <attr>Personalizado: atributo de salida para la dirección IPv4No-
--ipv6-output <attr>Personalizado: atributo de salida para la dirección IPv6No-
--ssh-key-attr <attr>Personalizado: nombre del atributo para claves SSHNo-
--ssh-key-format <format>Personalizado: formato de clave SSH (inline_list o resource_id)No-
--ssh-key-resource <type>Personalizado: tipo de recurso OpenTofu para claves SSHNo-

list

Listar proveedores de nube configurados

rdc machine provider list

remove

Eliminar configuración de proveedor de nube

rdc machine provider remove <name>

3.9 remove

Eliminar una máquina de la configuración actual

rdc machine remove <name> [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-
--forceEliminar la máquina aunque todavía tenga repositorios ubicados en ella, dejando esas ubicaciones colgantes.No-

3.10 scan-keys

Escanear claves de host SSH para máquinas en la configuración actual

rdc machine scan-keys [name]

3.11 setup

Aprovisionar una máquina remota para repositorios (instala renet, configura Docker, almacén BTRFS). Idempotente. Requerido después de config machine add y antes de repo create

rdc machine setup <name> [options]
OpciónDescripciónObligatorioPredeterminado
--datastore-path <path>Ruta del almacén de datos en la máquina remotaNo/mnt/rediacc
--datastore-size <size>Tamaño del almacén de datos (ej.: 95%, 100G)No95%
--debugHabilitar salida de depuración (modo local)No-

3.12 status

Mostrar estado completo de la máquina (sistema, repos, contenedores, servicios)

rdc machine status [name] [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-
--systemIncluir solo información del sistemaNo-
--repositoriesIncluir solo repositoriosNo-
--containersIncluir solo contenedoresNo-
--servicesIncluir solo serviciosNo-
--networkIncluir solo interfaces de redNo-
--block-devicesIncluir solo dispositivos de bloqueNo-
--licensesIncluir estados de licencias de repositoriosNo-
--storage-healthMostrar fragmentación BTRFS y ahorro reflink por repositorioNo-
--datastoresMostrar almacenes de datos acoplados (montaje, acoplamiento, uso)No-
--health-checkModo de verificación de salud - sale con código 2 si hay algún no saludableNo-
--stability-checkModo de verificación de estabilidad - sale con código 2 si hay algún fallido/reiniciandoNo-
--search <text>Filtrar repositorios por nombreNo-
--sync-certsTambién descargar la caché de certificados ACME de la máquina tras consultarNo-
--strictSalir con código distinto de cero (código 2) si algún contenedor ha superado el umbral de desviación de saludNo-

4. Gestión de Clústeres

Aprovisionar y gestionar clústeres: conjuntos con nombre de pools de nodos (ceph, k8s-server, k8s-agent, hyperconverged) en una red privada. Los miembros del pool se materializan en máquinas, de modo que cada comando -m funciona con ellos.

4.1 create

Declara y aprovisiona un clúster: máquinas, pools de Ceph y Kubernetes. Pasa --provider y --pool para declararlo en un solo paso; un create sin argumentos aprovisiona un clúster ya declarado.

rdc cluster create <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--provider <provider>Proveedor: una clave de cloudProviders, o 'kvm'No-
--pool <spec...>Especificación de pool nombre:rol:cantidad[:tamaño] (rol: ceph|k8s-server|k8s-agent|hyperconverged)No-
--declare-onlyRegistrar el clúster en la configuración sin aprovisionarloNo-
--network-cidr <cidr>CIDR de la red privada (p. ej. 10.0.0.0/24)No-
--network-primitive <primitive>Primitiva de red (p. ej. vlan, vpc, network)No-
--control-node <machine>Máquina de nodo de control explícita (predeterminado: primer miembro k8s-server)No-
--net-name <name>KVM: red libvirt para este clúster (p. ej. renet12)No-
--net-base <prefix>KVM: prefijo de red, los primeros tres octetos (p. ej. 192.168.112)No-
--net-offset <n>KVM: desplazamiento añadido al id de cada VM al derivar su direcciónNo-
--control-id <n>KVM: id de VM del nodo de control y registro (predeterminado: 1)No-
--docker-registry <endpoint>KVM: punto final del registro Docker dentro de la VM para este clústerNo-
--ssh-user <user>Usuario SSH para los miembros aprovisionadosNo-
--base-domain <domain>Dominio base para el DNS público del clúster (si no, heredado de una máquina hermana)No-
--control-ds-size <size>Tamaño del almacén de datos de control ancla (predeterminado 10G)No-
--control-ds-backend <backend>Backend del almacén de datos de control ancla: local | ceph (predeterminado: ceph si el clúster tiene Ceph, si no local)No-
--control-ds-pool <pool>Pool rbd de Ceph para el almacén de datos de control ancla (backend ceph)No-
--debugHabilitar salida de depuración (modo local)No-

4.2 status

Listar todos los clústeres, o mostrar la configuración completa de un clúster con --name.

rdc cluster status [cluster]

4.3 scale

Cambiar el número de miembros de un pool (agrega/elimina máquinas y une/drena nodos). Los pools k8s-agent escalan en el sitio; el crecimiento del pool ceph se hace directamente mediante cephadm.

rdc cluster scale <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--pool <pool>Nombre del pool-
--count <n>Número de miembros deseado-
--debugHabilitar salida de depuración (modo local)No-

4.4 destroy

Desmontar los miembros aprovisionados y eliminar el clúster y sus máquinas de la configuración.

rdc cluster destroy <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--forceOmitir la confirmación y continuar a pesar de errores de desmontajeNo-
--debugHabilitar salida de depuración (modo local)No-

4.5 kubeconfig

Obtener el kubeconfig del nodo de control del clúster por SSH y cachearlo localmente (0600) para kubectl.

rdc cluster kubeconfig <cluster>

4.6 fork

Clonar un clúster completo, incluidos los datos de sus repos, en un clúster nuevo: copy-on-write coordinado de las imágenes del clúster y de los PV, y luego reescritura de la identidad de nodo para que el fork arranque en nuevas direcciones. El original sigue en ejecución.

rdc cluster fork <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--tag <tag>Etiqueta del fork-
--to <dest-cluster>Clúster de destino cuyos nodos alojan el fork (su nodo de control y sus agentes); un clúster no puede bifurcarse hacia sus propias máquinas, ya que dos k3s no pueden compartir el mismo espacio de nombres de red del host-
--writes <disposition>Modo de escritura del fork: local (overlay dm-COW efímero, sin huella en Ceph) | ceph (clon duradero). Por defecto: localNo-
--upDesplegar los repos bifurcados y validar la salud del clúster después de que arranque el forkNo-
--debugHabilitar salida de depuración (modo local)No-

4.7 migrate

Mover un clúster completo, incluidos los datos de sus repos, a otra máquina o centro de datos con un cutover corto (precopia en caliente, luego detener y reiniciar en el destino).

rdc cluster migrate <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--to <dest-cluster>Destino-
--debugHabilitar salida de depuración (modo local)No-

4.8 join

Adoptar una máquina ya registrada como nodo agente de Kubernetes de un clúster, usando el mismo token de unión derivado de la CA que en el anclaje y en la reincorporación.

rdc cluster join <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--cluster <name>Clúster al que unir la máquina-
--debugHabilitar salida de depuración (modo local)No-

4.9 evict

Drenar el nodo, eliminar su objeto Node y borrar su pertenencia al clúster. El clúster se deriva de la máquina; se rechaza una máquina que todavía tiene montado un almacén de datos.

rdc cluster evict <machine> [options]
OpciónDescripciónObligatorioPredeterminado
--forceOmitir el drenaje cuando el nodo ya está caídoNo-
--debugHabilitar salida de depuración (modo local)No-

4.10 rehearse

Ensayar una versión o actualización: bifurcar el clúster hacia un destino como fork descartable efímero (writes=local, role=rehearsal, sin secretos), levantarlo, validar su salud y luego descartarlo. El original nunca se toca.

rdc cluster rehearse <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--on <dest-cluster>Clúster de destino donde arrancar el ensayo desechable-
--tag <tag>Etiqueta opcional para el fork de ensayo (por defecto: con marca de tiempo)No-
--debugHabilitar salida de depuración (modo local)No-

4.11 snapshot

Instantáneas puntuales de todo el clúster. Un único instante consistente ante fallos abarca todos los almacenes de datos con backend rbd que posee el clúster, tomado mediante la instantánea de grupo de Ceph: nada se detiene y el clúster ni se entera. Los almacenes de datos con backend local no tienen una primitiva de grupo a nivel de bloque, así que quedan fuera del instante y se reportan como tales. El instante es consistente ante fallos, no consistente a nivel de aplicación: si necesitas que una escritura específica quede DENTRO de la instantánea, sincronízala antes.

create

Toma una instantánea de todos los almacenes de datos con backend rbd del clúster en UN solo instante. Nada se detiene. Cualquier almacén de datos con backend local del clúster queda fuera de ese instante: no forma parte de la instantánea. El instante es consistente ante fallos, no consistente a nivel de aplicación: si necesitas que una escritura específica quede DENTRO de la instantánea, sincronízala antes.

rdc cluster snapshot create <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--snapshot <label>Etiqueta de la instantánea (por defecto: una marca de tiempo UTC)No-
--debugHabilitar salida de depuración (modo local)No-

list

Listar las instantáneas de grupo del clúster.

rdc cluster snapshot list <cluster> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

5. Servidor MCP

Servidor de Model Context Protocol para agentes de IA

5.1 serve

Iniciar servidor MCP (transporte stdio)

rdc mcp serve [options]
OpciónDescripciónObligatorioPredeterminado
--config <name>Nombre de configuración a usar para todos los comandosNo-
--timeout <ms>Tiempo de espera predeterminado de comando en milisegundosNo120000

6. Ciclo de vida de repositorios

Desplegar y gestionar repositorios cifrados en máquinas. Subcomandos clave: create, up (desplegar), down (detener), fork (clon CoW instantáneo), delete, push/pull (copia de seguridad), sync (transferencia de archivos). Ciclo de vida: repo create → repo up → repo down. Consulta Conceptos Clave en rdc --help para detalles de arquitectura, enrutamiento y variables de entorno.

6.1 up

Despliega o actualiza un repositorio (monta, ejecuta el up del Rediaccfile que invoca renet compose). La máquina se deriva de la ubicación de la referencia. Las rutas de proxy tardan ~3s en activarse tras el despliegue. Al finalizar, imprime el patrón de URL de los servicios expuestos por HTTP (etiqueta rediacc.service_port). El primer despliegue y los forks se montan automáticamente. La restauración de checkpoint CRIU se detecta automáticamente; usa --skip-checkpoint para forzar un inicio limpio. Usa --all --machine <m> para desplegar todos los repositorios de una máquina.

rdc repo up [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--no-startMontar y preparar el repositorio sin ejecutar sus pasos up() (integra el retirado 'repo mount'; abre LUKS y, para repositorios de clúster, genera el PV).No-
--skip-checkpointOmitir restauración de checkpoint CRIU aunque existan datos de checkpoint (forzar inicio limpio)No-
--tlsSolicitar certificado TLS dedicado para este repositorio (los forks usan el certificado compartido de la máquina por defecto)No-
--no-waitRetornar en cuanto los contenedores arrancan; las comprobaciones de salud continúan en segundo planoNo-
--allDesplegar todos los repositorios cuya casa sea --machine (forma por lotes)No-
-m, --machine <name>Con --all: la máquina cuyos repositorios recibirán el loteNo-
--include-forksTambién montar/iniciar repositorios bifurcadosNo-
--parallelIniciar repositorios de forma concurrenteNo-
--concurrency <n>Máximo de repositorios concurrentes (predeterminado: 3)No3
-y, --yesOmitir confirmación para operaciones por lotesNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

6.2 down

Detiene los contenedores Docker del repositorio (ejecuta el down del Rediaccfile vía renet compose). La máquina se deriva de la ubicación de la referencia. NO desmonta el volumen cifrado: el repositorio sigue montado y puede reiniciarse con 'repo up'. Usa --unmount para además cerrar el contenedor LUKS tras detenerse (integra el retirado 'repo unmount'). Usa --checkpoint para guardar el estado del proceso CRIU antes de detenerse (el siguiente 'repo up' lo restaura automáticamente). Usa --all --machine <m> para detener todos los repositorios de una máquina.

rdc repo down [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--unmountTambién desmontar (cerrar el contenedor LUKS) tras detenerse. Necesario antes de 'repo resize' o para asegurar completamente el volumenNo-
--checkpointCrear checkpoint CRIU antes de detener (guardar estado de memoria de procesos para restaurar luego via 'repo up')No-
--allDetener todos los repositorios cuya casa sea --machine (forma por lotes)No-
-m, --machine <name>Con --all: la máquina cuyos repositorios recibirán el loteNo-
--parallelIniciar repositorios de forma concurrenteNo-
--concurrency <n>Máximo de repositorios concurrentes (predeterminado: 3)No3
-y, --yesOmitir confirmación para operaciones por lotesNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

6.3 status

Obtener estado del repositorio

rdc repo status <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.4 cat

Leer una ventana acotada de un archivo dentro de un repositorio y escribirla en stdout (acotado en el servidor; los diagnósticos van a stderr)

rdc repo cat <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--remote-file <path>Ruta del archivo a leer, relativa a la raíz de montaje del repositorio-
--max-bytes <n>Máximo de bytes a leer e imprimir (por defecto 1 MiB, límite máximo 50 MiB)No-
--offset <n>Desplazamiento en bytes desde el que empezar a leerNo-
--head <lines>Imprimir solo las primeras N líneas (no se puede combinar con rango de bytes)No-
--tail <lines>Imprimir solo las últimas N líneas (no se puede combinar con rango de bytes)No-
--statImprimir solo tamaño, tipo y fecha de modificación; no leer contenidoNo-
--force-binaryPermitir la lectura de contenido binario (que contenga NUL)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.5 diff

Diff a nivel de archivo al estilo git entre dos repositorios bifurcados con copy-on-write. Reporta archivos añadidos, modificados, eliminados y renombrados. Compara el repositorio indicado por --name (lado objetivo/nuevo) con su padre, resuelto desde la configuración local, o con un --base explícito (lado base/antiguo). Solo metadatos e independiente del tamaño: compara las imágenes LUKS cifradas a nivel de bloque sin descifrarlas, así que un repo de 1 GB y otro de 100 GB se comparan en los mismos milisegundos.

rdc repo diff <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--base <ref>Repositorio con el que comparar (lado base/antiguo); por defecto el padre de --nameNo-
--name-onlyImprimir solo las rutas de archivos cambiados, una por línea (sin letras de estado)No-
--statMostrar magnitud de cambio por archivo (deltas de bytes y bloques) y totalesNo-
--content [path]Mostrar diff de texto unificado para un único archivo (requiere ruta de archivo)No-
--fastConfiar en el filtro de bloques; omitir confirmación por hash de contenido (puede sobre-reportar Modificado)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.6 list

Listar repositorios en una máquina

rdc repo list [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destinoNo-
--datastore <name>Listar los repositorios de este almacén de datos (resuelto a la máquina que lo posea actualmente)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.7 create

Crea un nuevo repositorio. Indica su ubicación una sola vez: una máquina o un almacén de datos.

rdc repo create <name> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destinoNo-
--datastore <name>Almacén de datos con nombre que aloja el repositorio (nivel docker, o la forma para clústeres)No-
--size <size>Tamaño del repositorio (ej. 10G, 100G, 1T)No-
--no-dockerOmitir el inicio del demonio Docker después de la creaciónNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.8 delete

Elimina un repositorio y sus datos. La entrada de configuración se conserva; usa --archive-config para mover las credenciales a deletedRepositories y poder recuperarlas con 'repo admin archive restore'. Toma una <ref> posicional; un nombre a secas resuelve a la línea grand y se rechaza cuando varios repos comparten el mismo nombre base, así que pasa nombre:etiqueta para apuntar a un fork.

rdc repo delete <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--archive-configMover entrada de configuración a deletedRepositories para recuperación posteriorNo-
-y, --yesOmitir indicador de confirmaciónNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

6.9 commit

Congela el estado actual de un fork de trabajo montado en un nuevo commit inmutable (similar a git). El commit registra su mensaje, autor, marca de tiempo y elemento padre dentro del volumen (para que viaje en el push) y se marca como solo lectura: rechaza ser montado. El fork de trabajo continúa sin cambios, igual que git deja intacto el árbol de trabajo. Extrae un commit con 'rdc repo checkout' para obtener una copia editable.

rdc repo commit <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--message <msg>Mensaje del commit-
--author <author>Autor del commitNo-
--debugHabilitar salida de depuración (modo local)No-

6.10 branch

Crea una referencia de branch con nombre que apunta al commit actual del fork de trabajo (su punta). Las referencias de branch residen en la configuración del CLI (máquina = almacén de objetos, configuración = almacén de referencias).

rdc repo branch <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--branch <branch>Nombre de la nueva rama-

6.11 checkout

Clona por reflink un commit inmutable (o la punta de un branch) en un nuevo fork de trabajo editable y apunta HEAD hacia él. Casi instantáneo y de tiempo constante (reflink de BTRFS).

rdc repo checkout <commit-or-branch-ref> [options]
OpciónDescripciónObligatorioPredeterminado
--tag <name>Nombre para el nuevo fork de trabajo editable-
--from <workingFork>Resolver el <commit-or-branch-ref> posicional como nombre de rama en este fork de trabajoNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.12 log

Imprime el historial de commits accesible desde el commit actual de un fork de trabajo (o desde una referencia de commit), recorriendo la cadena de elementos padre registrada por 'rdc repo commit'. Lee el espejo externo al volumen, por lo que ningún commit se desbloquea.

rdc repo log <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

6.13 merge

Fusiona un commit o fork de origen en un fork de trabajo de destino. El destino activo nunca se modifica en su lugar: el resultado se construye en un clon reflink y se intercambia de forma atómica. Un destino montado o en ejecución se rechaza salvo que se use --force, que primero lo detiene de forma limpia. Sin --resolve es un take-theirs de imagen completa (el destino se convierte en el origen); con --resolve ours|theirs es un merge a tres vías por archivo contra el ancestro común, que toma los cambios únicos de cada lado y resuelve los conflictos de ambos lados según el flag.

rdc repo merge <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--from <source>Commit o fork de origen desde el que fusionar-
--forceDetiene primero un destino montado/en ejecución y luego fusiona (nunca modifica un montaje activo)No-
`—resolve <ourstheirs>`Resolución de conflictos por archivo para una fusión a tres vías: 'ours' conserva la versión del destino, 'theirs' toma la del origen. Omítelo para un fast-forward de imagen completa (take-theirs).No
--base <guid>GUID del commit ancestro común para un merge a tres vías (se usa con --resolve). Por defecto, el padre del commit de origen o el commit actual del destino.No-
--debugHabilitar salida de depuración (modo local)No-

6.14 gc

Elimina objetos de commit inmutables en una máquina que ninguna rama o HEAD alcanza (GC por accesibilidad). La máquina es el almacén de objetos; la configuración del CLI es el almacén de referencias. Modo simulación por defecto: usa --apply para eliminar. Nunca toca un objeto montado ni un fork de trabajo.

rdc repo gc [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-
--applyEliminar realmente los commits inaccesibles (por defecto es una vista previa en modo simulación)No-
--debugHabilitar salida de depuración (modo local)No-

6.15 fork

Crea un fork CoW (Copy-on-Write) de un repositorio. EL FORK ES CASI INSTANTÁNEO Y DE TIEMPO CONSTANTE sin importar el tamaño del repositorio: el reflink de BTRFS clona la imagen subyacente, así que un repositorio de 100 GB y uno de 1 GB se bifurcan en los mismos ~segundos. El fork recibe un GUID, networkId, rango de IP y dominio de auto-ruta NUEVOS ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}), y es una copia totalmente independiente. Se admite el fork en línea: el padre puede seguir en ejecución. El fork hereda automáticamente las credenciales de cifrado del padre. Usa --checkpoint para capturar el estado del proceso CRIU antes de bifurcar; el fork se restaura automáticamente en el primer 'repo up' (se conserva el estado en memoria). FORK ENTRE MÁQUINAS: primero bifurca localmente y luego transfiere: (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine> --up. ADVERTENCIA: NO uses "repo push" solo para bifurcar, crea una copia en bruto con el MISMO GUID (no es un fork independiente). Bifurca siempre primero para obtener una identidad nueva. Las auto-rutas usan el nombre del repositorio, así que cada fork obtiene automáticamente un dominio único.

rdc repo fork <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--tag <name>Etiqueta para el fork (crea nombre:etiqueta)-
--checkpointCrear checkpoint CRIU en el origen antes de fork (capturar estado de memoria de procesos para restaurar en el fork)No-
--immutableMarca el fork como solo lectura: rechaza el montaje y mantiene su imagen estable a nivel de bytes para siempre (un commit/base congelado para el delta push entre máquinas)No-
--upMontar e iniciar servicios después de fork (fork + mount + up en un solo comando)No-
--no-waitCon --up: vuelve en cuanto los contenedores arrancan; los healthchecks continúan en segundo plano (ideal para forks desechables)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.16 replicate

Crea N réplicas de lectura de un repositorio en segundos, sin importar el tamaño de la base de datos. Toma UNA instantánea del almacén de datos y luego realiza N fork-attaches en tiempo constante (copy-on-write, escrituras locales desechables) repartidos entre los nodos del clúster, y aplica un overlay generado: un PersistentVolume fijado por réplica, un StatefulSet y dos Services ({repo}-rw hacia la primaria, {repo}-ro entre las réplicas). Las réplicas son copias de un momento puntual: sin flujo de replicación, sin lectura de las propias escrituras; cada réplica ejecuta una pasada de recuperación ante fallos antes de servir. Actualízalas con 'repo replicate refresh'. Los conjuntos de réplicas son estado gestionado: consulta 'repo replicate status' y elimínalos con 'repo replicate remove'.

status

Mostrar los conjuntos de réplicas gestionados: réplicas, nodos de alojamiento, almacenes de datos de fork, instantánea y marcas de tiempo de actualización.

rdc repo replicate status <ref>

remove

Eliminar un conjunto de réplicas: eliminar sus objetos k8s generados (limitado por labels), descartar sus almacenes de datos de fork, eliminar su instantánea y olvidar el estado. Los pasos de infraestructura son best-effort, de modo que la eliminación converge incluso en un clúster parcialmente desaparecido.

rdc repo replicate remove <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

refresh

Renovar cada réplica, UNA a la vez, a una instantánea nueva de un momento puntual: reiniciar el pod de la réplica, descartar y volver a hacer fork de su almacén de datos bajo la misma ruta, y dejar que la comprobación de disponibilidad (readiness) la vuelva a admitir. Mientras tanto, N-1 réplicas siguen sirviendo.

rdc repo replicate refresh <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

6.17 canary

Ejecutar una imagen NUEVA junto a la estable y repartir el tráfico en vivo entre ambas por porcentaje (peldaño 2 de la escalera de releases). Crea un Deployment + Service canary sobre los MISMOS datos en vivo (sin fork: los usuarios del canary sobre datos bifurcados leerían datos obsoletos y escribirían en una copia condenada) e indica al proxy de Rediacc que enrute el porcentaje indicado del tráfico del hostname estable hacia él. Un peso de 0 mantiene el canary oculto; un peso de 100 es el cambio blue/green. Antes de cada cambio de canary se toma automáticamente una instantánea de grupo de los almacenes de datos del clúster (peldaño 0 de la escalera de releases) como deshacer universal. La compatibilidad de esquema entre las dos versiones (expand-contract) es responsabilidad de la aplicación. Para releases que ROMPEN el esquema, usa blue/green en su lugar: bifurca el repositorio (instantáneo, incluye los datos), apunta el Service del fork aquí con un peso de 100, y revierte reiniciando el original intacto; las escrituras hechas después del cambio existen solo en la copia nueva, así que la ventana de reversión es una decisión de política.

status

Mostrar los conjuntos canary gestionados: peso, imágenes, Service estable y la última instantánea de deshacer de release.

rdc repo canary status <ref>

weight

Cambiar el porcentaje de tráfico enrutado a un canary. Primero toma una instantánea de grupo de deshacer de release nueva, luego vuelve a aplicar el overlay; el proxy adopta el nuevo reparto en su siguiente ciclo de actualización. Un peso de 100 envía todo el tráfico a la nueva versión (el cambio blue/green).

rdc repo canary weight <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--weight <percent>Porcentaje de tráfico enrutado al canary (entero 0-100; 0 = oculto, 100 = cambio completo)-
--debugHabilitar salida de depuración (modo local)No-

remove

Eliminar el Deployment y el Service de un canary (limitado por labels); el Service estable vuelve a servir el 100 %. Las instantáneas de deshacer de release se conservan; límpialas con los comandos de instantáneas del almacén de datos.

rdc repo canary remove <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

create

Ejecuta una imagen NUEVA junto a la estable y le envía un porcentaje del tráfico en vivo. El canary comparte los datos en vivo del repositorio (sin fork), así que la compatibilidad de esquema entre ambas versiones es responsabilidad de la aplicación. Antes se toma una instantánea de grupo de los almacenes de datos del clúster, como deshacer.

rdc repo canary create <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--image <image>Nueva imagen que ejecuta el Deployment canary (sobre los datos en vivo compartidos)-
--port <port>Puerto en el que sirve la app (debe coincidir con el Service estable)-
--weight <percent>Porcentaje de tráfico enrutado al canary (entero 0-100; 0 = oculto, 100 = cambio completo)-
--service <name>Service estable con el que repartir el tráfico (por defecto: el nombre del repositorio)No-
--replicas <n>Cantidad de réplicas del Deployment canary (por defecto: 1)No-
--debugHabilitar salida de depuración (modo local)No-

6.18 resize

Redimensionar un repositorio sin conexión (soporta expandir y reducir)

rdc repo resize <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--size <size>Nuevo tamaño del repositorio (ej. 10G, 100G, 1T)-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.19 expand

Expandir un repositorio montado en línea (sin tiempo de inactividad)

rdc repo expand <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--size <size>Nuevo tamaño del repositorio (ej. 10G, 100G, 1T)-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.20 trim

Recupera espacio del pool del almacén de datos desde repositorios montados (en línea, sin tiempo de inactividad). Los bloques eliminados dentro de los repositorios vuelven al pool mediante fstrim. Sin una referencia, se recortan todos los repositorios montados en -m además del propio almacén de datos. fstrim se omite en los repositorios con una copia de seguridad activa; la recuperación de --docker se ejecuta igualmente

rdc repo trim [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--dockerLiberar espacio de Docker (contenedores detenidos, imágenes colgantes, caché de build); se ejecuta incluso con una instantánea de copia de seguridad activaNo-
--docker-volumesEliminar además los volúmenes de Docker sin usarNo-
--report-onlyMostrar el estado de descartes y la estimación recuperable sin recortarNo-
-m, --machine <name>Nombre de la máquina de destinoNo-
--debugHabilitar salida de depuración (modo local)No-

6.21 policy

Gestiona la política de tamaño automática que aplica el mantenedor de almacenamiento de la máquina: amplía la cuota de un repositorio en línea cuando se llena (nunca más allá de max-quota, nunca con el pool escaso) y ejecuta recortes programados. No existe la reducción automática; para eso usa 'repo resize'. Sin una referencia, se gestiona la política predeterminada de toda la máquina en -m

set

Establece campos de la política de tamaño. Solo cambian los flags que pase; los demás campos guardados conservan sus valores. Activar el auto-crecimiento requiere --max-quota: el tope es su consentimiento explícito para sobreaprovisionar el pool

rdc repo policy set [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--auto-grow <bool>Activar el crecimiento automático de cuota en línea (true/false)No-
--max-quota <size>Tope del auto-crecimiento (p. ej. 200G); obligatorio para el auto-crecimientoNo-
--grow-threshold <percent>% de uso del sistema de archivos que dispara un crecimiento (predeterminado 85)No-
--grow-step <step>Crecimiento por paso: absoluto (10G) o porcentaje de la cuota (20%)No-
--auto-trim <bool>Activar el recorte programado (true/false)No-
--trim-interval <hours>Horas mínimas entre recortes automáticos (predeterminado 24)No-
-m, --machine <name>Nombre de la máquina de destinoNo-
--debugHabilitar salida de depuración (modo local)No-

get

Muestra el valor predeterminado de la máquina guardado, la anulación del repositorio (con una referencia) y la política efectiva combinada sobre la que actúa el mantenedor

rdc repo policy get [ref] [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destinoNo-
--debugHabilitar salida de depuración (modo local)No-

6.22 push

Enviar repositorio a un remoto (máquina o almacenamiento). Omitir el nombre para enviar todos los repos. El tipo de destino se detecta automáticamente desde la configuración. Para transferencia entre máquinas, la imagen cifrada del repo se copia con el MISMO GUID — esto es un respaldo/migración, no un fork. Para crear un fork independiente, use 'repo fork' primero, luego push. Use --up para desplegar después del push

rdc repo push <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--to <remote>Nombre de la máquina o almacenamiento de destino (detectado automáticamente desde la configuración)No-
--to-machine <machine>No-
--provision <provider>Aprovisionar automáticamente la máquina destino a través del proveedor de nube si no existeNo-
--checkpointCrear checkpoint CRIU antes del respaldo (captura el estado de memoria del proceso para migración en vivo)No-
--forceForzar sobrescritura del respaldo existenteNo-
-w, --watchObservar cambiosNo-
--bwlimit <limit>Límite de ancho de banda para transferencia rsync (ej: "6M", "10M")No-
--delta-base <guid>GUID base inmutable presente byte a byte idéntico en ambas máquinas; transfiere solo los bloques modificados (máquina destino). Omítelo para usar base automática sin intervenciónNo-
--strategy <strategy>Estrategia de delta por bloques al usar una base delta: auto, physical o sharedNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.23 pull

Obtener repositorio de un remoto (máquina o almacenamiento). Omitir el nombre para obtener todos los repos. El tipo de origen se detecta automáticamente desde la configuración. Use --up para desplegar después del pull

rdc repo pull <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--from <remote>Nombre de la máquina o almacenamiento de origen (detectado automáticamente desde la configuración)No-
--from-machine <machine>No-
--forceForzar sobrescritura del repositorio existenteNo-
--upDespués de pull, montar y desplegar el repositorio en esta máquinaNo-
-w, --watchObservar cambiosNo-
--bwlimit <limit>Límite de ancho de banda para transferencia rsync (ej: "6M", "10M")No-
--delta-base <guid>GUID base inmutable presente byte a byte idéntico en ambas máquinas; recibe solo los bloques modificados (máquina origen)No-
--strategy <strategy>Estrategia de delta por bloques al usar una base delta: auto, physical o sharedNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.24 migrate

Migra en vivo un repositorio de una máquina a otra con el mínimo tiempo de inactividad. rsync en dos fases: transferencia masiva mientras se ejecuta, luego una breve pausa para la sincronización delta. Mueve todo el repositorio (el enrutamiento se redirige al nuevo destino) y, una vez que el traslado tiene éxito, elimina las imágenes de origen (use --keep-source para conservarlas). Admite checkpoint de CRIU para la migración del estado de memoria de procesos y el aprovisionamiento automático de máquinas de destino

rdc repo migrate <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--to <place>Máquina o clúster de destino-
--provision <provider>Aprovisionamiento automático del destino vía proveedor cloud (ej: hetzner, linode)No-
--bwlimit <limit>Límite de ancho de banda para transferencia rsync (ej: 10M)No-
--checkpointMigración en vivo CRIU: capturar y restaurar estado de memoria de procesosNo-
--delta-base <guid>GUID base inmutable para el delta del corte (avanzado; usa por defecto la base de la Fase 1)No-
--strategy <strategy>Estrategia de delta por bloques para el corte: auto, physical o sharedNo-
--skip-dnsOmitir cambio de registros DNS después de la migraciónNo-
--keep-sourceConservar las imágenes de origen tras un traslado exitoso (por defecto se eliminan; las copias sobrantes no son direccionables por ningún registro de configuración y reconcile las marca como huérfanas)No-
--debugHabilitar salida de depuración (modo local)No-

6.25 sync

Sincronizar repositorios y archivos (push/pull masivo, transferencia de archivos)

upload

Subir archivos a un repositorio

rdc repo sync upload <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--local <paths...>Una o más rutas locales de archivo o directorio (predeterminado: directorio actual)No-
--remote <path>Ruta de subdirectorio remoto dentro del repositorioNo-
--remote-file <path>Ruta única de archivo remoto (relativa a la raíz del repositorio) como destino de subida. Mutuamente excluyente con --remote.No-
--mirrorModo espejo - eliminar archivos remotos no presentes localmenteNo-
--verifyVerificar archivos usando sumas de control después de sincronizaciónNo-
--confirmPrevisualizar cambios y solicitar confirmación antes de sincronizarNo-
--exclude <patterns...>Patrones a excluir de sincronizaciónNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

download

Descargar archivos de un repositorio

rdc repo sync download <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--local <path>Ruta de directorio local (predeterminado: directorio actual)No-
--remote <path>Ruta de subdirectorio remoto dentro del repositorioNo-
--remote-file <path>Ruta del archivo remoto en el repositorio (alternativa a --remote para transferencias de un solo archivo)No-
--mirrorModo espejo - eliminar archivos locales no presentes en remotoNo-
--verifyVerificar archivos usando sumas de control después de sincronizaciónNo-
--confirmPrevisualizar cambios y solicitar confirmación antes de sincronizarNo-
--exclude <patterns...>Patrones a excluir de sincronizaciónNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

status

Verificar el estado de sincronización y comparar archivos locales/remotos

rdc repo sync status <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--local <path>Ruta de directorio local (predeterminado: directorio actual)No-
--remote <path>Ruta de subdirectorio remoto dentro del repositorioNo-
--remote-file <path>Ruta del archivo remoto en el repositorio (alternativa a --remote para transferencias de un solo archivo)No-

6.26 tunnel

Crear un túnel SSH de reenvío de puertos al puerto de un contenedor en una máquina remota. Detecta automáticamente el contenedor y el puerto cuando no hay ambigüedad. El túnel permanece abierto hasta que presione Ctrl+C

rdc repo tunnel <ref> [options]
OpciónDescripciónObligatorioPredeterminado
-c, --container <name>Nombre del contenedor (detectado automáticamente si solo hay uno en ejecución)No-
--port <port>Puerto del contenedor remoto a reenviarNo-
--local <port>Puerto local (por defecto igual al puerto remoto)No-
--url-onlyImprimir solo la URL local cuando el túnel esté listo (legible por máquinas)No-

6.27 secret

Gestiona secretos por repositorio inyectados en el momento del despliegue. Solo escritura: get devuelve únicamente el digest (nunca el texto plano); set/unset requieren que --current coincida con el digest, o --rotate-secret. Dos modos de entrega: env (REDIACC_SECRET_<KEY>) y file (tmpfs en /var/run/rediacc/secrets/<networkId>/<KEY> vía `secrets:` de compose). Los secretos nunca entran en la imagen LUKS cifrada; los forks no heredan ninguno.

get

Muestra el digest SHA-256 de un secreto. El valor en texto plano nunca se devuelve, por diseño (solo escritura). Usa --current en un set/unset posterior para verificar un valor que ya conoces, o rótalo con `set --rotate-secret`.

rdc repo secret get <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--key <KEY>Clave secreta en UPPER_SNAKE_CASE (máx. 64 caracteres). Se expondrá como REDIACC_SECRET_<KEY> para el modo env o /run/secrets/<key> en contenedores para el modo file.-

list

Lista claves y modos de secreto (nunca valores, nunca digests).

rdc repo secret list <ref>

set

Establecer o sobrescribir un secreto. Los forks no heredan; establece en el fork explícitamente. Bajo contexto de agente, requiere coincidencia de digest --current (estilo passwd).

rdc repo secret set <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--key <KEY>Clave secreta en UPPER_SNAKE_CASE (máx. 64 caracteres). Se expondrá como REDIACC_SECRET_<KEY> para el modo env o /run/secrets/<key> en contenedores para el modo file.-
--value <value>Valor del secreto. Pasa `-` para leer desde stdin (evita exposición en historial de shell).-
--mode <mode>Modo de entrega: 'env' (visible en entorno del contenedor, docker inspect) o 'file' (archivo tmpfs, nunca en env). Por defecto: file.Nofile
--current <value>Valor anterior en texto plano (precondición al estilo passwd). Obligatorio para sobrescribir/eliminar; mutuamente excluyente con --rotate-secret.No-
--rotate-secretReconocer rotación; omitir precondición --current (auditado como rotación). Usar al rotar intencionalmente sin verificar el valor anterior.No-

unset

Elimina un secreto. Bajo contexto de agente, requiere coincidencia de digest --current.

rdc repo secret unset <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--key <KEY>Clave secreta en UPPER_SNAKE_CASE (máx. 64 caracteres). Se expondrá como REDIACC_SECRET_<KEY> para el modo env o /run/secrets/<key> en contenedores para el modo file.-
--current <value>Valor anterior en texto plano (precondición al estilo passwd). Obligatorio para sobrescribir/eliminar; mutuamente excluyente con --rotate-secret.No-
--rotate-secretReconocer rotación; omitir precondición --current (auditado como rotación). Usar al rotar intencionalmente sin verificar el valor anterior.No-

6.28 admin

Operaciones de administración y mantenimiento de repositorios.

archive

Gestión de registros de repositorios archivados.

list:

Listar credenciales de repositorios archivados

rdc repo admin archive list

purge:

Eliminar permanentemente todas las credenciales archivadas

rdc repo admin archive purge [name] [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-

restore:

Restaurar credencial de repositorio archivado

rdc repo admin archive restore <name> [options]
OpciónDescripciónObligatorioPredeterminado
--new-name <name>Nuevo nombre del recursoNo-

validate

Validar la integridad del repositorio

rdc repo admin validate <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

fsck

Valida las referencias de la configuración del CLI (ramas, HEAD) frente a los objetos realmente presentes en una máquina. Informa de referencias colgantes (una referencia que apunta a un objeto inexistente) y commits huérfanos (un commit inmutable que ninguna referencia alcanza). Solo lectura.

rdc repo admin fsck [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-

ownership

Cambiar propiedad del directorio del repositorio

rdc repo admin ownership <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--uid <uid>UID del propietario (predeterminado: 7111)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

autostart

Gestionar el inicio automático de repositorios al arrancar

enable:

Habilitar inicio automático para un repositorio

rdc repo admin autostart enable [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

disable:

Deshabilitar inicio automático para un repositorio

rdc repo admin autostart disable [ref] [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

list:

Listar repositorios con inicio automático habilitado

rdc repo admin autostart list [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

template

Aplicar una plantilla a un repositorio

list:

Listar todas las plantillas de despliegue integradas en la CLI

rdc repo admin template list

apply:

Aplica una plantilla a un repositorio. Use un nombre de plantilla integrada (p. ej. app-postgres) o --file para una plantilla JSON personalizada. Ciclo de vida del Rediaccfile: up() inicia los contenedores (descarga las imágenes, genera las configuraciones aquí), down() los detiene. Rediaccfile mínimo: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. IMPORTANTE: el Rediaccfile DEBE usar 'renet compose': 'docker compose' se rechaza. VARIABLES DE ENTORNO: dos niveles: (a) shell del Rediaccfile: ${SVCNAME_IP} (p. ej. APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) dentro de los contenedores: renet inyecta automáticamente las variables de entorno SERVICE_IP y REDIACC_NETWORK_ID. La reescritura de bind por eBPF gestiona el aislamiento de IP de forma transparente, así las apps pueden enlazarse a 0.0.0.0 y el kernel lo reescribe a la IP loopback correcta. Los health checks pueden usar localhost. network_mode:host se inyecta y ports: se ignora. ALMACENAMIENTO: tanto los bind mounts ${REDIACC_WORKING_DIR}/... como los volúmenes Docker con nombre son seguros: la raíz de datos de Docker está dentro del montaje LUKS cifrado. POLÍTICA DE REINICIO: las políticas de reinicio son seguras: renet las elimina automáticamente por compatibilidad con CRIU y el watchdog gestiona la recuperación. Compose: NO agregue network_mode ni etiquetas rediacc.* (renet las inyecta). Multiproyecto: coloque cada subproyecto en su propio subdirectorio con su propio Rediaccfile: renet los descubre y ejecuta automáticamente en orden. Enrutamiento HTTPS: (A) Auto-ruta (compatible con forks, recomendado): NO agregue traefik.enable. Renet genera automáticamente https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Agregue la etiqueta rediacc.service_port=<port> para puertos distintos de 80. Cada fork obtiene un dominio único. (B) Etiquetas Traefik (dominio personalizado, NO compatible con forks): traefik.enable=true, traefik.http.routers.<n>.rule=Host(`domain`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<port>. Para TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53

rdc repo admin template apply <ref> [options]
OpciónDescripciónObligatorioPredeterminado
--template <name>Plantilla a aplicar-
--file <path>Ruta a un archivo JSON de plantilla personalizada ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): reemplaza el nombre de la plantilla integradaNo-
--grand <name>Nombre del repositorio Grand (se resuelve automáticamente a GUID)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.29 promote

Reemplazar los datos del repositorio principal con los datos de un fork. El principal conserva su identidad (GUID, networkId, dominios, inicio automático, cadena de respaldos) pero obtiene los datos actualizados del fork. Los datos de producción anteriores se conservan como fork de respaldo. Uso: probar la actualización en el fork → verificar → tomar el control en producción.

rdc repo promote <fork-ref> [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

6.30 logs

Muestra los logs de aplicación de los contenedores de un repositorio. Los repositorios docker se leen desde el propio demonio Docker del repositorio; los de Kubernetes leen los logs de pod en el namespace del repositorio. Si el repositorio ejecuta más de un contenedor, indica cuál quieres con --container.

rdc repo logs <ref> [options]
OpciónDescripciónObligatorioPredeterminado
-c, --container <name>Contenedor a leer (solo necesario cuando el repositorio ejecuta más de uno)No-
-f, --followSeguir transmitiendo líneas nuevas hasta interrumpirNo-
--lines <n>Cuántas líneas de historial mostrar (por defecto: 100)No100
--timestampsAnteponer a cada línea su marca de tiempoNo-
--debugHabilitar salida de depuración (modo local)No-

6.31 exec

Ejecuta un comando dentro de un contenedor del repositorio. El código de salida del propio comando se propaga tal cual, así que funciona en scripts y condicionales. Los repositorios docker lo ejecutan a través del demonio Docker del repositorio; los de Kubernetes lo ejecutan en el namespace del repositorio.

rdc repo exec <ref> <cmd...> [options]
OpciónDescripciónObligatorioPredeterminado
-c, --container <name>Contenedor en el que ejecutar (solo necesario cuando el repositorio ejecuta más de uno)No-
-i, --interactiveAsignar una terminal (para un comando que la espera)No-
-u, --user <user>Usuario con el que ejecutar el comandoNo-
--debugHabilitar salida de depuración (modo local)No-

7. Trabajos desacoplados

Administra trabajos independientes en una máquina: lístalos, consulta su estado, reproduce o sigue sus registros de eventos, cancela uno, o elimina los ya finalizados. Un trabajo independiente se ejecuta bajo systemd en la máquina, por lo que sobrevive a una desconexión y se puede reconectar más tarde.

7.1 list

Lista los trabajos independientes de una máquina, los más recientes primero

rdc job list [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-

7.2 status

Muestra el estado de un trabajo independiente

rdc job status <job-id> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-

7.3 logs

Reproduce o sigue el registro de eventos de un trabajo independiente

rdc job logs <job-id> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-
-f, --followTransmite en continuo hasta que el trabajo finaliceNo-
--since-line <n>Reanuda después de esta cantidad de líneas (el total que ya recibiste)No-
--debugHabilitar salida de depuración (modo local)No-

7.4 cancel

Cancela un trabajo independiente en ejecución

rdc job cancel <job-id> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-
-y, --yesOmitir indicador de confirmaciónNo-

7.5 gc

Elimina los trabajos finalizados y sus registros

rdc job gc [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-
--older-than <duration>Recolecta trabajos que finalizaron hace más de este tiempo, en horas (por defecto: 168)No-
-y, --yesOmitir indicador de confirmaciónNo-

8. Copia de seguridad y restauración

Gestionar estrategias de copia de seguridad, sus ejecuciones programadas y los artefactos que producen: declarar una estrategia para un repositorio, ejecutarla o restaurarla a demanda, e inspeccionar los archivos que escribió en un endpoint de almacenamiento.

8.1 schedule

Desplegar la programación de respaldo en una máquina remota (temporizadores systemd)

rdc backup schedule [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquina-
--dry-runPrevisualizar unidades generadas sin desplegarNo-
--forceContinuar aunque haya una copia de seguridad en ejecución (la nueva unidad se aplica en el siguiente tick del temporizador; la ejecución en curso conserva su unidad anterior)No-
--reset-failedBorrar el estado de fallo en los servicios modificados tras un despliegue exitoso (desactivado por defecto, preserva la señal de fallo)No-
--debugHabilitar salida de depuración (modo local)No-

8.2 cancel

Cancelar un respaldo en ejecución en una máquina remota

rdc backup cancel [strategy] [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquina-
--debugHabilitar salida de depuración (modo local)No-

8.3 list

Listar artefactos de copia de seguridad en una máquina o almacenamiento.

rdc backup list [artifact-ref] [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquinaNo-
--storage <name>Listar artefactos en este almacenamientoNo-
--path <subdir>Subdirectorio dentro de la raíz del almacenamiento. Si se omite, se listan y combinan hot/ y cold/.No-
-w, --watchObservar cambiosNo-
--debugHabilitar salida de depuración (modo local)No-

8.4 restore

Convierte un artefacto de copia de seguridad en un repositorio activo. La ubicación se indica aquí.

rdc backup restore <artifact-ref> [options]
OpciónDescripciónObligatorioPredeterminado
--as <name>Nombre para el repositorio restaurado (por defecto, el nombre del artefacto)No-
-m, --machine <name>Nombre de máquinaNo-
--datastore <name>Restaurar en este almacén de datos con nombre (lo aloja la máquina a la que está acoplado)No-
--upDesplegar el repositorio restaurado tras la transferenciaNo-
--health-window <seconds>Ventana total de la puerta de salud, en segundos (por defecto 300)No-
--health-timeout <seconds>Tiempo de espera por intento de comprobación de salud, en segundos (por defecto 30)No-
-y, --yesOmitir indicador de confirmaciónNo-
--debugHabilitar salida de depuración (modo local)No-

8.5 run

Ejecutar un respaldo inmediatamente en una máquina remota

rdc backup run [strategy] [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquina-
-w, --watchObservar cambiosNo-
--debugHabilitar salida de depuración (modo local)No-

8.6 status

Mostrar estado de respaldo y estado del temporizador en una máquina remota

rdc backup status [strategy] [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquina-
--debugHabilitar salida de depuración (modo local)No-

8.7 strategy

Gestionar estrategias de respaldo con nombre (modos caliente/frío, destinos, programación)

set

Crear o actualizar una estrategia de respaldo

rdc backup strategy set <strategy> [options]
OpciónDescripciónObligatorioPredeterminado
--destination <name>Nombre del destino dentro de la estrategiaNo-
--storage <name>Nombre de la configuración de almacenamiento (credenciales rclone)No-
--cron <expression>Programación cron (ej. "0 * * * *" para cada hora)No-
--mode <mode>Modo de respaldo: "hot" (sin tiempo de inactividad) o "cold" (detener, instantánea, reiniciar)No-
--bwlimit <limit>Límite de ancho de banda de rclone (ej. "6M", "10M:off", "08:00,3M;22:00,10M")No-
--include <repos>Respaldar solo estos repos (nombres separados por comas)No-
--exclude <repos>Excluir estos repos del respaldo (nombres separados por comas)No-
--folder <path>Subcarpeta en el bucket de almacenamiento para este destino (p. ej. hot, cold)No-
--enableHabilitar la estrategia o destinoNo-
--disableDeshabilitar la estrategia o destinoNo-

bind

Vincular una estrategia de respaldo a una máquina para desplegar su programación allí

rdc backup strategy bind <strategy> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-

unbind

Desvincular una estrategia de respaldo de una máquina

rdc backup strategy unbind <strategy> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de la máquina de destino-

remove

Eliminar una estrategia de respaldo o destino

rdc backup strategy remove <strategy> [options]
OpciónDescripciónObligatorioPredeterminado
--destination <name>Eliminar solo este destino (conserva los demás destinos)No-

list

Listar todas las estrategias de respaldo

rdc backup strategy list

show

Mostrar detalles de la estrategia de respaldo

rdc backup strategy show [strategy]

9. Gestión de Almacenamiento

Gestionar endpoints externos de almacenamiento de copias de seguridad (S3 y otros destinos compatibles con rclone): registrarlos y eliminarlos, listar lo que hay registrado, explorar los artefactos que contienen y depurar copias de seguridad huérfanas.

9.1 list

Listar los almacenamientos. Indica un nombre para ver el detalle completo.

rdc storage list [name] [options]
OpciónDescripciónObligatorioPredeterminado
--revealMostrar la configuración de almacenamiento en texto claro (solo TTY interactivo; auditado)No-

9.2 browse

Explorar archivos en un sistema de almacenamiento

rdc storage browse <storage> [options]
OpciónDescripciónObligatorioPredeterminado
--path <subpath>Ruta del subdirectorio a listarNo

9.3 prune

Eliminar copias de seguridad huérfanas del almacenamiento que ya no están en ninguna configuración. Seguro con múltiples configuraciones con protección de período de gracia.

rdc storage prune <storage> [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Máquina ejecutora: ejecuta las llamadas list/delete de rclone contra el almacenamiento. Requerida porque los clientes no se espera que tengan rclone instalado localmente; las credenciales de almacenamiento siguen viniendo de tu configuración local.-
--dry-runMostrar lo que se haría sin realizar cambiosNo-
--forceOmitir indicadores de confirmaciónNo-
--force-delete-mountedAnula la verificación de seguridad de montaje y elimina copias de seguridad en la nube incluso si el GUID origen está actualmente montado o tiene un contenedor en ejecución en la máquina ejecutora. Distinto de --force (que solo anula el período de gracia para repos archivados).No-
--grace-days <days>Período de gracia en días para repositorios archivados recientemente (predeterminado: 7)No-
--debugHabilitar salida de depuración (modo local)No-
--skip-router-restartOmitir reinicio del servidor de rutas tras actualización del binarioNo-

9.4 add

Registrar un almacenamiento.

rdc storage add <name> [options]
OpciónDescripciónObligatorioPredeterminado
--vault <json>Contenido de bóveda como cadena JSON-

9.5 import

Importar almacenamientos desde un archivo de configuración rclone

rdc storage import <file> [options]
OpciónDescripciónObligatorioPredeterminado
--name <name>Importar solo esta sección nombradaNo-

9.6 remove

Eliminar un almacenamiento de la configuración.

rdc storage remove <name> [options]
OpciónDescripciónObligatorioPredeterminado
-y, --yesOmitir indicador de confirmaciónNo-
--dry-runMostrar lo que se haría sin realizar cambiosNo-

10. Integración con VS Code

Abrir VS Code Remote SSH en una máquina o repositorio

10.1 connect

Abrir VS Code en una máquina o dentro de un repositorio.

rdc vscode connect <target> [options]
OpciónDescripciónObligatorioPredeterminado
-f, --folder <path>Ruta de carpeta remota a abrirNo-
--url-onlyImprimir URI de VS Code en lugar de lanzarNo-
-n, --new-windowAbrir en nueva ventana de VS CodeNo-
--skip-env-setupOmitir configuración de entorno remotoNo-
--insidersUsar configuración de VS Code InsidersNo-
--browserServir VS Code en el navegador desde el sandbox del repositorio (no se necesita VS Code local)No-
--no-openImprimir la URL sin abrir el navegador localNo-
--local <port>Puerto local (por defecto igual al puerto remoto)No-
--server-provider <id>Implementación del servidor VS Code para el navegador (openvscode, code-server)No-
--server-archive <file>Ruta al tarball del servidor preinstalado en la máquina (instalaciones sin conexión)No-

10.2 list

Listar conexiones SSH de VS Code configuradas

rdc vscode list

10.3 cleanup

Eliminar configuraciones SSH de VS Code

rdc vscode cleanup [options]
OpciónDescripciónObligatorioPredeterminado
--allEliminar todas las configuraciones SSH de rediaccNo-
-c, --connection <name>Eliminar conexión específicaNo-

10.4 check

Verificar instalación y configuración de VS Code

rdc vscode check [options]
OpciónDescripciónObligatorioPredeterminado
--insidersUsar configuración de VS Code InsidersNo-

10.5 serve

Gestionar el servidor VS Code en el navegador dentro del sandbox

status

Mostrar si el servidor VS Code del navegador está en ejecución

rdc vscode serve status <target> [options]
OpciónDescripciónObligatorioPredeterminado
--server-provider <id>Implementación del servidor VS Code para el navegador (openvscode, code-server)No-

stop

Detener el servidor VS Code del navegador

rdc vscode serve stop <target> [options]
OpciónDescripciónObligatorioPredeterminado
--server-provider <id>Implementación del servidor VS Code para el navegador (openvscode, code-server)No-

11. Acceso Terminal SSH

Abre una terminal SSH a una máquina o a un repositorio. El destino es un nombre de máquina o una referencia de repositorio, y el contexto del repositorio (DOCKER_HOST, directorio de trabajo, entorno) se configura automáticamente. Usa `-c` para ejecutar un único comando de forma no interactiva. Para logs de contenedor o un comando puntual en un contenedor, usa `repo logs` y `repo exec`. Para VS Code, usa `vscode`.

11.1 connect

Abrir una shell en una máquina, o dentro de un repositorio con su Docker configurado.

rdc term connect <target> [options]
OpciónDescripciónObligatorioPredeterminado
-c, --command <cmd>Ejecutar un comando en lugar de shell interactivoNo-
--externalForzar lanzamiento en ventana de terminal externaNo-
--reset-homeRestablecer la capa de inicio por repositorio para empezar de nuevoNo-

12. Comandos Rápidos (Atajos)

12.1 run

Ejecutar una función (atajo para: queue create)

rdc run

12.2 trace

Rastrear una tarea (atajo para: queue trace)

rdc trace

12.3 cancel

Cancelar una tarea (atajo para: queue cancel)

rdc cancel

12.4 retry

Reintentar una tarea fallida (atajo para: queue retry)

rdc retry

13. Gestión de Suscripciones

Gestionar licencias y tokens de suscripción. Inicia sesión con login, inspecciona con status, reemite licencias con refresh.

13.1 login

Autenticarse con un token API del portal web

rdc subscription login [options]
OpciónDescripciónObligatorioPredeterminado
-t, --token <token>Token API (rdt_...)No-
--server <url>URL del servidor de cuentaNo-

13.2 logout

Eliminar el token de suscripción almacenado

rdc subscription logout

13.3 status

Mostrar la suscripción y el estado de licencia de una máquina.

rdc subscription status [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquinaNo-

13.4 refresh

Renovar licencias desde el servidor de cuenta.

rdc subscription refresh [options]
OpciónDescripciónObligatorioPredeterminado
-m, --machine <name>Nombre de máquinaNo-
--repo <ref>Referencia de repositorio: nombre, o nombre:etiqueta, opcionalmente con @machine (por ejemplo shop o shop:test)No-

14. Actualizaciones de CLI

Verificar y aplicar actualizaciones del CLI

rdc update [options]
OpciónDescripciónObligatorioPredeterminado
--forceForzar actualización aunque esté al díaNo-
--check-onlySolo verificar actualizaciones sin descargarNo-
--rollbackRevertir a la versión anteriorNo-
--statusMostrar estado y diagnósticos de actualización automáticaNo-
--channel <channel>Establecer canal de lanzamiento (stable o edge)No-

15. Créditos de Terceros

Imprimir los componentes de terceros incluidos con rdc: los binarios que renet integra y transporta (CRIU, rsync, rclone), el runtime de Node.js integrado y las dependencias npm incluidas. Muestra versiones, identificadores de licencia SPDX y las URLs de archivo fuente de versión exacta requeridas para el cumplimiento de GPL. Usa --licenses para imprimir el texto completo de THIRD_PARTY_LICENSES incluido con las compilaciones de lanzamiento.

rdc credits [options]
OpciónDescripciónObligatorioPredeterminado
--licensesImprimir el texto completo de THIRD_PARTY_LICENSES incluido con las compilaciones de lanzamientoNo-

16. Diagnóstico del sistema

Diagnosticar el entorno CLI y la integración de renet

rdc doctor

17. Operaciones locales de VM

Aprovisionamiento y gestión de VMs locales usando KVM/QEMU/Hyper-V (la plataforma se detecta automáticamente). No es para máquinas remotas — para eso usa `machine`. Subcomandos clave: up (iniciar VMs), down (detener), status (listar VMs en ejecución), ssh (conectar a la VM), setup (instalar prerrequisitos), check (verificar que el host esté listo).

17.1 up

Aprovisionar clúster de VM localmente

rdc ops up [options]
OpciónDescripciónObligatorioPredeterminado
--forceForzar reinicio de todas las VMNo-
--parallelCrear VM en paraleloNo-
--basicClúster mínimo (puente + 1 trabajador)No-
--liteOmitir aprovisionamiento de VM (solo estado)No-
--skip-orchestrationOmitir orquestación del clústerNo-
--backend <backend>Backend de virtualización (kvm|qemu, detección automática)No-
--os <name>Sistema operativo de VM (ej., ubuntu-24.04, debian-12)No-
--debugHabilitar salida de depuración (modo local)No-

17.2 down

Destruir clúster de VM

rdc ops down [options]
OpciónDescripciónObligatorioPredeterminado
--backend <backend>Backend de virtualización (kvm|qemu, detección automática)No-
--debugHabilitar salida de depuración (modo local)No-

17.3 status

Mostrar estado del clúster de VM

rdc ops status [options]
OpciónDescripciónObligatorioPredeterminado
--backend <backend>Backend de virtualización (kvm|qemu, detección automática)No-

17.4 ssh

Conectar por SSH a una VM

rdc ops ssh [options]
OpciónDescripciónObligatorioPredeterminado
--vm-id <id>ID de máquina virtual-
-c, --command <cmd>Ejecutar un comando en lugar de shell interactivoNo-
--backend <backend>Backend de virtualización (kvm|qemu, detección automática)No-
--user <user>Nombre de usuario SSH para conexión a VMNo-

17.5 setup

Instalar prerequisitos de virtualización

rdc ops setup [options]
OpciónDescripciónObligatorioPredeterminado
--debugHabilitar salida de depuración (modo local)No-

17.6 check

Verificar prerequisitos de virtualización

rdc ops check

18. Servicio ejecutor

Ejecuta este proceso como ejecutor para que los clientes puedan ejecutar comandos a través de él en lugar de conectarse ellos mismos por SSH

rdc serve [options]
OpciónDescripciónObligatorioPredeterminado
-p, --port <port>Puerto en el que escucharNo8080
--host <host>Dirección a la que enlazarNo0.0.0.0
--mode <mode>Ubicación: daemon (host del cliente) o containerNodaemon

Mensajes de Error Comunes

Cuando algo sale mal, la CLI proporciona mensajes de error claros:

ErroresSignificado
Se requiere autenticación. Ejecute: rdc subscription loginNecesita iniciar sesión primero
Sin configuración activa. Cree una con: rdc config init <name>No hay configuración activa — cree una con `rdc config init`
Permiso denegadoSu cuenta no tiene los permisos requeridos
Nombre de máquina requerido. Use --machine <name>Especifique una máquina con `--machine` o establezca un valor predeterminado de contexto
Nombre de equipo requerido. Use --team o establezca un valor predeterminado con: rdc config set team <name>Especifique un equipo con `--team` o establezca un valor predeterminado de contexto
Nombre de región requerido. Use --region o establezca un valor predeterminado con: rdc config set region <name>Especifique una región con `--region` o establezca un valor predeterminado de contexto

Formatos de Salida

Todos los comandos de listado/obtención admiten múltiples formatos de salida a través de `--output`:

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

Esto facilita la integración de la CLI de Rediacc en scripts, pipelines CI/CD y flujos de trabajo de automatización.