Installation
Variables de entorno de despliegue
Variables de entorno mínimas usadas por las guías de instalación, con enlaces a la referencia completa.
Variables de entorno de despliegue
Esta página lista las variables que la mayoría de operadores necesitan durante la instalación. Para el catálogo completo, consulta Referencia de variables de entorno.
Variables principales requeridas
| Variable | Propósito |
|---|---|
DB_URL | JDBC URL para PostgreSQL, normalmente jdbc:postgresql://postgres:5432/quotenode dentro de Docker Compose. |
DB_NAME | Nombre de la base de datos PostgreSQL. |
DB_USERNAME | Usuario de aplicación de PostgreSQL. |
DB_PASSWORD | Contraseña de PostgreSQL. Usa un valor aleatorio largo. |
DB_ENCRYPTION_KEY | Clave hex de 64 caracteres para el cifrado a nivel de aplicación. Guárdala de forma segura. |
TIMING_TOKEN_SECRET | Secreto HMAC para las comprobaciones de seguridad de timing-token. |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Secreto para las sesiones de enlaces públicos protegidos con contraseña o PIN. |
CORS_ALLOWED_ORIGINS | Orígenes de navegador exactos permitidos para llamar al backend. |
Genera secretos en Linux/macOS:
openssl rand -hex 32
openssl rand -base64 32
Variables de URL pública
| Variable | Propósito |
|---|---|
CORS_ALLOWED_ORIGINS | Debe coincidir exactamente con la URL del navegador, por ejemplo https://crm.example.com. |
NOTIFICATIONS_PUBLIC_PREFERENCES_URL | URL pública para los enlaces de preferencias de notificación, por ejemplo https://crm.example.com/notifications/preferences. |
DOMAIN | Usada por despliegues de Docker Compose con proxy interno. Coolify normalmente gestiona los dominios fuera de la aplicación. |
SERVICE_URL_FRONTEND | Variable de compatibilidad opcional para plantillas de operador y futura automatización de despliegue; el archivo compose actual de Coolify no la consume directamente. Mantenla alineada con el origen del frontend si tu despliegue la usa. |
Variables de correo electrónico
| Variable | Propósito |
|---|---|
SMTP_HOST | Nombre de host del servidor SMTP. |
SMTP_PORT | Puerto SMTP, normalmente 587. |
SMTP_USERNAME | Nombre de usuario de la cuenta SMTP. |
SMTP_PASSWORD | Contraseña SMTP o contraseña de aplicación. |
SMTP_AUTH | Normalmente true para SMTP de producción. |
SMTP_STARTTLS | Normalmente true para el puerto 587. |
NOTIFICATIONS_ENABLED | Habilita las notificaciones. |
NOTIFICATIONS_EMAIL_ENABLED | Habilita la entrega por correo de las notificaciones. |
Variables de PDF, backup y seguridad
| Variable | Valor recomendado en beta | Notas |
|---|---|---|
PDF_ENABLED | true | Requiere Gotenberg en el stack. |
FEATURE_2FA_ENABLED | true | Habilita los flujos de autenticación de dos factores. |
SECURITY_BOT_DETECTION_ENABLED | true | Mantiene activas las protecciones de bots en enlaces públicos. |
SECURITY_TRUSTED_PROXIES | vacío (autodetectado) | Pares de reverse proxy de confianza adicionales (IP/CIDR literales y/o nombres de host de servicio). Normalmente déjalo vacío: la IP del cliente se detecta automáticamente tras proxies internos (rangos privados/loopback) y CDNs como Cloudflare (vía CF-Connecting-IP). Defínelo solo para un proxy inusual cuyo par de transporte sea una dirección pública. Las cabeceras de reenvío de un par directo (no interno) siempre se ignoran. Verifica el modo del resolutor en Administración → Seguridad → estado efectivo. |
SECURITY_IP_WHITELIST | vacío | Lista blanca de IP del operador opcional (IP/CIDR separados por comas). Cuando se activa, protege toda la superficie de administración, incluidas las pantallas de inicio de sesión y 2FA. Prevalece sobre el ajuste en la aplicación y se aplica al arrancar (sin auto-reversión — confirma que tu propia dirección está incluida). |
SECURITY_IP_WHITELIST_FORCE_DISABLE | false | Emergencia: pon true + reinicia para recuperarte de un bloqueo de la lista de IP (incluido no poder iniciar sesión). Solo ENV. |
SECURITY_IP_WHITELIST_CONFIRMATION_WINDOW_SECONDS | 120 | Cuánto tiempo una activación/restricción en la aplicación queda pendiente antes de revertirse automáticamente a la lista anterior si tu sesión no vuelve a confirmar (seguridad ante bloqueos). No se aplica a la variable ENV anterior. |
BACKUP_ENABLED | true para producción, opcional para la primera prueba local | Úsalo con un proceso de restauración probado. |
BACKUP_CRON | 0 0 2 * * * | A las 02:00 diarias por defecto. |
GEOIP_ENABLED | false | Solo interruptor de aplicación por país — también el interruptor de emergencia. La base se carga y se actualiza de forma independiente (ver GEOIP_AUTO_UPDATE), por lo que puede estar lista mientras la aplicación está desactivada. Pon false + reinicia para recuperarte de un bloqueo de país por GeoIP — esto desactiva la aplicación de forma fiable, independientemente de que haya una base de datos. |
SECURITY_GEOIP_ALLOWED_COUNTRIES | vacío | Lista de países permitidos ISO 3166-1 alpha-2 (p. ej. PL,DE); en mayúsculas y validada. Vacío = sin restricción. |
LOG_LEVEL | INFO para el primer despliegue, reducir más tarde si es necesario | Usa los diagnósticos de administrador para la escalada temporal. |
Variables de comprobación de release
| Variable | Propósito |
|---|---|
VITE_RELEASE_CHECK_ENABLED | Habilita comprobaciones de release upstream solo para administradores. |
VITE_RELEASE_MANIFEST_URL | Por defecto https://quotenode.dev/releases/latest.json. |
APP_VERSION | Versión de release o tag de imagen. Puede estar vacío para despliegues desde fuente. |
APP_CHANNEL | alpha, beta, rc, dev o stable. |
APP_COMMIT_SHA | Commit SHA incrustado en los metadatos de build cuando está disponible. |
APP_BUILD_TIME | Timestamp de build. |
APP_BUILD_NUMBER | Número de build de CI. |
APP_SOURCE_REF | Rama o tag de origen. |
APP_IMAGE_TAG | Tag de imagen seleccionado por el despliegue. |
Seguridad de licencias
Nunca habilites el bypass de firma en un despliegue real:
LICENSE_SKIP_SIGNATURE_CHECK=false
Configúralo explícitamente a false en entornos de producción y beta. El archivo compose usa false por defecto cuando se omite, pero los despliegues reales no deben depender de un valor implícito para un control de seguridad de licencia. Usa true solo en entornos de desarrollo locales desechables.