Skip to content

第七章 生產環境部署

本章適合誰? 如果你只是個人使用,在自己電腦上運行 OpenClaw 就夠了,可以跳過本章。本章面向需要 24/7 不間斷運行的用戶——比如你想讓定時任務在你睡覺時也能執行,或者想在手機上隨時控制 OpenClaw。

到目前爲止,你可能一直在本地運行 OpenClaw。但要讓它真正成爲 24/7 待命的 AI 助手,你需要將它部署到服務器上持續運行。

什麼是服務器? 簡單說就是一臺 24 小時開機、連着網的電腦。你可以租一臺雲服務器(VPS),每月幾十元,就像租了一臺永遠在線的遠程電腦。本章介紹 VPS 選擇、Docker 部署和遠程管理的完整流程。

1. 爲什麼需要服務器部署

本地運行的限制很明顯:電腦關機就停了,網絡不穩定會斷連,而且你無法隨時隨地使用。部署到服務器後:

  • 定時任務(第四章)可以 24/7 準時執行
  • 移動端(第三章)可以隨時發送指令
  • 多人可以共享同一個 OpenClaw 實例
  • 系統資源更充足,處理速度更快

2. VPS 選擇

2.1 國內推薦

服務商最低配置月費參考適合場景
阿里雲 ECS2 核 4G~70 元飛書集成、國內服務
騰訊雲 CVM2 核 4G~65 元微信生態集成
火山引擎2 核 4G~60 元字節系產品集成

2.2 海外推薦

服務商最低配置月費參考適合場景
Hetzner2 核 4G~$5性價比最高
DigitalOcean2 核 4G~$12Telegram 集成
AWS Lightsail2 核 4G~$10AWS 生態集成

2.3 配置建議

  • 最低要求:2 核 CPU、4GB 內存、40GB SSD
  • 推薦配置:4 核 CPU、8GB 內存、80GB SSD
  • 操作系統:Ubuntu 22.04 LTS 或 Debian 12

2.4 託管替代方案:ArkClaw

如果你不想自己購買和管理服務器,可以考慮雲廠商提供的 OpenClaw 託管服務。例如火山引擎的 ArkClaw 提供了完全託管的 OpenClaw 雲端實例,無需購買 VPS、無需配置 Docker,訂閱 Coding Plan 後即可獲得 24/7 運行的 OpenClaw 服務(Lite ¥9.90/月起,新用戶享 7 天免費試用)。

適合不想運維服務器、希望快速上線的用戶。本章後續內容面向自建部署,如果你選擇託管方案可以跳過。

3. 基礎部署

3.1 安裝 OpenClaw

Node.js 安裝和 API Key 獲取的詳細步驟請參考第一章,這裏只列出服務器部署的關鍵命令。

bash
# SSH 連接到服務器(SSH 是遠程登錄工具,用你的終端連接到遠程服務器)
# 將 user 替換爲你的用戶名,your-server-ip 替換爲服務器 IP 地址
ssh user@your-server-ip

# 安裝 Node.js 22(詳見第一章第 2 節)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt-get install -y nodejs

# 安裝 OpenClaw
npm install -g openclaw

# 驗證安裝
openclaw --version

3.2 配置 LLM API Key

使用第一章獲取的 API Key 配置服務器端(以硅基流動爲例):

在部署目錄下創建或編輯 openclaw.json,填入你的 API Key:

json
{
  "env": {
    "SILICONFLOW_API_KEY": "sk-你的密鑰"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "siliconflow": {
        "baseUrl": "https://api.siliconflow.cn/v1",
        "apiKey": "${SILICONFLOW_API_KEY}",
        "api": "openai-completions",
        "models": [
          { "id": "deepseek-ai/DeepSeek-V3", "name": "DeepSeek V3" }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "siliconflow/deepseek-ai/DeepSeek-V3" }
    }
  }
}

安全提示:生產環境建議將密鑰寫入系統環境變量,再在 openclaw.json 中用 ${SILICONFLOW_API_KEY} 引用,避免密鑰明文出現在配置文件裏。

提示:如果還沒有 API Key,請先完成第一章第 2 節的註冊步驟。

3.3 使用 systemd 保持運行

什麼是 systemd? systemd 是 Linux 系統自帶的"服務管理器",可以讓程序在後臺自動運行,並在崩潰時自動重啓。你不需要深入瞭解它,只需運行下面一條命令即可。

創建系統服務讓 OpenClaw 在後臺持續運行。OpenClaw 提供了自動生成 systemd 配置的命令:

bash
# 自動安裝 systemd 服務(推薦)
openclaw onboard --install-daemon
展開:手動配置 systemd 服務

如果需要手動配置:

bash
sudo tee /etc/systemd/system/openclaw.service > /dev/null << 'EOF'
[Unit]
Description=OpenClaw AI Agent
After=network.target

[Service]
Type=simple
User=openclaw
WorkingDirectory=/home/openclaw
ExecStart=/usr/bin/openclaw gateway start
Restart=always
RestartSec=10
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

管理服務:

bash
sudo systemctl status openclaw    # 查看狀態
sudo systemctl restart openclaw   # 重啓
journalctl -u openclaw -f         # 查看實時日誌

4. Docker 部署(推薦)

Docker 提供了更好的隔離性和可移植性。

4.1 使用官方安裝腳本(推薦)

OpenClaw 官方提供了 docker-setup.sh 一鍵部署腳本,這是最簡單的 Docker 部署方式:

bash
# 克隆官方倉庫
git clone https://github.com/openclaw/openclaw.git
cd openclaw

# 使用預構建鏡像運行(推薦,省去編譯時間)
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh

腳本會自動完成以下步驟:

  1. 拉取或構建 Docker 鏡像
  2. 運行初始化配置嚮導
  3. 生成訪問令牌(Token)
  4. 啓動 Gateway 服務

完成後訪問 http://127.0.0.1:18789/ 打開控制檯,在設置中粘貼腳本輸出的 Token 即可使用。

展開:啓用沙箱模式(Docker-in-Docker)

如果你希望 AI 執行的命令在隔離環境中運行(更安全),可以啓用沙箱模式:

bash
export OPENCLAW_SANDBOX=1
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh

什麼是沙箱? 沙箱是一種安全機制,讓 AI 執行的命令在一個獨立的容器中運行,即使出錯也不會影響你的主系統。

如果你使用 rootless Docker(非 root 用戶運行 Docker),還需要指定 socket 路徑:

bash
export OPENCLAW_SANDBOX=1
export OPENCLAW_DOCKER_SOCKET=/run/user/1000/docker.sock
./docker-setup.sh

4.2 使用官方鏡像

bash
# 拉取鏡像
docker pull ghcr.io/openclaw/openclaw:latest

# 創建配置目錄
mkdir -p ~/openclaw-data

# 運行容器
docker run -d \
  --name openclaw \
  --restart always \
  -v ~/openclaw-data:/home/openclaw/.openclaw \
  -e LLM_API_KEY="sk-xxxxx" \
  -p 18789:18789 \
  ghcr.io/openclaw/openclaw:latest gateway start

注意:容器內運行用戶爲 uid 1000(node)。宿主機掛載目錄需確保權限正確:

bash
chown -R 1000:1000 ~/openclaw-data

### 4.3 使用 Docker Compose

> **什麼是 Docker Compose?** Docker Compose 是 Docker 的"編排工具",讓你用一個配置文件(`docker-compose.yml`)定義和管理容器,比手動輸入長串 `docker run` 命令更方便。

```yaml
# docker-compose.yml
services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    restart: always
    volumes:
      - ./data:/home/openclaw/.openclaw
    ports:
      - "18789:18789"
    environment:
      - LLM_API_KEY=${LLM_API_KEY}
      - NODE_ENV=production
    command: gateway start

啓動:

bash
# 創建 .env 文件
echo "LLM_API_KEY=sk-xxxxx" > .env

# 啓動服務
docker compose up -d

# 查看日誌
docker compose logs -f

4.4 更新版本

bash
docker compose pull
docker compose up -d
展開:安全加固配置

5. 安全加固

5.1 創建專用用戶

bash
sudo useradd -m -s /bin/bash openclaw
sudo su - openclaw

5.2 防火牆配置

bash
# 只開放必要端口
sudo ufw allow ssh
sudo ufw allow 443/tcp    # HTTPS(如果需要 Webhook)
sudo ufw enable

5.3 API Key 安全

  • 使用環境變量而非明文配置文件
  • 定期輪換 API Key
  • 設置 API 調用上限

5.4 日誌審計

bash
# 查看 OpenClaw 最近日誌
openclaw logs --limit 100

# 實時監控日誌
openclaw logs --follow
展開:監控與維護

6. 監控與維護

6.1 健康檢查

OpenClaw 提供內置健康檢查端點(默認端口 18789):

bash
# 存活檢查(liveness)
curl http://localhost:18789/healthz

# 就緒檢查(readiness)
curl http://localhost:18789/readyz

也可以設置一個定時任務讓 OpenClaw 自我檢查:

每小時檢查一次自身狀態,如果發現異常就發送告警到 Telegram

6.2 自動備份

bash
# 備份配置和記憶
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz ~/openclaw-data/

# 設置定時備份(每天凌晨 3 點)
echo '0 3 * * * tar -czf /backups/openclaw-$(date +\%Y\%m\%d).tar.gz ~/openclaw-data/' | crontab -

6.3 磁盤管理

OpenClaw 的對話歷史和日誌會隨時間增長。定期清理:

bash
# 清理 30 天前的對話歷史
openclaw cleanup --older-than 30d

# 查看磁盤使用
du -sh ~/openclaw-data/*

7. 常見問題

服務啓動失敗:檢查 Node.js 版本(需要 22+)、API Key 是否正確、端口是否被佔用。

內存不足:OpenClaw 運行時通常佔用 500MB-1GB 內存。如果服務器內存緊張,考慮升級配置或使用 swap。

網絡超時:如果使用海外 API 提供商,國內服務器可能需要代理。可以配置 HTTP_PROXY 環境變量。推薦使用硅基流動等國內提供商避免此問題。

Docker 容器自動重啓:檢查 docker logs openclaw 查看崩潰原因,通常是 API Key 過期或配置文件格式錯誤。


下一步第八章 多模型與成本優化