Windows 10部署OpenClaw-CN龍蝦機器人避坑指南:飛書鑒權、UAC權限與Docker日志驅動三步解決

Windows 10 部署 OpenClaw-CN(龍蝦)避坑指南
問題:在 Windows 10 上直接 docker-compose up 啟動 OpenClaw-CN,機器人不響應飛書消息,控制臺無報錯,網頁管理頁空白——90% 是飛書鑒權失敗 + UAC 權限攔截 + 日志被 Docker 默認驅動丟棄。
方案:三步閉環——填對飛書 OAuth2 憑據 → 放行 Windows 安全策略 → 切換日志驅動定位真實錯誤。不裝 WSL2、不改注冊表、不碰 PowerShell 策略組,純 Docker Desktop 原生支持。
步驟 1:飛書 App ID / Secret 配置(OAuth2 鑒權原理)
OpenClaw-CN 啟動時用 APP_ID 和 APP_SECRET 向飛書申請 tenant_access_token,這是調用飛書 API 的臨時憑證。填錯、多空格、混入中文標點,服務會靜默退出——因為鑒權失敗發生在啟動流程早期,根本來不及輸出錯誤。
? 操作:
# 進入項目根目錄,編輯 .env 文件(用記事本或 VS Code 打開)
notepad .env確保這三行嚴格無空格、無引號、無中文標點:
FEISHU_APP_ID=cli_XXXXXX # 復制飛書開放平臺「應用憑證」里的 App ID(不是 App Key!)
FEISHU_APP_SECRET=XXX... # 復制「應用憑證」里的 App Secret(32位字母數字)
FEISHU_ENCRYPT_KEY= # 留空(未開啟消息加密時必須為空,填了反而出錯)?? 注意:飛書 OAuth2 對 client_id(即 APP_ID)和 client_secret 敏感。ENCRYPT_KEY 若留空但飛書后臺啟用了消息加密,會返回 400 錯誤,而 Docker 默認不打印這類前置失敗日志。
步驟 2:修復 Windows 系統安全權限(UAC 干預原理)
Docker Desktop 在 Win10 默認以低完整性級別運行。如果 .env 或 config/ 下的文件是從瀏覽器下載解壓的,Windows 會自動打上“來自互聯網”標記并設為只讀——Docker 進程讀取失敗,.env 變量全為空,APP_ID 缺失 → 鑒權跳過 → 服務卡在初始化階段,看起來像“假死”。
? 操作:
# 以管理員身份打開 PowerShell(右鍵開始菜單 → Windows PowerShell(管理員))
cd C:\openclaw-cn
# 清除只讀屬性并賦予當前用戶完全控制權
attrib -R config\*.*
icacls config\*.* /grant "%USERNAME%:(F)" /T?? 注意:icacls 直接修改 ACL,比右鍵屬性里手動勾選“完全控制”更可靠,尤其對批量文件。UAC 攔截的是文件訪問權限,不是 Docker 本身。
步驟 3:切換日志驅動排錯(Docker 日志定位邏輯)
默認 json-file 驅動在 Windows 上容易丟失啟動瞬間的日志(比如鑒權失敗崩潰)。換成 local 驅動能穩定捕獲,并支持實時過濾關鍵線索。
? 操作:

# 編輯 docker-compose.yml,在 services.openclaw.cn 下添加日志配置
notepad docker-compose.yml在 openclaw-cn 服務塊末尾加入:
logging:
driver: "local"
options:
max-size: "10m"
max-file: "3"然后重啟并實時看日志:
docker-compose down && docker-compose up -d
docker-compose logs -f openclaw-cn | findstr "error\|token\|401\|failed"? 典型報錯與對策對照表:
| 日志關鍵詞 | 原因 | 解決 |
|---|---|---|
invalid app_id | .env 里 APP_ID 多空格或復制了換行符 | 用 Notepad++ 顯示所有字符,刪空格和不可見符 |
permission denied: config/.env | UAC 攔截讀取 | 執行步驟 2 的 icacls 命令 |
tenant_access_token expired | 飛書后臺未開啟「機器人」權限 | 進飛書開放平臺 → 應用 → 功能 → 開啟「機器人」并保存 |
驗證
部署后:
- 打開飛書 → 搜索機器人名字 → 發送
/help - 看 Docker 日志是否出現
Bot started, listening on port 8000 - 訪問
http://localhost:8000/admin(默認賬號 admin/admin)
常見問題
- Q:
docker-compose up報錯port already in use?
A:關閉飛書客戶端(它占 8000 端口),或改docker-compose.yml中ports: ["8080:8000"]。 - Q:網頁管理頁顯示
502 Bad Gateway?
A:執行docker-compose logs nginx,90% 是openclaw-cn服務沒起來——回看步驟 3 的日志輸出。
下一步建議:
→ 《OpenClaw-CN 接入自定義知識庫(CSV/Markdown)實戰》
→ 《用 MCP 協議讓龍蝦調用本地 Python 腳本》
→ 遇到具體報錯?截圖發到 龍蝦 Discord #windows-help 頻道,附 docker-compose logs -t openclaw-cn | head -n 50 輸出。