很多人以為,Mac Mini 只要安裝好 OpenClaw,打開瀏覽器看到 Web UI,就代表 AI Agent 已經部署完成。
真正容易出問題的地方,通常發生在第二天重啟之後:服務沒有自動恢復、API 金鑰不見、容器掛載到錯誤目錄,或者你人在外地卻無法安全連線。這也是為什麼 OpenClaw Mac Mini 部署不應只比較「哪一種指令比較短」,而要把長期運作、權限、備份和故障恢復一起納入考量。
本文會以 2026 年的實際部署流程,對比原生安裝與 Docker Compose 容器方案,並帶你完成一套可遷移、可遠端管理的 AI Agent 主機。
為什麼 Mac Mini 適合長期執行 OpenClaw?
OpenClaw 的 Gateway 會持續處理 Web UI、模型請求、工作區資料,以及訊息渠道的事件。對需要常駐執行的 AI Agent 來說,主機不只是「跑一次程式」,而是要長時間保持在線、可被遠端管理,並在重啟後恢復服務。
Mac Mini 的優勢主要有三點:
- macOS 環境可直接使用本地檔案、Shell 工具和開發者工作流。
- Apple Silicon 的低功耗特性,適合長時間開機執行自動化任務。
- 可透過 SSH、VNC 或 Tailscale 管理,不必把日常工作電腦暴露為伺服器。
不過,Mac Mini 本地部署也有隱性成本。第一,macOS 的睡眠、系統更新與使用者登入狀態可能影響常駐服務。第二,OpenClaw 若需要讀取工作區、呼叫系統指令或連接本機服務,權限設定會比一般 Web 應用更敏感。第三,API 金鑰、工作區、頻道登入狀態和 Agent 設定若沒有集中備份,遷移時很容易只搬走程式,卻漏掉真正重要的資料。
官方文件目前列出的原生安裝需求包括 Node.js 22.22.3+、24.15+ 或 25.9+,其中 Node.js 24 是新安裝的預設目標版本;OpenClaw Gateway 的預設連接埠則是 18789。(docs.openclaw.ai)
OpenClaw 原生安裝還是 Docker?先看這張選型表
原生安裝不是「比較專業」,Docker 也不是「一定更安全」。兩者真正的差異,在於你是否需要直接使用 macOS 能力,以及你願不願意維護容器、掛載和映像檔版本。
| 比較項目 | 原生安裝 | Docker Compose |
|---|---|---|
| 首次上手 | 指令較短,適合個人快速開始 | 需要 Docker Desktop、Compose 和掛載設定 |
| macOS 權限 | 直接使用主機環境,權限整合較自然 | 容器內外隔離,讀取主機資料需額外掛載 |
| 服務隔離 | 較低,Node.js 與套件直接位於主機 | 較高,執行環境由映像檔固定 |
| 資料持久化 | 直接管理 ~/.openclaw 與工作區 |
必須正確設定 volume 或 bind mount |
| 升級與回滾 | 操作簡單,但可能影響全域套件 | 可鎖定映像版本,回滾較清楚 |
| 長期維護 | 適合單機和少量服務 | 適合團隊、測試環境和可複製部署 |
| 常見風險 | PATH、Node 版本、權限衝突 | 掛載錯誤、容器資料遺失、主機服務連不到 |
如果你是第一次在自己的 Mac Mini 上建立單一 Agent,原生安裝通常較快驗證功能;如果你要管理多個環境、需要固定版本或日後搬到另一台主機,Docker 會更容易建立一致的部署紀錄。
因此,OpenClaw 原生安裝還是 Docker,不應只看安裝時間,而要看你的 Agent 是否需要存取 macOS 主機能力。
第一階段:部署前先固定資料與權限邊界
無論選哪一種方式,先做以下準備。這一步能避免「服務能啟動,但 Agent 沒有工作能力」的情況。
- 建立專用 macOS 使用者,不要直接用日常管理員帳戶執行所有自動化任務。
- 準備獨立工作區,例如
~/openclaw-workspace,將原始碼、提示詞、輸出檔案和暫存資料分開。 - 整理模型供應商的 API 金鑰,優先放在受限的環境變數或 OpenClaw 設定,而不是直接寫進公開的 Shell 歷史紀錄。
- 確認 Mac Mini 不會因睡眠而中斷任務,並安排 macOS 更新和重新啟動時段。
- 記錄 OpenClaw 狀態目錄、工作區路徑、使用中的連接埠和訊息渠道。
- 先決定 Web UI 只供本機使用,還是需要透過 Tailscale 進行遠端存取。
OpenClaw 官方安全建議以 loopback 作為預設綁定位址,並使用 token 或密碼認證;若改用 lan、tailnet 或其他公開綁定方式,必須同時配置認證和防火牆。不要把未認證的 Gateway 直接綁定到 0.0.0.0。(docs.openclaw.ai)
原生安裝:適合先求穩定、直接使用 macOS 能力
第二步:執行官方安裝與初始化
在 Mac Mini 的 Terminal 執行:
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
官方安裝腳本會檢查作業系統,必要時處理 Node.js 安裝,接著安裝 OpenClaw 並啟動初始設定。若你想將安裝與設定拆開,可以先使用:
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-onboard
接著執行:
openclaw onboard --install-daemon
openclaw --version
openclaw doctor
openclaw gateway status
--install-daemon 會在 macOS 上建立 LaunchAgent,適合讓 Gateway 在登入後自動啟動。官方安裝指南也列出 openclaw gateway install 作為另一個服務安裝入口。(docs.openclaw.ai)
第三步:確認 Web UI 和狀態檔案
原生安裝完成後,先在本機開啟:
http://127.0.0.1:18789/
若瀏覽器無法開啟,依序檢查:
openclaw gateway status
openclaw gateway probe
lsof -nP -iTCP:18789 -sTCP:LISTEN
再確認狀態目錄和工作區沒有被錯誤建立在另一個使用者底下。常見問題是你用 sudo 安裝過一次,之後又以一般使用者啟動,導致設定檔擁有者不一致。
Docker Compose:適合版本固定、隔離和日後搬遷
Docker 方案的核心不是「把程式放進容器」這麼簡單,而是要將映像檔、設定、工作區和金鑰狀態分開管理。OpenClaw 官方 Docker 文件要求 Docker Desktop 或 Docker Engine 加上 Docker Compose v2;映像檔建置至少需要約 2 GB 記憶體,並且要預留映像檔與日誌所需的硬碟空間。(docs.openclaw.ai)
OpenClaw Docker 部署教程
- 取得 OpenClaw 原始碼或官方部署檔案,並進入專案根目錄。
- 確認 Docker Desktop 已啟動:
docker version
docker compose version
- 執行官方設定腳本:
./scripts/docker/setup.sh
- 完成 API 金鑰和 Gateway token 的初始化。
- 啟動 Gateway:
docker compose up -d openclaw-gateway
- 檢查容器狀態與日誌:
docker compose ps
docker compose logs -f openclaw-gateway
- 在本機開啟:
http://127.0.0.1:18789/
官方 Docker 流程會將 token 寫入 .env,Control UI 開啟後需在設定頁貼上該 token。若要重新取得控制台位址,也可以執行 docker compose run --rm openclaw-cli dashboard --no-open。(docs.openclaw.ai)
第四步:設定資料持久化
至少要持久化以下內容:
- OpenClaw 狀態目錄。
- Agent 工作區。
- API 認證或模型登入狀態。
- 若有使用 CLI 型模型工具,還要持久化容器使用者的 Home 目錄。
- 自訂外掛、瀏覽器狀態和必要的設定檔。
Compose 的 volumes 可使用 named volume 或 bind mount;如果只把容器刪除再重建,沒有掛載的資料可能一併消失。Docker 官方文件也提醒,修改 Compose 設定後,單純執行 docker compose restart 不會套用新的環境變數或服務配置;需要用 docker compose up 讓 Compose 依新設定重建容器。(docs.docker.com)
一個簡化的持久化概念如下:
services:
openclaw-gateway:
restart: unless-stopped
volumes:
- openclaw_state:/home/node/.openclaw
- ./workspace:/home/node/.openclaw/workspace
volumes:
openclaw_state:
實際路徑應以官方 Compose 檔案和你目前版本的設定為準,不要直接把這段範例覆蓋到正式環境。
提醒: Docker 裡的
127.0.0.1指向容器本身,不一定是 Mac Mini 主機。如果 OpenClaw 要連接主機上的 Ollama 或其他本地服務,通常要改用host.docker.internal,並確認主機服務確實監聽可被容器存取的位址。(docs.openclaw.ai)
兩種方案的資源與維護成本怎麼估?
部署方式會直接影響你對記憶體、硬碟和日誌的安排。以下是選型時可先採用的典型區間,不是 OpenClaw 的硬性最低規格。
| 使用情境 | 建議方式 | 主機資源重點 | 維護重點 |
|---|---|---|---|
| 個人測試、單一 Agent | 原生安裝 | 先確保有足夠記憶體給 Node、瀏覽器和模型工具 | PATH、LaunchAgent、權限 |
| 24 小時訊息渠道 | 原生或 Docker | 工作區與日誌要預留額外硬碟空間 | 重啟後自動恢復、金鑰保護 |
| 多個測試版本 | Docker | 建置時至少準備約 2 GB 記憶體 | 映像版本、volume、Compose 檔 |
| 小型團隊共用 | Docker | 記憶體與硬碟要按 Agent 數量增加 | 權限分層、備份、回滾 |
| 需要大量 macOS 系統工具 | 原生安裝 | 直接使用主機工具鏈較方便 | 限制 Agent 可執行的指令 |
如果 Agent 主要操作本機檔案和 macOS 工具,容器隔離可能帶來額外掛載和權限工作;如果 Agent 的工作內容以 API、訊息渠道和固定工作區為主,Docker 的隔離價值通常更明顯。
OpenClaw 開機自啟設定:launchd、PM2 還是 Docker?
原生安裝的 launchd
macOS 上優先使用 OpenClaw 自己建立的 LaunchAgent,而不是額外疊加多個程序管理器:
openclaw onboard --install-daemon
openclaw gateway status
如果服務重啟後沒有恢復,先查看目前使用者的 LaunchAgent 是否存在,再檢查日誌和執行檔 PATH。LaunchAgent 通常依賴特定使用者環境,不能假設以 sudo 執行的 Shell 和登入使用者擁有相同環境變數。
PM2 的適用範圍
PM2 可作為 Node.js 程式的程序管理工具,但不建議在已由 OpenClaw 管理的 Gateway 上再重複套一層,否則排查時可能出現「LaunchAgent 和 PM2 同時啟動」的連接埠衝突。
若團隊本身已經有 PM2 標準化流程,可以選擇其中一種管理方式,並明確記錄:
- 由誰負責啟動。
- 使用哪一組環境變數。
- 日誌放在哪裡。
- 重啟時是否會清理或重建工作區。
Docker 的自動恢復
Docker Compose 可使用:
restart: unless-stopped
這代表容器停止後會自動重啟,但在你主動停止或移除服務時不會無限恢復。這個設定適合常駐 Gateway,但不能取代備份、健康檢查和版本管理。(docs.docker.com)
OpenClaw 遠端訪問應該怎麼做?
不要為了方便,直接將 18789 連接埠公開到網際網路。較安全的流程是:
- Web UI 先維持
loopback。 - 啟用 token 或密碼認證。
- 在 Mac Mini 安裝 Tailscale。
- 將你的管理裝置加入同一個 tailnet。
- 只允許必要的裝置存取 Gateway。
- 不在路由器上做廣泛的連接埠轉發。
- 若要改用
tailnet綁定,先確認防火牆和認證設定。
Tailscale 官方目前的 macOS 用戶端要求 macOS Monterey 12.0 或更新版本,安裝後需完成 VPN 設定和身分登入。(tailscale.com)
遠端連線前,先在 Mac Mini 本機確認服務正常,再從 Tailscale 網址或指定的 tailnet 位址測試。若你只是想存取 Web UI,優先採用保留 Gateway 在 loopback、由 Tailscale 提供安全入口的方式。OpenClaw 官方也明確建議優先考慮 Tailscale Serve,而不是直接把 Gateway 綁到區域網路。(docs.openclaw.ai)
常見報錯:為什麼服務啟動了,Agent 卻離線?
連接埠 18789 已被使用
執行:
lsof -nP -iTCP:18789 -sTCP:LISTEN
如果同時有原生 Gateway 和 Docker 容器佔用連接埠,先停止其中一套,不要直接修改連接埠來掩蓋重複啟動問題。
Web UI 打不開
依序檢查:
openclaw gateway status
openclaw gateway probe
curl -I http://127.0.0.1:18789/
若本機可開、遠端不可開,問題通常在綁定位址、防火牆、Tailscale 或認證,而不是 Web UI 本身。
Docker 重建後資料消失
檢查:
docker volume ls
docker inspect <container-name>
docker compose config
確認 volume 是否掛到正確的容器路徑。不要只備份 docker-compose.yml,還要備份 .env、工作區和 OpenClaw 狀態資料。
Agent 沒有權限讀取檔案
原生安裝要檢查 macOS 使用者、檔案擁有者和隱私權設定;Docker 則要檢查 bind mount 是否使用正確的主機路徑,以及容器內使用者是否有讀寫權限。
重啟後服務存在但沒有回應
先查看日誌,再執行:
openclaw doctor
openclaw gateway status
Docker 升級後若 Gateway 無法完成安全遷移,官方建議保留原有狀態 volume,再以相同掛載執行 openclaw doctor --fix,完成後重新啟動 Gateway。(docs.openclaw.ai)
本地 Mac Mini 與雲端 Mac,部署決策怎麼做?
如果你已經有一台長期在線、可控制睡眠和更新的 Mac Mini,本地部署的優點是檔案距離近、權限直接,適合需要連接私人資料和本機工具的 Agent。
但本地方案也有幾個現實缺點:
- 需要自行承擔硬體購置、維修和停電風險。
- 異地協作時,還要處理路由器、固定 IP、VPN 和遠端桌面。
- Mac Mini 忙於其他工作或進行系統更新時,Agent 的可用性會受影響。
- 從頭設定 Docker、launchd、備份和 Tailscale,需要投入額外維護時間。
若你想先測試 OpenClaw、沒有閒置 Mac Mini,或希望將 Agent 放在固定節點長期執行,可以評估 SpinMac 雲端 Mac 方案。目前頁面列出的 SpinMac 是獨享實體 Mac mini M4,提供 16 GB 記憶體、256 GB SSD、1 Gbps 獨享頻寬,並支援 SSH、瀏覽器 VNC 和完整 sudo 權限。頁面顯示新加坡、東京、首爾、香港及美國東部五個節點,付款後約 1–5 分鐘自動交付。(spinmac.com)
| 部署選項 | 適合對象 | 優勢 | 需要留意 |
|---|---|---|---|
| 自有 Mac Mini 原生安裝 | 個人開發者、本機工具使用者 | 設定快、直接存取 macOS | 需自行處理常駐、更新和備份 |
| 自有 Mac Mini Docker | 小型團隊、多版本測試 | 版本清楚、隔離較好 | volume、映像和權限管理較複雜 |
| SpinMac 雲端 Mac | 無本地設備、遠端團隊、快速驗證 | 可遠端接入、交付快、硬體獨享 | 需按租期管理成本與資料遷移 |
| 雲端 Mac 搬遷部署 | 已有 OpenClaw 設定的使用者 | 可保留工作流和服務結構 | 必須重新檢查金鑰、IP、權限和路徑 |
OpenClaw 雲端 Mac 部署前,先準備這份遷移清單
完成 OpenClaw 雲端 Mac 部署前,不要直接把整個使用者目錄壓縮上傳。建議依序處理:
- 在原主機執行
openclaw doctor,先修正設定問題。 - 匯出或安全備份 OpenClaw 狀態、工作區和 Compose 檔案。
- 將 API 金鑰改用新的受限金鑰,避免長期暴露原本的個人金鑰。
- 記錄原主機使用的連接埠、Tailscale 身分、SSH 使用者和資料路徑。
- 在新 Mac Mini 上先完成 macOS 更新、SSH 或 VNC 登入。
- 先選擇原生安裝或 Docker,不要同時部署兩個 Gateway。
- 還原工作區和設定,再重新執行
openclaw doctor。 - 本機測試 Web UI、模型請求、檔案權限和訊息渠道。
- 最後才開啟開機自啟與遠端存取。
- 保留舊主機一段觀察期,確認新 Agent 可在重啟後恢復。
如果你需要比較租用週期、節點和附加儲存選項,可以查看 SpinMac 定價頁;完成方案選擇後,再透過 SpinMac 下單頁建立遠端 Mac。這種做法比先購買硬體、等待到貨,再花時間處理常駐和遠端管理,更適合需要快速驗證 OpenClaw 工作流的情況。
對多數個人開發者而言,原生安裝是最快的功能驗證路線;對要固定版本、多人協作和可重建環境的團隊,Docker 更值得投入。若你目前沒有本地設備,或本地 Mac Mini 需要與其他工作共用,直接使用 SpinMac 的獨享雲端 Mac,通常能避開硬體等待、家庭網路不穩和自行維護常駐服務這三個長期負擔,讓你把時間放在 Agent 工作流本身,而不是反覆處理主機故障。