56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
# 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`.
|