name: carcontrol-aio # Single all-in-one container: PocketBase + API Server + Web App (nginx). # The build context is the project root so the Dockerfile can reach both # "API Server/" and "Web App/". Copy .env.example to .env before starting. services: carcontrol: build: # Project root (one level up from this compose file). context: .. dockerfile: Docker AIO/Dockerfile args: # Empty -> bundle uses same-origin "/api", proxied internally by nginx. VITE_API_BASE: "${VITE_API_BASE:-}" # Optional: pin PocketBase; empty fetches the latest release at build. PB_VERSION: "${PB_VERSION:-}" image: carcontrol-aio container_name: carcontrol-aio restart: unless-stopped environment: # Superuser (also used by the API Server to authenticate to PocketBase). PB_ADMIN_EMAIL: "${PB_ADMIN_EMAIL:?set PB_ADMIN_EMAIL in .env}" PB_ADMIN_PASSWORD: "${PB_ADMIN_PASSWORD:?set PB_ADMIN_PASSWORD in .env}" # Signs auth tokens — set to a long random value. AUTH_SECRET: "${AUTH_SECRET:?set AUTH_SECRET in .env}" ports: - "${WEB_PORT:-80}:80" # Web App - "${PB_PORT:-8090}:8090" # PocketBase admin UI / API - "${API_PORT:-8080}:8080" # API Server + embedded API web panel (root /) volumes: - pb_data:/pb/pb_data volumes: pb_data: