Files
api-ubigeo/docker-compose.production.yml

52 lines
1.3 KiB
YAML

services:
postgres:
image: postgres:16-alpine
container_name: ubigeo-postgres
restart: unless-stopped
environment:
POSTGRES_USER: ubigeo_user
POSTGRES_PASSWORD: UbigeoDB2026
POSTGRES_DB: ubigeo_db
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ubigeo_user -d ubigeo_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- ubigeo_network
- easypanel
api:
image: ubigeo-api:latest
container_name: ubigeo-api
restart: unless-stopped
ports:
- "127.0.0.1:3200:3200"
environment:
DATABASE_URL: "postgresql://ubigeo_user:UbigeoDB2026@postgres:5432/ubigeo_db"
PORT: 3200
NODE_ENV: production
depends_on:
postgres:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.ubigeo.rule=Host(`api-ubigeo.darkcodex.dev`)"
- "traefik.http.routers.ubigeo.entrypoints=websecure"
- "traefik.http.routers.ubigeo.tls=true"
- "traefik.http.services.ubigeo.loadbalancer.server.port=3200"
networks:
- ubigeo_network
- easypanel
volumes:
postgres_data:
networks:
ubigeo_network:
driver: bridge
easypanel:
external: true