Aprendido desplegando cotizador (Next.js+FastAPI+Postgres, Docker Compose, repo privado) en coolify.urieljareth.org (v4.1.2): - Documenta que /applications/* devuelve 404 en esta instancia y que configurar apps git build-from-source solo es posible por la UI web. - Nuevos scripts scripts/coolify-ui/: coolify-login.mjs (guarda storageState) y Configure-CoolifyComposeApp.mjs (build pack -> Docker Compose, Reload Compose File, env vars por Developer view, dominios por servicio). - references/coolify-4.1.2-notes.md: mapa de API funcional/404, gotchas (BOM UTF-8 rompe el parser YAML de Coolify; Reload Compose File obligatorio; pin de dominios por servicio o 503; no encolar deploys concurrentes; PowerShell [IO.File]::ReadAllText para payloads de llaves). - env.local.template.ps1: COOLIFY_EMAIL/COOLIFY_PASSWORD para la UI. - SKILL.md/TOOLS.md: seccion "instance reality" y flujo UI paso a paso. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
53 lines
1.4 KiB
YAML
53 lines
1.4 KiB
YAML
# Reference docker-compose for a multi-container app on this Coolify instance.
|
|
#
|
|
# Implements EVERY hard rule from docs/AGENTS-coolify-apps.md:
|
|
# 2.1 App reaches DB by Docker service name (app-db), never localhost.
|
|
# 2.2 Joins the external 'coolify' network so it can resolve shared services.
|
|
# 2.3 Does NOT publish 80/443 (owned by coolify-proxy). Traefik routes.
|
|
# 2.4 FQDN is set in Coolify (https://<name>.urieljareth.org) before deploy.
|
|
# 2.5 Secrets come as env vars from Coolify. None are baked in here.
|
|
# 4 Healthcheck on a DB-independent endpoint.
|
|
# 5 Named volumes for data that must survive redeploys.
|
|
|
|
services:
|
|
app:
|
|
build: .
|
|
environment:
|
|
DB_HOST: app-db
|
|
DB_PORT: "5432"
|
|
DB_NAME: ${DB_NAME}
|
|
DB_USER: ${DB_USER}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
APP_PUBLIC_URL: https://app.urieljareth.org
|
|
expose:
|
|
- "8080"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://localhost:8080/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 20s
|
|
networks:
|
|
- coolify
|
|
depends_on:
|
|
- app-db
|
|
|
|
app-db:
|
|
image: postgres:16
|
|
environment:
|
|
POSTGRES_DB: ${DB_NAME}
|
|
POSTGRES_USER: ${DB_USER}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
volumes:
|
|
- app-db-data:/var/lib/postgresql/data
|
|
networks:
|
|
- coolify
|
|
|
|
volumes:
|
|
app-db-data: {}
|
|
|
|
networks:
|
|
coolify:
|
|
name: coolify
|
|
external: true
|