01:Hello, OpenClaw — 凌晨兩點的 AI 奇遇

AI Agent Jan 29, 2026

當我在凌晨兩點滑著 GitHub 的時候,我沒想到接下來的一個月會是這樣的光景:

  • 容器陣亡 9 次。
  • 追著 3 天改了 3 個名字的東西跑。
  • 放棄 NAS 改上雲端,最終卻又回到 NAS。
  • 最後養出兩隻 AI 貓咪共同協作。

這是「Nerigate」建置日誌系列的第一篇,我想先跟你聊聊:為什麼一個正在面臨職涯危機的人會在深夜搞這些?


一切從 Mac Mini M4 開始

你可能聽過最近 Mac Mini M4 熱銷的消息。但你知道有一群人買它不是為了剪片、寫程式,而是——養 AI?沒錯,就是字面意義的「養」。讓一個 AI Agent 24/7 跑在本機,隨時待命,自動執行任務,甚至主動提醒你該做什麼。這不是科幻片,是現在進行式。

我第一次聽到這概念時的反應是:「喔喔,這聽起來挺厲害的…但我哪有錢買 Mac Mini?」

接著我看了一眼角落的 Synology DS920+

「等等,NAS 不就是台 24/7 不關機的 Linux 主機嗎?」
「Intel J4125 四核心、8GB RAM,應該⋯可以吧?」

所以我當下做了個決定:不買新機(反正也沒錢買),直接在 NAS 上跑看看先。

結果呢?這個決定讓我在接下來的 27 小時內見識到什麼叫「可以,但沒那麼簡單」。


Clawdbot? Moltbot? OpenClaw?

夜半臨睡前,滑滑手機看看 FB、Threads 再正常不過了,但接連看到一個新鮮的名詞出現在各大技術文中,那就著實引起我的興趣,於是在 GitHub 上搜尋「AI Agent self-hosted」的時候,我找到它的 repo:Clawdbot

文件寫得很清楚:

  • 可以跑在 Docker
  • 支援各大模型的 API
  • 有 Web 介面
  • 還能整合 Telegram、Discord 讓你直接下命令

完美!就是你了!

於是我興沖沖地準備 pull Docker image:

docker pull ghcr.io/clawdbot/clawdbot:latest

然後 Docker 很冷靜地回我:

Error response from daemon: manifest for ghcr.io/clawdbot/clawdbot:latest not found

「???」

我重新檢查 GitHub README,發現一行小字:

⚠️ The project has been renamed to moltbot

好,那就改成 moltbot

docker pull ghcr.io/moltbot/moltbot:latest

Docker:

Error: denied: repository does not exist

「?????」

我開始翻 Issues、翻 Discussions,然後發現有人在問:

"Why can't I find the moltbot package on npm?"

作者回覆:

"We've renamed back to OpenClaw. Please use ghcr.io/molt-bot/moltbot for now until we migrate everything."

我看著螢幕,深呼吸。

這是一個有三個名字的專案。

  • 原名:Clawdbot
  • 改名:Moltbot
  • 最終名:OpenClaw
  • 但映像檔路徑還是 molt-bot/moltbot

這就像你去找一個朋友,他家門牌寫「王大明」,但信箱寫「大明王」,按門鈴時他說「我現在叫 Kevin」。

第一課:追著 AI 工具改名跑,是建置旅程的常態。


DS920+:我可以的(應該吧?)

好,名字的事先擱著,我們來談談硬體。

Synology DS920+ 規格:

  • CPU: Intel Celeron J4125 (4C4T, 2.0-2.7GHz)
  • RAM: 8GB DDR4
  • OS: DSM 7.2 (基於 Linux)
  • Docker: ✅ 支援

看起來沒問題,對吧?

當時我的想法是這樣的:

「Clawdbot(好吧,OpenClaw)只是一個 Node.js 應用 + Model API,不會吃太多資源。」
「DS920+ 平常只是跑個 Plex、掛個下載,還有一堆空閒效能。」
「如果 Mac Mini M4 可以,我的 NAS 應該也可以!」

這個邏輯沒錯。

但我忽略了一件事:「可以跑」跟「能順利跑起來」是兩回事。

特別是當你需要處理:

  • Docker 網路設定
  • 權限問題(NAS 的 UID/GID 地獄)
  • 瀏覽器沙盒(OpenClaw 需要 Chrome/Playwright)
  • Port forwarding
  • HTTPS 憑證(Telegram/Discord Webhook 強制要求)

每一項單獨看都不難,但全部加在一起,就變成了一場⋯⋯

⚰️ 陣亡循環。


凌晨 00:07:第一次 denied

時間回到 1/28 凌晨。

我在 Synology 的 Container Manager 裡開了一個新專案,準備 pull image。

docker pull ghcr.io/molt-bot/moltbot:latest

Docker:

Error response from daemon: denied: repository does not exist or may require 'docker login'

「喔對,GitHub Container Registry 需要認證。」

