services: website: image: ghcr.io/tandpfun/pin-tag:latest ports: - "2194:3000" environment: DATABASE_URL: "postgres://pin-tag:pin-tag@database:5432/pin-tag" SMTP_USERNAME: "${SMTP_USERNAME}" SMTP_PASSWORD: "${SMTP_PASSWORD}" API_TOKEN: "${API_TOKEN}" BASE_URL: "${BASE_URL}" depends_on: migrate: condition: service_completed_successfully database: condition: service_healthy migrate: image: ghcr.io/tandpfun/pin-tag:latest command: 'pnpm migrate deploy' environment: DATABASE_URL: "postgres://pin-tag:pin-tag@database:5432/pin-tag" depends_on: database: condition: service_healthy studio: image: ghcr.io/tandpfun/pin-tag:latest command: 'pnpm studio' environment: DATABASE_URL: "postgres://pin-tag:pin-tag@database:5432/pin-tag" depends_on: migrate: condition: service_completed_successfully database: condition: service_healthy database: image: "postgres:16" environment: POSTGRES_USER: "pin-tag" POSTGRES_PASSWORD: "pin-tag" POSTGRES_DB: "pin-tag" PGUSER: "pin-tag" volumes: - "postgres_data:/var/lib/postgresql/data" restart: always healthcheck: test: ['CMD-SHELL', 'pg_isready', 'postgres://pin-tag:pin-tag@database:5432/pin-tag'] interval: '10s' timeout: '5s' retries: 5 volumes: postgres_data: