name: bill-tracker networks: nginx-bridge: external: true services: bill-tracker-next: image: git.gbrown.org/gib/bill-tracker-next:latest container_name: bill-tracker-next hostname: bill-tracker-next domainname: billtracker.gbrown.org networks: [nginx-bridge] environment: NODE_ENV: production NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-https://billtracker.gbrown.org} NEXT_PUBLIC_CONVEX_URL: ${NEXT_PUBLIC_CONVEX_URL:-https://api.billtracker.gbrown.org} restart: unless-stopped bill-tracker-mcp: image: git.gbrown.org/gib/bill-tracker-mcp:latest container_name: bill-tracker-mcp hostname: bill-tracker-mcp domainname: mcp.billtracker.gbrown.org networks: [nginx-bridge] volumes: [./data/mcp:/data:Z] environment: NODE_ENV: production MCP_PUBLIC_URL: ${MCP_PUBLIC_URL:-https://mcp.billtracker.gbrown.org} MCP_SECRET: ${MCP_SECRET:?Set MCP_SECRET in the VPS .env} BILL_TRACKER_CONVEX_URL: ${NEXT_PUBLIC_CONVEX_URL:-https://api.billtracker.gbrown.org} restart: unless-stopped bill-tracker-backend: image: ${CONVEX_BACKEND_IMAGE:-ghcr.io/get-convex/convex-backend@sha256:1f2044e3eac463ac78973b136c0baf72d4ada602611d853d6f99f280e29e0a98} container_name: bill-tracker-backend hostname: bill-tracker-backend domainname: api.billtracker.gbrown.org networks: [nginx-bridge] volumes: [./data/convex:/convex/data:Z] environment: INSTANCE_NAME: ${INSTANCE_NAME:-bill_tracker} INSTANCE_SECRET: ${INSTANCE_SECRET:?Set INSTANCE_SECRET in the VPS .env} POSTGRES_URL: ${POSTGRES_URL:?Set POSTGRES_URL in the VPS .env} CONVEX_CLOUD_ORIGIN: https://api.billtracker.gbrown.org CONVEX_SITE_ORIGIN: https://convex.billtracker.gbrown.org DISABLE_BEACON: 'true' REDACT_LOGS_TO_CLIENT: 'true' DO_NOT_REQUIRE_SSL: 'true' restart: unless-stopped healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:3210/version'] interval: 5s start_period: 10s stop_grace_period: 10s stop_signal: SIGINT bill-tracker-dashboard: image: ${CONVEX_DASHBOARD_IMAGE:-ghcr.io/get-convex/convex-dashboard@sha256:284a2638e0c1a4ec0c2327d8219776f3a426ca5824b81686ae4d9454dc0ce8ed} container_name: bill-tracker-dashboard hostname: bill-tracker-dashboard domainname: dashboard.billtracker.gbrown.org networks: [nginx-bridge] environment: NEXT_PUBLIC_DEPLOYMENT_URL: https://api.billtracker.gbrown.org depends_on: bill-tracker-backend: condition: service_healthy restart: unless-stopped