services: openclaw: image: coollabsio/openclaw:latest restart: unless-stopped env_file: - .env environment: PORT: "${PORT:-8080}" AUTH_USERNAME: "${AUTH_USERNAME}" AUTH_PASSWORD: "${AUTH_PASSWORD}" OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}" OPENROUTER_API_KEY: "${OPENROUTER_API_KEY}" OPENCLAW_PRIMARY_MODEL: "${OPENCLAW_PRIMARY_MODEL}" BROWSER_CDP_URL: "http://browser:9223" BROWSER_DEFAULT_PROFILE: "openclaw" BROWSER_EVALUATE_ENABLED: "true" OPENCLAW_STATE_DIR: "/data/.openclaw" OPENCLAW_WORKSPACE_DIR: "/data/workspace" OPENCLAW_CONFIG_JSON: '{"gateway":{"mode":"local"}}' volumes: - openclaw-data:/data depends_on: - browser networks: - internal - caddy_caddy_net # Optional: only keep this if you also want direct host access for testing # ports: # - "${PORT:-8080}:${PORT:-8080}" browser: image: coollabsio/openclaw-browser:latest restart: unless-stopped environment: PUID: "1000" PGID: "1000" TZ: "${TZ:-Asia/Kuala_Lumpur}" CHROME_CLI: "--remote-debugging-port=9222" volumes: - browser-data:/config shm_size: 2g networks: - internal volumes: openclaw-data: browser-data: networks: internal: driver: bridge caddy_caddy_net: external: true