services: app: build: context: . dockerfile: docker/Dockerfile args: # Client-side PocketBase URL. Browser reaches the in-container PB through # nginx at /pb (default for docker). Local dev uses .env instead. PUBLIC_PB_URL: ${PUBLIC_PB_URL:-/pb} PB_ENDPOINT: http://127.0.0.1:8090 SERVER_IP: 127.0.0.1 PB_PORT: 8090 ports: - "${PORT:-3001}:3001" # nginx / app (public) - "127.0.0.1:8091:8090" # PocketBase admin UI (loopback only — SSH tunnel) volumes: - "${PB_DATA:-./pb_data}:/app/pb_data" # PB DB persistence environment: PB_ENDPOINT: http://127.0.0.1:8090 # server-side → in-container PB PB_EMAIL: ${PB_EMAIL:-} PB_PASSWORD: ${PB_PASSWORD:-} DEBUG_RECORD_ID: ${DEBUG_RECORD_ID:-} FRONTEND_PORT: "2080" PROXY_PORT: "3456" SERVER_IP: 127.0.0.1 PB_PORT: 8090 restart: unless-stopped