Files
monitoring-app/compose.yml
2026-04-27 17:16:36 +08:00

66 lines
2.2 KiB
YAML

services:
monitoring-app:
image: ghcr.io/bipprojectbali/monitoring-app:stg-latest
container_name: monitoring-app-stg
restart: unless-stopped
environment:
# Database
- DATABASE_URL=${DATABASE_URL}
- DIRECT_URL=${DIRECT_URL}
# Google OAuth
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
# App
- PORT=${PORT:-3000}
- NODE_ENV=${NODE_ENV:-production}
# Admin (initial Super Admin emails, comma-separated)
- SUPER_ADMIN_EMAIL=${SUPER_ADMIN_EMAIL}
networks:
- public-net
- postgres-net-stg
depends_on:
migrate:
condition: service_completed_successfully
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
memory: 512M
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
labels:
- "traefik.enable=true"
- "traefik.docker.network=public-net"
- "traefik.http.routers.monitoring-app.rule=Host(`monitoring-stg.wibudev.com`)"
- "traefik.http.routers.monitoring-app.entrypoints=websecure"
- "traefik.http.routers.monitoring-app.tls=true"
- "traefik.http.routers.monitoring-app.tls.certresolver=letsencrypt"
- "traefik.http.services.monitoring-app.loadbalancer.server.port=3000"
migrate:
image: ghcr.io/bipprojectbali/monitoring-app:stg-latest
container_name: monitoring-app-stg-migrate
restart: "no"
# `migrate deploy` only applies existing migrations from prisma/migrations/.
# Safer than `migrate dev --name auto` which auto-generates new migrations
# from schema diff (risk of drift in production).
# Seed runs only if SEED_ON_DEPLOY=true (idempotent — wipe-and-reseed by
# design; recommend leaving false for production with real customer data).
entrypoint: ["sh", "-c", "bunx prisma migrate deploy && if [ \"$$SEED_ON_DEPLOY\" = \"true\" ]; then bun prisma/seed.ts; fi"]
environment:
- DATABASE_URL=${DIRECT_URL}
- SEED_ON_DEPLOY=${SEED_ON_DEPLOY:-false}
networks:
- postgres-net-stg
networks:
public-net:
external: true
postgres-net-stg:
external: true