version: "3.8" services: openclaw-gateway: image: ${OPENCLAW_IMAGE:-registry.lan/openclaw:latest} environment: HOME: /home/node TERM: xterm-256color OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} MOONSHOT_API_KEY: ${MOONSHOT_API_KEY} volumes: - ../files/openclaw.json:/home/node/.openclaw/openclaw.json - openclaw-workspace:/home/node/.openclaw/workspace ports: - target: 18789 published: ${OPENCLAW_GATEWAY_PORT:-18789} protocol: tcp mode: host - target: 18790 published: ${OPENCLAW_BRIDGE_PORT:-18790} protocol: tcp mode: host init: true deploy: replicas: 1 placement: constraints: - node.hostname == tpi-n1 # restart_policy: # condition: unless-stopped networks: - dokploy-network command: [ "node", "dist/index.js", "gateway", "--bind", "${OPENCLAW_GATEWAY_BIND:-lan}", "--port", "18789", ] # Note: CLI service is interactive and best run locally or via docker run # Uncomment if you need it for specific use cases # openclaw-cli: # image: ${OPENCLAW_IMAGE:-openclaw:local} # environment: # HOME: /home/node # TERM: xterm-256color # OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} # BROWSER: echo # MOONSHOT_API_KEY: ${MOONSHOT_API_KEY} # volumes: # - openclaw-config:/home/node/.openclaw # - openclaw-workspace:/home/node/.openclaw/workspace # stdin_open: true # tty: true # init: true # deploy: # replicas: 1 # placement: # constraints: # - node.hostname == tpi-n1 # restart_policy: # condition: unless-stopped # networks: # - dokploy-network # entrypoint: ["node", "dist/index.js"] volumes: openclaw-config: openclaw-workspace: networks: dokploy-network: external: true