# Despliegue en mini‑PCs ## Requisitos - Docker + Docker Compose - Postgres y Redis (opcional) ## Variables de entorno recomendadas - `DATABASE_URL` - `API_ADMIN_KEY` - `JWT_SECRET` - `INGEST_CRON` - `ALERTS_CRON` - `BACKUP_CRON` - `BACKUP_DIR` - `INGEST_ENABLED` - `ALERTS_ENABLED` - `BACKUP_ENABLED` - `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASS`, `SMTP_FROM` - `TELEGRAM_BOT_TOKEN`, `TELEGRAM_DEFAULT_CHAT` ## Arranque rápido (todo‑en‑uno) ```bash # Desde la raíz del repo pnpm install pnpm build pnpm start ``` ## Arranque con Docker Compose ```bash docker compose build docker compose up -d ``` ## Coolify (producción) - Usa `docker-compose.coolify.yml` como compose principal. - No publiques puertos de Postgres/Redis; deja que Coolify gestione el proxy. - Define las variables en Coolify (Environment/Secrets). Hay un ejemplo en `.env.coolify.example`: - `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_DB` - `DATABASE_URL` (ejemplo: `postgres://gob:***@postgres:5432/gob_alert`) - `API_ADMIN_KEY` - `API_URL` (ejemplo: `http://api:3000`) ## Estrategia recomendada (2 mini‑PCs) 1. **Mini‑PC 1**: ejecutar Postgres + Redis + jobs de ingesta. 2. **Mini‑PC 2**: ejecutar API + web + backups + alertas. 3. Definir `DATABASE_URL` apuntando al Postgres del Mini‑PC 1. Sugerencia de flags: - Mini‑PC 1: `INGEST_ENABLED=true`, `ALERTS_ENABLED=false`, `BACKUP_ENABLED=false`. - Mini‑PC 2: `INGEST_ENABLED=false`, `ALERTS_ENABLED=true`, `BACKUP_ENABLED=true`. ## Backups - Programados por `BACKUP_CRON`. - Manual: `POST /admin/backup/run`.