Dokploy

Openclaw

WhatsApp gateway CLI with Pi RPC agent - self-hosted AI-powered messaging platform

Openclaw logo

Configuration

services:
  openclaw:
    image: "coollabsio/openclaw:2026.2.6"
    environment:
      - AUTH_USERNAME=${AUTH_USERNAME}
      - AUTH_PASSWORD=${AUTH_PASSWORD}
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
      - GEMINI_API_KEY=${GEMINI_API_KEY}
      - XAI_API_KEY=${XAI_API_KEY}
      - GROQ_API_KEY=${GROQ_API_KEY}
      - MISTRAL_API_KEY=${MISTRAL_API_KEY}
      - CEREBRAS_API_KEY=${CEREBRAS_API_KEY}
      - VENICE_API_KEY=${VENICE_API_KEY}
      - MOONSHOT_API_KEY=${MOONSHOT_API_KEY}
      - KIMI_API_KEY=${KIMI_API_KEY}
      - MINIMAX_API_KEY=${MINIMAX_API_KEY}
      - ZAI_API_KEY=${ZAI_API_KEY}
      - AI_GATEWAY_API_KEY=${AI_GATEWAY_API_KEY}
      - OPENCODE_API_KEY=${OPENCODE_API_KEY}
      - SYNTHETIC_API_KEY=${SYNTHETIC_API_KEY}
      - COPILOT_GITHUB_TOKEN=${COPILOT_GITHUB_TOKEN}
      - XIAOMI_API_KEY=${XIAOMI_API_KEY}
      - OPENCLAW_PRIMARY_MODEL=${OPENCLAW_PRIMARY_MODEL}
      - DEEPGRAM_API_KEY=${DEEPGRAM_API_KEY}
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_REGION=${AWS_REGION:-us-east-1}
      - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
      - BEDROCK_PROVIDER_FILTER=${BEDROCK_PROVIDER_FILTER:-anthropic}
      - OLLAMA_BASE_URL=${OLLAMA_BASE_URL}
      - PORT=8080
      - OPENCLAW_GATEWAY_PORT=18789
      - OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND:-loopback}
      - OPENCLAW_STATE_DIR=/data/.openclaw
      - OPENCLAW_WORKSPACE_DIR=/data/workspace
      - BROWSER_CDP_URL=http://browser:9223
      - BROWSER_DEFAULT_PROFILE=${BROWSER_DEFAULT_PROFILE:-openclaw}
      - BROWSER_EVALUATE_ENABLED=${BROWSER_EVALUATE_ENABLED:-true}
      - BROWSER_SNAPSHOT_MODE=${BROWSER_SNAPSHOT_MODE:-efficient}
      - BROWSER_REMOTE_TIMEOUT_MS=${BROWSER_REMOTE_TIMEOUT_MS:-1500}
      - BROWSER_REMOTE_HANDSHAKE_TIMEOUT_MS=${BROWSER_REMOTE_HANDSHAKE_TIMEOUT_MS:-3000}
      - HOOKS_ENABLED=${HOOKS_ENABLED:-false}
      - HOOKS_PATH=${HOOKS_PATH:-/hooks}
      - MOONSHOT_BASE_URL=${MOONSHOT_BASE_URL:-https://api.moonshot.ai/v1}
      - KIMI_BASE_URL=${KIMI_BASE_URL:-https://api.moonshot.ai/anthropic}
      - TELEGRAM_BOT_TOKEN=$TELEGRAM_BOT_TOKEN
      - DISCORD_BOT_TOKEN=$DISCORD_BOT_TOKEN
      - SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN
      - SLACK_APP_TOKEN=$SLACK_APP_TOKEN
      - WHATSAPP_ENABLED=$WHATSAPP_ENABLED
      - OPENCLAW_DOCKER_APT_PACKAGES=$OPENCLAW_DOCKER_APT_PACKAGES
    volumes:
      - "openclaw-data:/data"
    depends_on:
      browser:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://127.0.0.1:8080/healthz"]
      interval: 10s
      timeout: 10s
      retries: 5


  browser:
    image: "coollabsio/openclaw-browser:latest"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - CHROME_CLI=--remote-debugging-port=9222
    volumes:
      - "browser-data:/config"
    shm_size: 2g
    healthcheck:
      test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/9222' || exit 1"]
      interval: 5s
      timeout: 5s
      retries: 10


volumes:
  openclaw-data:
  browser-data:
[variables]
gateway_token = "${password:32}"
auth_username = "dokploy"
auth_password = "${password:32}"

[config]
[[config.domains]]
serviceName = "openclaw"
port = 8080
host = "${domain}"

[config.env]
OPENCLAW_GATEWAY_TOKEN = "${gateway_token}"
OPENCLAW_GATEWAY_PORT = 18789
AUTH_USERNAME="${auth_username}"
AUTH_PASSWORD="${auth_password}"
OPENCLAW_BRIDGE_PORT = 18790
OPENCLAW_GATEWAY_BIND="lan"
OPENCLAW_PLUGINS="discord,memory-core"
# Get here https://openrouter.ai/
OPENROUTER_API_KEY="YOUR-API-KEY"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBvcGVuY2xhdzpcbiAgICBpbWFnZTogXCJjb29sbGFic2lvL29wZW5jbGF3OjIwMjYuMi42XCJcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gQVVUSF9VU0VSTkFNRT0ke0FVVEhfVVNFUk5BTUV9XG4gICAgICAtIEFVVEhfUEFTU1dPUkQ9JHtBVVRIX1BBU1NXT1JEfVxuICAgICAgLSBPUEVOQ0xBV19HQVRFV0FZX1RPS0VOPSR7T1BFTkNMQVdfR0FURVdBWV9UT0tFTn1cbiAgICAgIC0gQU5USFJPUElDX0FQSV9LRVk9JHtBTlRIUk9QSUNfQVBJX0tFWX1cbiAgICAgIC0gT1BFTkFJX0FQSV9LRVk9JHtPUEVOQUlfQVBJX0tFWX1cbiAgICAgIC0gT1BFTlJPVVRFUl9BUElfS0VZPSR7T1BFTlJPVVRFUl9BUElfS0VZfVxuICAgICAgLSBHRU1JTklfQVBJX0tFWT0ke0dFTUlOSV9BUElfS0VZfVxuICAgICAgLSBYQUlfQVBJX0tFWT0ke1hBSV9BUElfS0VZfVxuICAgICAgLSBHUk9RX0FQSV9LRVk9JHtHUk9RX0FQSV9LRVl9XG4gICAgICAtIE1JU1RSQUxfQVBJX0tFWT0ke01JU1RSQUxfQVBJX0tFWX1cbiAgICAgIC0gQ0VSRUJSQVNfQVBJX0tFWT0ke0NFUkVCUkFTX0FQSV9LRVl9XG4gICAgICAtIFZFTklDRV9BUElfS0VZPSR7VkVOSUNFX0FQSV9LRVl9XG4gICAgICAtIE1PT05TSE9UX0FQSV9LRVk9JHtNT09OU0hPVF9BUElfS0VZfVxuICAgICAgLSBLSU1JX0FQSV9LRVk9JHtLSU1JX0FQSV9LRVl9XG4gICAgICAtIE1JTklNQVhfQVBJX0tFWT0ke01JTklNQVhfQVBJX0tFWX1cbiAgICAgIC0gWkFJX0FQSV9LRVk9JHtaQUlfQVBJX0tFWX1cbiAgICAgIC0gQUlfR0FURVdBWV9BUElfS0VZPSR7QUlfR0FURVdBWV9BUElfS0VZfVxuICAgICAgLSBPUEVOQ09ERV9BUElfS0VZPSR7T1BFTkNPREVfQVBJX0tFWX1cbiAgICAgIC0gU1lOVEhFVElDX0FQSV9LRVk9JHtTWU5USEVUSUNfQVBJX0tFWX1cbiAgICAgIC0gQ09QSUxPVF9HSVRIVUJfVE9LRU49JHtDT1BJTE9UX0dJVEhVQl9UT0tFTn1cbiAgICAgIC0gWElBT01JX0FQSV9LRVk9JHtYSUFPTUlfQVBJX0tFWX1cbiAgICAgIC0gT1BFTkNMQVdfUFJJTUFSWV9NT0RFTD0ke09QRU5DTEFXX1BSSU1BUllfTU9ERUx9XG4gICAgICAtIERFRVBHUkFNX0FQSV9LRVk9JHtERUVQR1JBTV9BUElfS0VZfVxuICAgICAgLSBBV1NfQUNDRVNTX0tFWV9JRD0ke0FXU19BQ0NFU1NfS0VZX0lEfVxuICAgICAgLSBBV1NfU0VDUkVUX0FDQ0VTU19LRVk9JHtBV1NfU0VDUkVUX0FDQ0VTU19LRVl9XG4gICAgICAtIEFXU19SRUdJT049JHtBV1NfUkVHSU9OOi11cy1lYXN0LTF9XG4gICAgICAtIEFXU19TRVNTSU9OX1RPS0VOPSR7QVdTX1NFU1NJT05fVE9LRU59XG4gICAgICAtIEJFRFJPQ0tfUFJPVklERVJfRklMVEVSPSR7QkVEUk9DS19QUk9WSURFUl9GSUxURVI6LWFudGhyb3BpY31cbiAgICAgIC0gT0xMQU1BX0JBU0VfVVJMPSR7T0xMQU1BX0JBU0VfVVJMfVxuICAgICAgLSBQT1JUPTgwODBcbiAgICAgIC0gT1BFTkNMQVdfR0FURVdBWV9QT1JUPTE4Nzg5XG4gICAgICAtIE9QRU5DTEFXX0dBVEVXQVlfQklORD0ke09QRU5DTEFXX0dBVEVXQVlfQklORDotbG9vcGJhY2t9XG4gICAgICAtIE9QRU5DTEFXX1NUQVRFX0RJUj0vZGF0YS8ub3BlbmNsYXdcbiAgICAgIC0gT1BFTkNMQVdfV09SS1NQQUNFX0RJUj0vZGF0YS93b3Jrc3BhY2VcbiAgICAgIC0gQlJPV1NFUl9DRFBfVVJMPWh0dHA6Ly9icm93c2VyOjkyMjNcbiAgICAgIC0gQlJPV1NFUl9ERUZBVUxUX1BST0ZJTEU9JHtCUk9XU0VSX0RFRkFVTFRfUFJPRklMRTotb3BlbmNsYXd9XG4gICAgICAtIEJST1dTRVJfRVZBTFVBVEVfRU5BQkxFRD0ke0JST1dTRVJfRVZBTFVBVEVfRU5BQkxFRDotdHJ1ZX1cbiAgICAgIC0gQlJPV1NFUl9TTkFQU0hPVF9NT0RFPSR7QlJPV1NFUl9TTkFQU0hPVF9NT0RFOi1lZmZpY2llbnR9XG4gICAgICAtIEJST1dTRVJfUkVNT1RFX1RJTUVPVVRfTVM9JHtCUk9XU0VSX1JFTU9URV9USU1FT1VUX01TOi0xNTAwfVxuICAgICAgLSBCUk9XU0VSX1JFTU9URV9IQU5EU0hBS0VfVElNRU9VVF9NUz0ke0JST1dTRVJfUkVNT1RFX0hBTkRTSEFLRV9USU1FT1VUX01TOi0zMDAwfVxuICAgICAgLSBIT09LU19FTkFCTEVEPSR7SE9PS1NfRU5BQkxFRDotZmFsc2V9XG4gICAgICAtIEhPT0tTX1BBVEg9JHtIT09LU19QQVRIOi0vaG9va3N9XG4gICAgICAtIE1PT05TSE9UX0JBU0VfVVJMPSR7TU9PTlNIT1RfQkFTRV9VUkw6LWh0dHBzOi8vYXBpLm1vb25zaG90LmFpL3YxfVxuICAgICAgLSBLSU1JX0JBU0VfVVJMPSR7S0lNSV9CQVNFX1VSTDotaHR0cHM6Ly9hcGkubW9vbnNob3QuYWkvYW50aHJvcGljfVxuICAgICAgLSBURUxFR1JBTV9CT1RfVE9LRU49JFRFTEVHUkFNX0JPVF9UT0tFTlxuICAgICAgLSBESVNDT1JEX0JPVF9UT0tFTj0kRElTQ09SRF9CT1RfVE9LRU5cbiAgICAgIC0gU0xBQ0tfQk9UX1RPS0VOPSRTTEFDS19CT1RfVE9LRU5cbiAgICAgIC0gU0xBQ0tfQVBQX1RPS0VOPSRTTEFDS19BUFBfVE9LRU5cbiAgICAgIC0gV0hBVFNBUFBfRU5BQkxFRD0kV0hBVFNBUFBfRU5BQkxFRFxuICAgICAgLSBPUEVOQ0xBV19ET0NLRVJfQVBUX1BBQ0tBR0VTPSRPUEVOQ0xBV19ET0NLRVJfQVBUX1BBQ0tBR0VTXG4gICAgdm9sdW1lczpcbiAgICAgIC0gXCJvcGVuY2xhdy1kYXRhOi9kYXRhXCJcbiAgICBkZXBlbmRzX29uOlxuICAgICAgYnJvd3NlcjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcImN1cmxcIiwgXCItc2ZcIiwgXCJodHRwOi8vMTI3LjAuMC4xOjgwODAvaGVhbHRoelwiXVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiA1XG5cblxuICBicm93c2VyOlxuICAgIGltYWdlOiBcImNvb2xsYWJzaW8vb3BlbmNsYXctYnJvd3NlcjpsYXRlc3RcIlxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQVUlEPTEwMDBcbiAgICAgIC0gUEdJRD0xMDAwXG4gICAgICAtIFRaPUV0Yy9VVENcbiAgICAgIC0gQ0hST01FX0NMST0tLXJlbW90ZS1kZWJ1Z2dpbmctcG9ydD05MjIyXG4gICAgdm9sdW1lczpcbiAgICAgIC0gXCJicm93c2VyLWRhdGE6L2NvbmZpZ1wiXG4gICAgc2htX3NpemU6IDJnXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJiYXNoIC1jICc6PiAvZGV2L3RjcC8xMjcuMC4wLjEvOTIyMicgfHwgZXhpdCAxXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAxMFxuXG5cbnZvbHVtZXM6XG4gIG9wZW5jbGF3LWRhdGE6XG4gIGJyb3dzZXItZGF0YTpcbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxuZ2F0ZXdheV90b2tlbiA9IFwiJHtwYXNzd29yZDozMn1cIlxuYXV0aF91c2VybmFtZSA9IFwiZG9rcGxveVwiXG5hdXRoX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJvcGVuY2xhd1wiXG5wb3J0ID0gODA4MFxuaG9zdCA9IFwiJHtkb21haW59XCJcblxuW2NvbmZpZy5lbnZdXG5PUEVOQ0xBV19HQVRFV0FZX1RPS0VOID0gXCIke2dhdGV3YXlfdG9rZW59XCJcbk9QRU5DTEFXX0dBVEVXQVlfUE9SVCA9IDE4Nzg5XG5BVVRIX1VTRVJOQU1FPVwiJHthdXRoX3VzZXJuYW1lfVwiXG5BVVRIX1BBU1NXT1JEPVwiJHthdXRoX3Bhc3N3b3JkfVwiXG5PUEVOQ0xBV19CUklER0VfUE9SVCA9IDE4NzkwXG5PUEVOQ0xBV19HQVRFV0FZX0JJTkQ9XCJsYW5cIlxuT1BFTkNMQVdfUExVR0lOUz1cImRpc2NvcmQsbWVtb3J5LWNvcmVcIlxuIyBHZXQgaGVyZSBodHRwczovL29wZW5yb3V0ZXIuYWkvXG5PUEVOUk9VVEVSX0FQSV9LRVk9XCJZT1VSLUFQSS1LRVlcIlxuIgp9

Tags

whatsapp, ai, messaging, chatbot, gateway, self-hosted, automation


Version: 2026.1.29

On this page