services: openclaw: image: ghcr.io/openclaw/openclaw:latest environment: HOME: /home/node TERM: xterm-256color OPENAI_API_KEY: ${OPENAI_API_KEY:-} MEM0_API_KEY: ${MEM0_API_KEY:-} TZ: ${TZ:-UTC} volumes: - ${OPENCLAW_CONFIG_DIR:-~/.openclaw}:/home/node/.openclaw ports: # Bound to localhost only for security — change to "18789:18789" for LAN access - "127.0.0.1:${OPENCLAW_PORT:-18789}:18789" restart: unless-stopped command: ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789"] healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:18789/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 15s timeout: 5s retries: 5 start_period: 30s