Compare commits

..

2 commits

Author SHA1 Message Date
Cursor Origin
5abf5b5f6d Pre-computed merge for change #1 1970-01-01 00:00:00 +00:00
Cursor Agent
05ea4e942f
ops: sacar el overlay local del glob docker-compose*.yml
Coolify Reload Compose mezclaba docker-compose.local.yml y marcaba
PLATFORM_*_PASSWORD / IAM_* / CORE_* / *_REDIS_PASSWORD como Required.
Esas variables son solo para provision local; en Coolify van las URLs.

Co-authored-by: alberto.martinez <alberto.martinez@mrdev.mx>
2026-09-03 05:19:10 +00:00
4 changed files with 12 additions and 6 deletions

View file

@ -2,7 +2,8 @@
# Liquibase corre solo en el job `migrate` (un shot por deploy); la API espera
# a que termine. No arranca Java dentro del contenedor de tráfico.
#
# Local: docker compose -f docker-compose.yml -f docker-compose.local.yml up --build
# Coolify: un solo archivo — docker-compose.yml. No añadir overlays.
# Local: docker compose -f docker-compose.yml -f overlays/compose.local.yml up --build
services:
migrate:
build:

View file

@ -84,7 +84,7 @@ En Coolify el servicio de PANELS se llama **`web-panel`** (FQDN ej. `panels.mrde
1. **Provisionar Postgres, Redis y bucket** — 1 de cada **por ambiente** (no por módulo; no compartir prod con staging).
2. **Crear accesos y validar**: `./db/provision/create-accesses.sh --apply --verify --out .env.<env>.local` contra esos hosts (ver [`db/provision/README.md`](../db/provision/README.md)). Coolify no crea los roles `panels_*` ni los ACL de Redis solo.
3. **Coolify → Docker Compose** → `docker-compose.yml` (este archivo **no** levanta Postgres/Redis; usa los recursos que ya creaste). Conecta el stack a la **misma red** que Postgres y Redis (Connect to Predefined Network).
3. **Coolify → Docker Compose** → **solo** `docker-compose.yml` (Compose Location). **No** añadas `overlays/compose.local.yml` ni ningún `docker-compose.local.yml`. El overlay local pide `PLATFORM_*_PASSWORD` etc.; en Coolify esas 8 variables **no** se rellenan: los accesos van en las `DATABASE_URL_*` / `REDIS_URL_*` ya expandidas. Este archivo **no** levanta Postgres/Redis; usa los recursos que ya creaste. Conecta el stack a la **misma red** que Postgres y Redis (Connect to Predefined Network).
4. Cargar en el recurso compose **todas** las variables obligatorias (incluidas las 3 `DATABASE_URL_*_OWNER`: las usa el job `migrate`). `DENO_ENV=production`.
5. **Deploy.** En cada deploy corre `migrate` (`--context-filter=!dev`, sin demo) y **después** arranca `api`. No hace falta entrar al VPS a correr Liquibase.
6. **Bootstrap del primer admin** (solo la primera vez): `bootstrap-admin.ts` (ver `db/README.md`).
@ -104,11 +104,15 @@ Además, el recurso Docker Compose de PANELS debe estar en la **misma red** que
Tras corregir las URLs, redesplegar y revisar `docker logs` del contenedor `migrate-*` (debe terminar con Liquibase `Update has been successful` o similar, exit 0). El `docker stop … No such container` del helper de Coolify es ruido de limpieza, no la causa.
### Coolify pide `PLATFORM_OWNER_PASSWORD`, `IAM_APP_PASSWORD`, `*_REDIS_PASSWORD`…
Eso sale de **Reload Compose** mezclando el overlay de desarrollo. En producción **no las rellenes**. En el recurso: Compose file = `docker-compose.yml` únicamente. Borra esas 8 variables si Coolify las marcó Required. Siguen haciendo falta las URLs completas (`DATABASE_URL_*`, `REDIS_URL_*`).
## Local (todo en docker-compose, incluyendo Postgres/Redis propios)
```bash
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build
docker compose -f docker-compose.yml -f overlays/compose.local.yml up --build
```
El overlay local añade Postgres/Redis + `provision` y corre Liquibase con `context=dev` (demo).

View file

@ -1,5 +1,6 @@
# Desarrollo local: Postgres + Redis en compose, provision y seed `dev`.
# Uso: docker compose -f docker-compose.yml -f docker-compose.local.yml up --build
# NO usar en Coolify (vive fuera de docker-compose*.yml para que Reload no lo mezcle).
# Uso: docker compose -f docker-compose.yml -f overlays/compose.local.yml up --build
services:
postgres:
image: postgres:16-alpine

View file

@ -6,7 +6,7 @@
"dev:web": "cd web-panel && npm run dev",
"dev:saas": "cd web-saas && npm run dev",
"db:migrate": "./db/update.sh all",
"docker:build": "docker compose -f docker-compose.yml -f docker-compose.local.yml build",
"docker:up": "docker compose -f docker-compose.yml -f docker-compose.local.yml up -d"
"docker:build": "docker compose -f docker-compose.yml -f overlays/compose.local.yml build",
"docker:up": "docker compose -f docker-compose.yml -f overlays/compose.local.yml up -d"
}
}