Inicio rápido
Instale Rediacc en su propio servidor. Entornos de contenedores cifrados y aislados, sin cuentas en la nube ni dependencias de SaaS. Su hardware, su control.
Introducción
Conceptos clave
Un repo es un único archivo cifrado en disco. Muévalo, haga una copia de seguridad, bifúrquelo. Es solo un archivo. Cuando se monta, se convierte en una carpeta con un daemon Docker dedicado y los datos de su aplicación dentro.
Piense en un repo como una unidad USB. Conéctela a cualquier máquina y las aplicaciones y datos se montan listos para ejecutarse. Muévase entre máquinas o proveedores de nube sin reconstruir nada.
Dos herramientas, dos roles:
- rdc = CLI en su portátil (TypeScript, instalado globalmente)
- renet = orquestador en el servidor (binario Go, gestiona daemons/redes/aislamiento)
- RDC aprovisiona renet automáticamente durante
config machine setup. No requiere configuración manual en el servidor.
Arquitectura explica el modelo de seguridad. rdc vs renet explica qué herramienta usar en cada caso.
1. Instalar la CLI
curl -fsSL https://www.rediacc.com/install.sh | bash
rdc doctor # Verificar: Node, clave SSH, renet, Docker
Windows, Alpine, Arch: consulte Instalación. Requisitos completos del sistema: Requisitos.
2. Configuración de clave SSH
rdc se conecta a través de SSH. El servidor debe confiar en su clave pública antes de que rdc pueda acceder a él.
# Generar una clave (omita si ya tiene una)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
# Copiar la clave pública al servidor (pedirá contraseña)
ssh-copy-id -i ~/.ssh/id_ed25519 user@your-server-ip
# Indicar a rdc qué clave usar
rdc config ssh set --key ~/.ssh/id_ed25519
Ahora todos los comandos de rdc se autentican con esta clave. Sin contraseñas.
3. Agregar su servidor
rdc machine add my-server --ip 192.168.1.100 --user admin
rdc machine setup my-server # Aprovisiona renet + crea almacén de datos
Qué sucede: Se escanea la clave del host SSH, se sube el binario de renet y se inicializa el almacén de datos cifrado en el servidor. Listo para repos.
Dimensionamiento del almacén, Ceph RBD, proveedores de nube: Configuración de máquina. Fallos de SSH: Solución de problemas.
4. Archivo de configuración
rdc config show # Resumen legible
cat ~/.config/rediacc/rediacc.json # JSON sin procesar: máquinas, repos, almacenamientos, clave SSH
Un archivo = un entorno. Cópielo a otro portátil y estará listo.
Trabajar con un repo
1. Crear un repo
rdc repo create my-app -m my-server --size 2G # Crear repo cifrado de 2 GB
Crea el volumen cifrado, lo monta e inicia su daemon Docker. El repo se registra en su configuración y está listo para usar.
Redimensionar, eliminar, validación: Repositorios.
2. Aplicar una plantilla
rdc repo admin template list # Mostrar plantillas integradas
rdc repo admin template apply my-app --template app-postgres # Despliega docker-compose.yml + Rediaccfile
Las plantillas proporcionan un docker-compose.yml, Rediaccfile y archivos de soporte. Sin una plantilla (o su propio archivo compose), no hay nada que iniciar. Use la plantilla integrada para su primer repo. Es el camino más rápido para ver el flujo de trabajo completo de principio a fin.
3. Iniciar el repo
rdc repo up my-app # Ejecutar Rediaccfile up()
rdc repo list -m my-server # Ver todos los repos en la máquina
rdc repo status my-app # Estado de montaje, Docker, tamaño, cifrado
repo up auto-monta si es necesario. No se requieren flags adicionales.
4. VS Code
rdc vscode connect my-app # Abre VS Code SSH, aterriza dentro del sandbox del repo
Está editando archivos dentro del volumen cifrado. docker ps solo muestra los contenedores de este repo. Guarde, compose up, itere.
5. rdc repo up vs renet dev up
rdc repo up | renet dev up | |
|---|---|---|
| Dónde se ejecuta | Su portátil (CLI) | Dentro del sandbox de VS Code |
| Qué hace | SSH → auto-montaje → ejecuta Rediaccfile up() | Ejecuta Rediaccfile up() directamente |
| Caso de uso | CI/CD, automatización, operaciones remotas | Ciclo interno del desarrollador |
| Aislamiento | Orquesta desde afuera | Ya está dentro del sandbox |
Flujo de demostración: rdc repo admin template apply → rdc vscode connect my-app → editar docker-compose.yml → renet dev up → ver la app ejecutándose → iterar.
Estructura del Rediaccfile: Servicios. Cuándo usar cada herramienta: rdc vs renet.
6. Modelo de aislamiento
- Usuario universal (
rediacc): Mismo UID en cada máquina. Mueva un repo a otro servidor y la propiedad de archivos simplemente funciona. Sin dolores de cabeza conchown. - Daemon Docker por repo: Cada repo obtiene su propio daemon Docker aislado.
docker pssolo muestra los contenedores de ESTE repo. - Sandbox con Landlock + OverlayFS: La shell de VS Code tiene restricción de sistema de archivos. No puede leer otros repos. Las escrituras en
$HOMEson overlays por repo.
Cómo funciona el aislamiento: Arquitectura. Ciclo de vida del Rediaccfile: Servicios.
7. Terminal, sincronización y túnel
Terminal:
rdc term connect my-app # SSH al sandbox del repo
rdc term connect my-app -c "curl localhost:3000" # Ejecutar comando y salir
rdc term connect my-server # SSH a la máquina (sin sandbox)
Sincronización de archivos (rsync sobre SSH):
rdc repo sync upload my-app --local ./src # Subir un directorio
rdc repo sync upload my-app --local ./config.yml --remote conf # Subir un archivo
rdc repo sync download my-app --local ./backup # Descargar un directorio
rdc repo sync download my-app --remote-file conf/config.yml --local ./dl # Descargar un archivo
rdc repo sync download my-app --local ./backup --dry-run # Previsualizar primero
Túnel (reenvío de puertos SSH al contenedor):
rdc repo tunnel my-app -c app # Auto-detectar puerto para el contenedor app
rdc repo tunnel my-app -c db --port 5432 # Túnel a Postgres
rdc repo tunnel my-app -c db --port 5432 --local 15432 # Puerto local personalizado
Ejecute tunnel → abra localhost:3000 en el navegador → app en vivo desde el servidor remoto.
Detalles de sincronización, terminal, VS Code: Herramientas.
Fork y copia de seguridad
1. Grand y fork de repos
rdc repo fork my-app --tag experiment --up # Clon CoW instantáneo + iniciar
rdc repo list -m my-server # Muestra: my-app (grand) + my-app:experiment (fork)
rdc repo delete my-app:experiment # Eliminar fork, grand intacto
Clon instantáneo, sin copia de datos. CoW (copy-on-write). Microsegundos, sin datos copiados. Los bloques se comparten hasta que un lado escribe.
Casos de uso:
- AI / ML: Fork del dataset de producción, ejecutar experimento, descartar o promover
- DevOps: Fork → probar migración → eliminar si falla, promover si funciona
- Copia de seguridad: Fork = snapshot instantáneo, envíelo fuera del sitio
Ciclo de vida del fork, forks entre máquinas: Repositorios.
2. Push a otra máquina
# Enviar repo a otra máquina
rdc repo push my-app --to backup-server
# Enviar y auto-desplegar en el destino
rdc backup restore my-app --as my-app -m backup-server --up
# Enviar con checkpoint CRIU (migración en vivo, preserva estado de memoria)
rdc repo push my-app --to new-server --checkpoint
# Enviar a una nueva máquina (auto-aprovisionamiento via proveedor de nube)
rdc repo push my-app --to new-server --provision linode
3. Push a almacenamiento en la nube (OneDrive, Google Drive, S3)
# Importar su configuración de rclone como backend de almacenamiento
rdc storage import ~/rclone.conf
# Listar almacenamientos disponibles
rdc storage list
# Enviar repo a almacenamiento en la nube
rdc repo push my-app --to my-s3-backup
# Listar copias de seguridad en almacenamiento
rdc backup list --storage my-s3-backup
--to auto-detecta si el destino es una máquina o un backend de almacenamiento. Funciona con cualquier proveedor soportado por rclone: S3, R2, B2, OneDrive, Google Drive, SFTP, etc.
4. Pull desde remoto
# Traer repo desde una máquina en la nube a su servidor local
rdc repo pull my-app@my-local-server --from cloud-server
# Traer desde almacenamiento en la nube
rdc repo pull my-app@my-local-server --from my-s3-backup
# Traer e iniciar inmediatamente
rdc repo pull my-app@my-local-server --from my-s3-backup --up
¿Por qué pull? Su máquina local está detrás de NAT. La nube no puede enviar hacia usted. Pero usted puede alcanzar la nube. Pull trae el repo a casa.
Ciclo completo: Crear en dev → push a la nube → pull en producción → --up. Un repo, cualquier máquina, cualquier nube.
Programación, copias de seguridad automáticas, restauración: Copia de seguridad y restauración.
Proxy y SSL
1. Configuración de infraestructura
rdc machine infra set my-server # Configurar: dominio base, IPs públicas, rangos de puertos
rdc machine infra show my-server # Revisar configuración
rdc machine infra push my-server # Enviar configuración de proxy al remoto
Cómo funciona el enrutamiento:
- Traefik auto-descubre contenedores via las etiquetas
rediacc.service_nameyrediacc.service_port - Rutas:
{service}-{networkId}.{baseDomain}→ IP del contenedor:puerto - SSL: Let’s Encrypt via desafío DNS-01 de Cloudflare (renovación automática, certificados wildcard)
2. Plantilla de proxy
rdc repo admin template apply infra --template proxy # Desplegar proxy en un repo
rdc repo up infra # Iniciar Traefik
Traefik ahora enruta el tráfico externo a todos los repos en esta máquina. Cada contenedor obtiene un endpoint HTTPS automáticamente.
# Navegar a https://my-app.example.com → enrutado al contenedor
# Reenvío TCP/UDP para bases de datos:
# rediacc.tcp_ports=3306,5432 → puertos externos auto-asignados
Reglas de enrutamiento, DNS, configuración TLS: Redes.
Próximos pasos
- Guía de migración - Incorporar proyectos existentes a repositorios Rediacc
- Monitoreo - Salud de la máquina, contenedores, servicios, diagnósticos
- Referencia de la CLI - Referencia completa de comandos
- Hoja de referencia - Búsqueda rápida de comandos
- Solución de problemas - Soluciones para problemas comunes
- Reglas de Rediacc - Mejores prácticas del Rediaccfile y lista de verificación de despliegue