Files
PANEL_BASES_ANEXO24/.env.example

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=