77 lines
3.5 KiB
Plaintext
77 lines
3.5 KiB
Plaintext
# Credenciales SQL Server (mismo usuario en todos los nodos salvo sql_password en database_nodes).
|
|
# Si no defines PANEL_MSSQL_*, se usan DB_PRIMARY_* / DB_SECONDARY_* como respaldo.
|
|
PANEL_MSSQL_USER=sa
|
|
PANEL_MSSQL_PASSWORD=Clave.2025
|
|
# En contenedor Docker: reescribe localhost en server_name → host.docker.internal
|
|
# PANEL_MSSQL_DOCKER=true
|
|
|
|
# PostgreSQL - Usuarios del panel + catálogo ControlDesk (tablas a24c.* las crea otra app)
|
|
DB_POSTGRES_HOST=localhost
|
|
DB_POSTGRES_PORT=5434
|
|
DB_POSTGRES_USER=postgres
|
|
DB_POSTGRES_PASS=Control.
|
|
DB_POSTGRES_DB=CONTROLDESK
|
|
|
|
# JWT Secret (cambiar en producción)
|
|
JWT_SECRET=change-this-secret-in-production-please-use-a-long-random-string
|
|
|
|
# Ruta de respaldos (LEGACY / fallback): carpeta única leída por la vista "Respaldos
|
|
# Almacenados" y por /backup?file=... cuando no se especifica restaurador. Las vistas nuevas
|
|
# "Respaldos Restaurados" y "Restores Fallidos" resuelven la carpeta de CADA restaurador de
|
|
# forma relativa (derivada de la Entrada que reporta cada uno), sin usar esta variable.
|
|
# Apúntala a una carpeta de procesados accesible por filesystem (local o share) si usas el modo legacy.
|
|
BACKUP_PATH=D:/BackupSFTP/
|
|
|
|
# SMTP para envío de avisos de alertas críticas
|
|
# Si SMTP_HOST está vacío los botones "Enviar avisos" no hacen nada (sin error).
|
|
SMTP_HOST=
|
|
SMTP_PORT=587
|
|
SMTP_USER=
|
|
SMTP_PASSWORD=
|
|
SMTP_FROM=
|
|
SMTP_USE_TLS=true
|
|
|
|
# Integración CloudRestoreAS
|
|
# Token Bearer que CloudRestoreAS envía en Authorization: Bearer <token>
|
|
# para /api/restore/target-for, /api/restore/job-result y /api/restore/instance-config.
|
|
# DEBE ser idéntico al valor "Token API del PANEL" en CloudRestoreAS (pestaña Config).
|
|
# Generar uno largo y aleatorio, p. ej.:
|
|
# 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:
|
|
# node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
|
|
ENCRYPTION_KEY=
|
|
|
|
# ============================================================================
|
|
# Distribución de versiones de CloudRestoreAS (pantalla /versiones-cras)
|
|
#
|
|
# Los binarios se publican en el registro de paquetes GENÉRICOS de Gitea desde el build
|
|
# local del repo CloudRecoveryAS (`build-all.sh --publish`). El panel los descubre leyendo
|
|
# esa API, los descarga verificando el sha256 que Gitea calcula, y los instala en cada
|
|
# servidor de restauración por SSH/SFTP.
|
|
# ============================================================================
|
|
|
|
# Instancia de Gitea y organización dueña del paquete.
|
|
GITEA_BASE_URL=https://git.aduanasoft.com
|
|
GITEA_OWNER=ADUANASOFT
|
|
CRAS_PACKAGE_NAME=cloudrestoreas
|
|
|
|
# PAT de Gitea. El panel solo LEE el registro, así que basta el scope `read:package`.
|
|
# (El token con `write:package` vive en la máquina de build, no aquí.)
|
|
# Sin este token /versiones-cras carga pero avisa que no puede sincronizar.
|
|
GITEA_TOKEN=
|
|
|
|
# Caché local de artefactos. Cada uno pesa ~270 MB y se publican dos por versión, así que la
|
|
# carpeta crece ~540 MB por versión; CRAS_CACHE_KEEP_VERSIONS limita cuántas se conservan
|
|
# (las versiones activas nunca se borran).
|
|
CRAS_RELEASES_DIR=./local-cras-releases
|
|
CRAS_CACHE_KEEP_VERSIONS=3
|
|
|
|
# URL con la que el agente instalado reportará al panel. El instalador remoto la siembra en el
|
|
# config/.env del servidor destino, así que TIENE que ser alcanzable desde esos servidores (no
|
|
# localhost). Si se omite se usa ORIGIN.
|
|
PANEL_PUBLIC_URL=
|