昨天完成了本地 Whisper 的環境與服務封裝,今天的目標是要讓自動化工作流平台 n8n 在容器中跑起來,並且測試第一支 Webhook。
docker-compose.yml
,部署 n8n 容器你一定會好奇,為什麼要用 Docekr 來架設 n8n ?這樣有什麼好處?
docker-compose.yml
,就可以同時管理多個容器,維護成本低。我們來簡單介紹一下 Docker 的概念
按下 Win+Pause/Break(或在「開始」按鈕上點右鍵,選「系統」)
找到「裝置規格」下的「系統類型」一欄:
64 位元作業系統,x64 型處理器
代表 AMD64。64 位元作業系統,ARM64 型處理器
代表 ARM64。記得自己電腦的架構
至 Docker 官網下載 Docker Desktop 安裝檔案,請依照上一步查到的結果,點選:
等待下載的期間,可至 Docker hub 註冊帳號。
下載完後,打開安裝檔案後點擊OK,待安裝程式跑完後,即安裝完成。
同意 Docker Service Agreement
登入帳號後,即可來到 Docekr 畫面
可打開 PowerShell 執行
docker --version
docker-compose --version
如果能正常顯示版本號,這表示 Docker 已正確安裝並可以使用了。
在專案根目錄下,建立名為 docker-compose.yml
的檔案,用來定義 n8n 容器:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: m2a-n8n
restart: unless-stopped
ports:
- "5678:5678"
volumes:
- ./n8n_data:/home/node/.n8n
environment:
# n8n 基本設定
- N8N_HOST=0.0.0.0 # 監聽所有網路介面
- N8N_PORT=5678 # n8n 服務埠號
- N8N_PROTOCOL=http # 使用 HTTP(開發環境無需 HTTPS)
- WEBHOOK_URL=http://localhost:5678/ # Webhook 根網址
- GENERIC_TIMEZONE=Asia/Taipei # 設定時區為台北
# 開發友善設置
- N8N_SECURE_COOKIE=false # 關閉 cookie 安全標誌,方便 HTTP 存取
- N8N_DIAGNOSTICS_ENABLED=false # 關閉匿名診斷數據收集
volumes:
n8n_data: {} # 本機 volume,用以持續化儲存工作流與憑證
environment:設定時區、Webhook URL 及本地開發所需參數
0.0.0.0
表示接收任何對外請求。ports
對應到本機相同埠。http
,開發環境用 HTTP 即可,不需要配置 SSL。true
,cookie 只允許在 HTTPS 下傳送;開發可以關閉避免跨域問題。/home/node/.n8n
(n8n 預設資料夾)對應到本機 n8n_data
,確保工作流與認證憑證不會因容器重建而遺失。在專案根目錄執行
docker-compose up -d
幾秒鐘後,容器就啟動了,可以用 docker-compose ps
確認狀態,並用瀏覽器開啟 http://localhost:5678
。
點擊 + 新增一個 Webhook 節點
在 Webhook 節點中,設定:
POST
/m2a-test
Using 'Respond to Webhook' Node
設定完成後,可點擊左上角的 Back to canvas 或點擊任意灰色處回到畫布。
點擊 Webhook 節點後面的 + 新增下一個 Respond to Webhook 節點,設定:
JSON
{"status":"ok"}
200
設定完成後,可點擊左上角的 Back to canvas 或點擊任意灰色處回到畫布。
在專案的根目錄下建立一個 test_n8n.py
測試程式
import requests
url = "http://localhost:5678/webhook/m2a-test"
data = {"message":"Hello n8n"}
res = requests.post(url, json=data)
print(res.status_code, res.json())
執行後,終端機成功顯示
200 {'status':'ok'}
這表示我的第一支 Webhook 不僅成功部署,而且能正確接收 POST 請求並回傳預期的 JSON 回應!
✅ 完成項目
docker-compose.yml
,成功部署 n8n 容器📝 關鍵發現
docker-compose.yml
,讓環境一致且易於維護,重啟容器不會遺失設定今天最大的收穫是將 Docker 與 n8n 結合,展現出了結合之後強大的威力!
🎯 明天計劃
使用 MCP Agent 的 WhisperService 將文字結果傳給這支 Webhook,實現端到端的「音訊 → 文字 → 工作流觸發」流程驗證。