diff --git a/docker/Dockerfile b/docker/Dockerfile index 5e7a728..42d10fe 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -44,5 +44,8 @@ RUN mkdir -p /home/node/.config /home/node/.ssh \ && ln -sf /home/node/.openclaw/gog /home/node/.config/gog \ && ln -sf /home/node/.openclaw/ssh /home/node/.ssh +# Copy config into the image +COPY config/openclaw.json /home/node/.openclaw/openclaw.json + # Switch back to node user USER node diff --git a/docker/config/openclaw.json b/docker/config/openclaw.json new file mode 100644 index 0000000..d971987 --- /dev/null +++ b/docker/config/openclaw.json @@ -0,0 +1,122 @@ +{ + "meta": { + "lastTouchedVersion": "2026.2.18", + "lastTouchedAt": "2026-02-19T04:49:36.730Z" + }, + "env": { + "MOONSHOT_API_KEY": "${MOONSHOT_API_KEY}", + "OPENCLAW_GATEWAY_TOKEN": "${OPENCLAW_GATEWAY_TOKEN}" + }, + "wizard": { + "lastRunAt": "2026-02-19T04:49:36.701Z", + "lastRunVersion": "2026.2.18", + "lastRunCommand": "configure", + "lastRunMode": "local" + }, + "auth": { + "profiles": { + "kimi-coding:default": { + "provider": "kimi-coding", + "mode": "api_key" + } + } + }, + "models": { + "providers": { + "moonshot": { + "baseUrl": "https://api.moonshot.ai/v1", + "apiKey": "${MOONSHOT_API_KEY}", + "auth": "api-key", + "api": "openai-responses", + "models": [ + { + "id": "kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": false, + "input": ["text"], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 256000, + "maxTokens": 8192 + } + ] + } + } + }, + "agents": { + "defaults": { + "model": { + "primary": "kimi-coding/k2p5", + "fallbacks": ["moonshot/kimi-k2.5"] + }, + "models": { + "moonshot/kimi-k2.5": { + "alias": "Kimi K2.5" + }, + "kimi-coding/k2p5": { + "alias": "Kimi K2.5" + } + }, + "workspace": "/home/node/.openclaw/workspace" + } + }, + "tools": { + "web": { + "search": { + "enabled": true, + "apiKey": "BSADSjIqy0kUD4b2emM12eSkPKxOeNz" + }, + "fetch": { + "enabled": true + } + } + }, + "commands": { + "native": "auto", + "nativeSkills": "auto" + }, + "channels": { + "whatsapp": { + "dmPolicy": "allowlist", + "selfChatMode": true, + "allowFrom": ["+17193319238"], + "groupPolicy": "allowlist", + "debounceMs": 0, + "mediaMaxMb": 50 + }, + "telegram": { + "enabled": true, + "dmPolicy": "pairing", + "botToken": "8574031211:AAGr40J8J9l5ovKK79actnlS3FceBJq7znk", + "groupPolicy": "allowlist", + "streamMode": "partial" + } + }, + "gateway": { + "port": 18789, + "mode": "local", + "bind": "lan", + "auth": { + "mode": "token", + "token": "ed461301853e59c5994bb293925db9dab23741962e0f68da" + }, + "tailscale": { + "mode": "off", + "resetOnExit": false + } + }, + "plugins": { + "entries": { + "whatsapp": { + "enabled": true + }, + "telegram": { + "enabled": true + } + } + } +} diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index e7d04ea..0000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,51 +0,0 @@ -version: "3.8" - -services: - openclaw: - build: - context: .. - dockerfile: docker/Dockerfile - platforms: - - linux/arm64 - image: openclaw:custom-arm64 - container_name: openclaw-gateway - restart: unless-stopped - - # OpenClaw ports - ports: - - "8080:8080" - - # Persistent volumes for configs and secrets - volumes: - # Your workspace (for memory, agents, etc) - - ./workspace:/home/node/.openclaw/workspace - - # Configs mounted from host (not in image) - - ./config:/data/config:ro - - # Secrets mounted from host (read-only, not in image) - - ./secrets:/data/secrets:ro - - # gog OAuth tokens and config (persistent) - - gog-data:/data/gog - - # OpenClaw runtime data - - openclaw-data:/home/node/.openclaw - - environment: - - OPENCLAW_CONFIG_DIR=/data/config - - GOG_CONFIG_DIR=/data/gog - - GOOGLE_APPLICATION_CREDENTIALS=/data/secrets/google-credentials.json - - GOG_ACCOUNT=${GOG_ACCOUNT:-} - - # Health check using our custom tool - healthcheck: - test: ["CMD", "healthcheck.sh"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 30s - -volumes: - gog-data: - openclaw-data: