Wiki
Opciones de despliegue
Como desplegar QuoteNode con Docker Compose, Coolify y una topologia adecuada para produccion.
Opciones de despliegue
QuoteNode soporta varios modelos de despliegue, todos basados en contenedores Docker. Elige el enfoque que mejor encaje con tu infraestructura.
Docker Compose (estandar)
El despliegue estandar usa un unico archivo docker-compose.yml que arranca todos los servicios:
docker compose up -d
Topologia de produccion
Internet
│
▼
Caddy (port 80/443, HTTPS automatico)
├── /api/* → Backend (Java 25, port 8080)
├── /offer/* → Backend (paginas publicas de oferta)
└── /* → Frontend (Vue 3, activos estaticos)
Backend → PostgreSQL (port 5432)
Backend → Gotenberg (port 3000, generacion PDF)
backup-worker → PostgreSQL (backups programados)
Servicios
| Contenedor | Imagen | Proposito |
|---|---|---|
frontend | Vue 3 + Caddy | Sirve la SPA y hace proxy de las peticiones API |
backend | Java 25 / Spring Boot | REST API, logica de negocio y generacion PDF |
postgres | PostgreSQL 16 Alpine | Base de datos |
gotenberg | Gotenberg 8 | Conversion HTML a PDF basada en Chromium |
backup-worker | Igual que backend | Backups programados de base de datos y archivos |
Volumenes persistentes
| Volumen | Contenido |
|---|---|
postgres_prod_data | Archivos de base de datos |
backend_prod_uploads | Imagenes de producto y logos de empresa |
backend_prod_pdfs | Documentos PDF generados |
backend_prod_backups | Archivos de backup |
backend_prod_geoip | Base MaxMind GeoIP, opcional |
Despliegue con Coolify
Coolify es una PaaS open source y self-hostable, alternativa a Heroku, Vercel o Railway, que corre en tu propio servidor.
QuoteNode ofrece una configuracion docker-compose.coolify.yml optimizada para despliegues con Coolify.
Diferencias clave frente a Docker Compose estandar
- Coolify gestiona TLS - su propio proxy Caddy maneja certificados HTTPS y routing de dominios
- Variables desde la UI de Coolify - en lugar de archivos
.env, la configuracion se define en la interfaz web - Health checks - Coolify monitoriza la salud de los contenedores y puede reiniciar servicios fallidos
- Dos modos de despliegue:
Modo A - Build desde fuente
Coolify clona el repositorio y construye las imagenes Docker en cada despliegue:
- despliegues mas lentos
- no requiere pipeline CI/CD
- adecuado para empezar rapido
Modo B - Imagenes preconstruidas
GitHub Actions construye y publica imagenes en GHCR, y Coolify solo descarga la version mas reciente:
- despliegues rapidos con pull y restart
- requiere preparar workflow CI/CD
- recomendado para produccion
Configuracion requerida en Coolify
- Resource type: Dockerfile o Docker Image
- Internal port: 8080
- Health check path:
/health - Domain: configurado a nivel de Coolify
- HTTPS: forzado automaticamente por Coolify
Referencia de variables de entorno
Para el catalogo completo, incluyendo puertos de desarrollo, variables Vite, rutas del backup-worker y overrides operativos, consulta Environment Variables Reference.
Requeridas para todos los despliegues
| Variable | Descripcion |
|---|---|
DB_USERNAME | Usuario de PostgreSQL |
DB_PASSWORD | Contrasena de PostgreSQL |
DB_ENCRYPTION_KEY | Clave AES-256 para cifrado de campos sensibles, 64 hex chars |
TIMING_TOKEN_SECRET | Secreto para tokens de deteccion de bots basados en timing |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Secreto de sesion para enlaces publicos protegidos |
CORS_ALLOWED_ORIGINS | Origenes CORS permitidos para tu dominio |
Email (opcional, pero recomendado)
| Variable | Descripcion |
|---|---|
SMTP_HOST | Host SMTP |
SMTP_PORT | Puerto SMTP |
SMTP_USERNAME | Usuario SMTP |
SMTP_PASSWORD | Contrasena SMTP |
SMTP_AUTH | Activa autenticacion SMTP |
SMTP_STARTTLS | Activa STARTTLS |
Backup (opcional)
| Variable | Descripcion |
|---|---|
BACKUP_ENABLED | Activa backups programados |
BACKUP_CRON | Expresion cron |
BACKUP_RCLONE_REMOTE | Destino rclone para offsite backup |
BACKUP_GPG_RECIPIENT | ID de clave GPG para cifrar backups |
Seguridad (opcional)
| Variable | Descripcion |
|---|---|
FEATURE_2FA_ENABLED | Activa 2FA |
SECURITY_BOT_DETECTION_ENABLED | Activa capa de deteccion de bots |
GEOIP_ENABLED | Activa control GeoIP |
Funcionalidades
| Variable | Descripcion |
|---|---|
PDF_ENABLED | Activa generacion PDF |
NOTIFICATIONS_ENABLED | Activa notificaciones |
NOTIFICATIONS_EMAIL_ENABLED | Activa correo para notificaciones |
LOG_LEVEL | Nivel de log de la aplicacion |
Requisitos minimos del servidor
| Despliegue | RAM | CPU | Disco |
|---|---|---|---|
| Evaluacion / uso individual | 2 GB | 1 core | 10 GB SSD |
| Equipo pequeno, 5-10 usuarios | 4 GB | 2 cores | 20 GB SSD |
| Equipo mediano, 10-50 usuarios | 8 GB | 4 cores | 50 GB SSD |
Estas cifras son conservadoras. El uso real depende del tamano del catalogo, volumen de ofertas y frecuencia de generacion PDF.