Files
UAS_SIG_WebGIS/docker-compose.coolify.yml
2026-06-12 18:42:24 +07:00

70 lines
2.2 KiB
YAML

# Compose file for Coolify deployments.
# In Coolify: create a "Docker Compose" resource pointing at this repo and set
# "Docker Compose Location" to /docker-compose.coolify.yml.
#
# No host ports are published here on purpose: Coolify's proxy routes the
# auto-assigned domains to the container ports declared via the
# SERVICE_FQDN_<SERVICE>_<PORT> magic variables, so ports never clash with
# other apps on the server. postgres and fuzzy-service stay private on the
# internal network. SERVICE_PASSWORD_* / SERVICE_BASE64_* values are
# generated by Coolify and editable in its UI.
#
# docker-compose.yml (with fixed host ports) remains for local development.
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-sig}
POSTGRES_USER: ${POSTGRES_USER:-sig}
POSTGRES_PASSWORD: ${SERVICE_PASSWORD_POSTGRES}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-sig} -d ${POSTGRES_DB:-sig}"]
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
fuzzy-service:
build:
context: ./fuzzy-service
dockerfile: Dockerfile
restart: unless-stopped
backend:
build:
context: ./backend
dockerfile: Dockerfile
environment:
- SERVICE_FQDN_BACKEND_4000=/
- PORT=4000
- JWT_SECRET=${SERVICE_BASE64_64_JWT}
- FRONTEND_URL=${SERVICE_URL_FRONTEND}
- DATABASE_URL=postgres://${POSTGRES_USER:-sig}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-sig}
- FUZZY_SERVICE_URL=http://fuzzy-service:5001
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.frontend
args:
# Baked into the browser bundle at build time; must be the backend's
# public URL, which Coolify provides via the magic variable below.
NEXT_PUBLIC_BACKEND_URL: ${SERVICE_URL_BACKEND}
# Server-side rewrites go over the internal network.
BACKEND_URL: http://backend:4000
environment:
- SERVICE_FQDN_FRONTEND_3000=/
depends_on:
- backend
restart: unless-stopped
volumes:
postgres_data: