services: openclaw: container_name: ${CONTAINER_NAME} image: "ghcr.io/openclaw/openclaw:latest" restart: unless-stopped networks: - 1panel-network environment: HOME: /home/node TERM: xterm-256color OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} OPENCLAW_GATEWAY_PORT: ${PANEL_APP_PORT_HTTP} OPENCLAW_MODE: ${OPENCLAW_MODE} volumes: - ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw - ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace ports: - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} - ${OPENCLAW_BRIDGE_PORT}:18790 init: true command: [ "node", "dist/index.js", "gateway", "--bind", "${OPENCLAW_GATEWAY_BIND}", "--port", "${PANEL_APP_PORT_HTTP}" ] healthcheck: test: [ "CMD", "node", "-e", "fetch('http://127.0.0.1:${PANEL_APP_PORT_HTTP}/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" ] interval: 30s timeout: 5s retries: 5 start_period: 20s labels: createdBy: "Apps" networks: 1panel-network: external: true