於是我去申請了一個 GitHub Personal Access Token (PAT),給它 read:packages 權限,然後:

echo $GITHUB_TOKEN | docker login ghcr.io -u kevin --password-stdin
docker pull ghcr.io/molt-bot/moltbot:latest

這次成功了!🎉

latest: Pulling from molt-bot/moltbot
Digest: sha256:abc123...
Status: Downloaded newer image for ghcr.io/molt-bot/moltbot:latest

我看著進度條跑完,心想:「好的,最難的部分結束了。」

錯。

最難的部分才剛開始。


凌晨 00:21:MODULE_NOT_FOUND

Image 下載完,接下來是寫 docker-compose.yml

我參考了官方文件,寫了一個基本配置:

version: '3.8'
services:
  moltbot:
    image: ghcr.io/molt-bot/moltbot:latest
    container_name: moltbot-gateway
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    ports:
      - "3000:3000"
    volumes:
      - ./workspace:/app/workspace
    restart: unless-stopped

看起來沒問題。docker-compose up -d,容器啟動!

然後⋯⋯

moltbot-gateway | Error: Cannot find module '/app/gateway'
moltbot-gateway exited with code 1

「???」

我進到容器裡看:

docker exec -it moltbot-gateway sh
ls /app

結果發現 /app 底下根本沒有 gateway 這個檔案。

「那 entrypoint 到底在執行什麼?」

我翻了 Dockerfile,發現 entrypoint 設定是:

ENTRYPOINT ["node", "/app/gateway"]

但實際上,正確的執行檔位置是 /app/dist/index.js,而且要透過 npx moltbot 這個指令來呼叫。

第二課:官方文件跟實際程式碼不一定同步。


凌晨 00:25:command 只寫 gateway,系統誤判

好,那我改一下 docker-compose.yml

command: gateway

再啟動一次。

這次容器沒報錯,但⋯⋯它直接退出了。

moltbot-gateway exited with code 0

「Exit code 0 是正常結束,但為什麼啟動後就結束?」

我查看 logs:

docker logs moltbot-gateway

看到的是:

Usage: moltbot <command> [options]

Commands:
  gateway    Start the OpenClaw gateway
  pairing    Manage pairing
  ...

它把我的 command: gateway 當成⋯⋯顯示 help 選單。

然後就退出了。

優雅,禮貌,但沒用。


凌晨 00:30:不預期停止的無限循環

此時 Synology 的 Container Manager 介面開始出現詭異現象:

  • 我看到容器顯示「執行中」
  • 點開 WebUI 連結 → 「容器不存在」
  • 重新整理 → 容器 ID 變了

幽靈容器現象。

因為容器會:

  1. 啟動
  2. 顯示 help
  3. 退出(Exit 0)
  4. Docker 看到 restart: unless-stopped,重新啟動
  5. 回到步驟 1

這個循環每 3 秒跑一次。

而 Synology 的 UI 因為抓不到「瞬息萬變的容器 ID」,所以一直顯示錯誤。

我看著 logs 不斷重複:

Usage: moltbot <command>...
Container restarting...
Usage: moltbot <command>...
Container restarting...

第三課:當 Docker 說 Exit Code: 0,它的意思不是「成功」,而是「我不幹了」。


凌晨 00:45:終極大招 — sleep infinity

在反覆陣亡 4 次後,我決定用一招⋯⋯非常蠢,但保證有用的方法:

command: sleep infinity

讓容器活著,什麼都不做,只是活著。

然後手動進去終端機執行指令。

docker exec -it moltbot-gateway sh
cd /app
node dist/index.js gateway

這次⋯⋯成功了!🎉

OpenClaw Gateway starting...
Listening on port 3000

我興奮地打開瀏覽器,輸入 http://192.168.1.xxx:3000

看到了 OpenClaw 的 WebUI!

然後它顯示:

Status: Disconnected
Reason: Pairing required

「⋯⋯」

「好,至少容器活著了。」

第四課:sleep infinity 維護模式 — 蠢,但有效。


這只是開始

到此為止,時間是凌晨 1 點。

我成功讓 OpenClaw 的容器跑起來了,但距離「真正能用」還有十萬八千里:

  • ❌ Pairing 認證還沒搞定
  • ❌ 權限問題(UID 1000 vs 1026)
  • ❌ 瀏覽器沙盒環境
  • ❌ HTTPS 憑證
  • ❌ Webhook 設定

更不用說,我還不知道接下來會遇到什麼。

但至少,我跟 OpenClaw 正式見面了。

Hello, OpenClaw。

很高興認識你。

雖然你讓我在凌晨陣亡了 4 次。


下集預告

下一篇,我們會進入真正的地獄

  • PowerShell 的「無法辨識」三連擊
  • MODULE_NOT_FOUND 的 9 種變體
  • 為什麼 npm install -g 之後還是找不到指令
  • 以及⋯⋯「Hello, Moltbot」之後就沒有然後了

《當 Docker 說再見的第九次:NAS 上的陣亡循環》

敬請期待 🐾

Tags