feature/interfaz-binarios

This commit is contained in:
2026-07-30 07:27:44 -06:00
46 changed files with 5944 additions and 588 deletions

View File

@@ -4,6 +4,18 @@ PANEL_MSSQL_USER=sa
PANEL_MSSQL_PASSWORD=Clave.2025
# En contenedor Docker: reescribe localhost en server_name → host.docker.internal
# PANEL_MSSQL_DOCKER=true
# Depuración de bases duplicadas: tolerancia de tamaño (fracción 01) para marcar una base como
# segura para borrar del servidor viejo. El nuevo debe pesar >= (1 - tolerancia) del viejo. Default 0.2.
# PANEL_DEDUP_SIZE_TOLERANCE=0.2
# "Mandar al nuevo": carpeta donde el SQL viejo escribe el .bak (default: data_folder del servidor).
# PANEL_DEDUP_BACKUP_FOLDER=
# Ventana de verificación tras enviar (ms) antes de dar la base por "en tránsito". Default 180000.
# PANEL_DEDUP_MOVE_VERIFY_TIMEOUT_MS=180000
# Intervalo de sondeo de la verificación (ms). Default 5000.
# PANEL_DEDUP_MOVE_POLL_MS=5000
# requestTimeout de SQL Server para BACKUP/DROP (el default de node-mssql, 15 s, no alcanza para
# bases reales). Default 3600000 (1 h).
# PANEL_DEDUP_DDL_TIMEOUT_MS=3600000
# PostgreSQL - Usuarios del panel + catálogo ControlDesk (tablas a24c.* las crea otra app)
DB_POSTGRES_HOST=localhost
@@ -39,9 +51,15 @@ SMTP_USE_TLS=true
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
CLOUDRESTORE_API_TOKEN=
# Clave AES-256 (32 bytes) para cifrar credenciales SQL/SSH de restore_targets en reposo.
# Solo la usa el panel; CloudRestoreAS no necesita esta variable.
# Generar con:
# Clave compartida con a24c para cifrar la contraseña SQL de los nodos en reposo.
# El panel cifra en Fernet (AES-128-CBC + HMAC) derivando la clave como sha256(SECRET_KEY),
# EXACTAMENTE igual que a24c, para que a24c pueda descifrar database_nodes.sql_password.
# ⚠️ DEBE ser idéntica a la SECRET_KEY del backend de a24c, o a24c no podrá conectar.
SECRET_KEY=
# [LEGADO] Clave AES-256 (32 bytes) del formato antiguo `gcm:` del panel. Solo se usa para
# LEER credenciales cifradas antes de migrar a Fernet; las nuevas se escriben con SECRET_KEY.
# Puede quedar vacía en instalaciones nuevas. Generar (si aplica) con:
# node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
ENCRYPTION_KEY=