services: api-server: build: context: . dockerfile: Dockerfile image: drivervault-api container_name: drivervault-api restart: unless-stopped ports: - "${API_PORT:-8080}:8080" environment: # Container always listens on 8080; map the host port above. API_ADDR: ":8080" # External PocketBase instance (all DB access goes through this server). POCKETBASE_URL: "${PB_URL:-http://10.2.1.10:8027}" # Superuser service account. Leave unset and the server still starts — a # superadmin can configure it from the panel; management endpoints 503 until then. POCKETBASE_ADMIN_EMAIL: "${PB_ADMIN_EMAIL}" POCKETBASE_ADMIN_PASSWORD: "${PB_ADMIN_PASSWORD}" # Browser origins allowed by CORS (native apps are exempt). Point this at # the Web App origin; add http://localhost:5173 when running Vite in dev. CORS_ALLOW_ORIGINS: "${CORS_ALLOW_ORIGINS:-http://localhost:8090}" AUTH_USERS_COLLECTION: "${AUTH_USERS_COLLECTION:-users}" # OCPP charger control (Anker Solix). Chargers are rejected unless they # connect over TLS; set false only when terminating TLS elsewhere or for # local dev on a trusted network. OCPP_PUBLIC_URL overrides the ws(s):// # base derived from request headers (set it when behind a reverse proxy). OCPP_REQUIRE_TLS: "${OCPP_REQUIRE_TLS:-true}" OCPP_PUBLIC_URL: "${OCPP_PUBLIC_URL:-}" volumes: # Holds plugins.json and the .env the panel writes back — see Dockerfile. - api_data:/data volumes: api_data: