panels-origin/docker-compose.yaml
2026-08-21 17:29:40 -05:00

67 lines
1.5 KiB
YAML

# Coolify / local — 3 services, SQLite en volumen panel-data
services:
api:
build:
context: .
dockerfile: Dockerfile.api
restart: unless-stopped
environment:
PORT: ${PORT:-8000}
SESSION_SECRET: ${SESSION_SECRET}
DOCS_KEY: ${DOCS_KEY}
SEED_PASSWORD: ${SEED_PASSWORD}
API_KEY: ${API_KEY:-}
PANEL_LOGIN_URL: ${PANEL_LOGIN_URL}
COOKIE_SECURE: ${COOKIE_SECURE:-true}
CORS_ORIGINS: ${CORS_ORIGINS:-}
VCARD_BASE: ${VCARD_BASE:-}
SMTP_HOST: ${SMTP_HOST:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USER: ${SMTP_USER:-}
SMTP_PASS: ${SMTP_PASS:-}
SMTP_FROM: ${SMTP_FROM:-}
volumes:
- panel-data:/app/data
expose:
- "8000"
healthcheck:
test:
[
"CMD",
"deno",
"eval",
"const r=await fetch('http://127.0.0.1:'+(Deno.env.get('PORT')||'8000')+'/v1/health'); if(!r.ok) Deno.exit(1)",
]
interval: 30s
timeout: 5s
retries: 5
start_period: 45s
web-panel:
build:
context: .
dockerfile: Dockerfile.web-panel
restart: unless-stopped
depends_on:
api:
condition: service_healthy
ports:
- "80"
expose:
- "80"
web-saas:
build:
context: .
dockerfile: Dockerfile.web-saas
restart: unless-stopped
depends_on:
api:
condition: service_healthy
ports:
- "80"
expose:
- "80"
volumes:
panel-data: