iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0

昨天我們已經建立了 FastAPI Processing Service。今天要加入整個 AI Automation 系統的另一個核心:Workflow Orchestrator,也就是 n8n
在這個系統裡我使用 Docker 來安裝 n8n,原因是因為使用 Docker 架設 n8n 就不用付費,若是使用官網的雲端版本就會需要付費。但是使用 Docker 版的缺點是要電腦開機並且有在跑 n8n container 才有辦法運作整個自動化系統。若是使用雲端的 n8n 與 FastAPI 就可以達到隨時使用這個系統。n8n 官方目前建議 Docker 作為多數 self-hosting 情境的部署方式之一,因此我選擇使用 Docker。以下是使用 Docker 的示範,也可以直接使用雲端版就不用做這麼多 Docker 設定。

先確認 Docker 是否安裝:
可以使用

docker --version

檢查自己的電腦有沒有安裝,若沒有的話可以搜尋 Docker Destop 安裝。安裝好後就可以開始

1. 建立.env
在自己要實作的專案資料夾下新增一個.env檔,檔案內寫上:

GENERIC_TIMEZONE=Asia/Taipei
TZ=Asia/Taipei
N8N_ENCRYPTION_KEY=請換成自己的隨機字串

隨機字串可以用 python 產生

若是要使用 git ,就要新增一個.gitignore檔在專案資料夾下,.gitignore檔裡面內容加上 .env,養成不要洩漏資訊的習慣

2. 建立 docker-compose.yml
在專案資料夾下建立一個docker-compose.yml檔案,內容寫

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n

    restart: unless-stopped

    ports:
      - "5678:5678"

    environment:
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
      - TZ=${TZ}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true

    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

n8n 官方 Docker 文件目前使用 5678 作為 n8n 的服務 port,並將 /home/node/.n8n 掛載至 persistent storage。
接下來我來解說一下這個YAML檔
services

services:
  n8n:

意思是我們現在要定義一個名為 n8n 的服務。
所以未來很可能會演進成:

services:
  n8n:
    ...

  fastapi:
    ...

所以使用 Compose 對後續架構也比較方便。

image

image: docker.n8n.io/n8nio/n8n

用來指定 n8n Container 要使用哪一個 Image。

ports

ports:
  - "5678:5678"

可以把它理解成:

自己的電腦
localhost:5678 -> Docker Container -> Port 5678

左邊是Host Port,右邊是Container Port
因此之後瀏覽器才能使用http://localhost:5678開啟 n8n。

restart

restart: unless-stopped

用途是當 Container 發生非預期停止或 Docker Engine 重新啟動時,可以依 restart policy 再啟動服務。但這不代表電腦關機時 n8n 還能運作。因為當電腦關機時

Host 關機 -> Docker 停止 -> n8n 停止

Volume

volumes:
  - n8n_data:/home/node/.n8n

Docker Container 本身應該被視為可以刪掉、重新建立的執行環境。但 n8n 裡會有:

  • Workflow
  • Credential
  • Configuration
  • Execution related data

這些不能因為 Container 重建就跟著消失。所以 Docker 官方將 Volume 定義為由 Container Engine 管理的 persistent data store,也建議用它保存容器產生、且需要持續存在的資料。

3. 啟動 n8n
在專案資料夾底下執行以下指令

docker compose up -d

然後查看:

docker compose ps

如果正常,應該會看到 n8n 處於 Running / Up 狀態。
如果有問題的話使用以下指令查看log:

docker compose logs -f n8n

4. 打開 n8n
瀏覽器輸入http://localhost:5678完成第一次 account setup 後,就會進到 n8n 的 Workflow Editor。
https://ithelp.ithome.com.tw/upload/images/20260914/20183341qDqrRGM4xk.png

5. 建立第一條 workflow
接下來可以自己試試看建立 workflow,熟悉 n8n。
https://ithelp.ithome.com.tw/upload/images/20260914/20183341Israa5xVnC.png
可以像這樣新增節點

6. 確認 Workflow 有被儲存
先使用以下指令關閉 Container

docker compose down

再用以下指令重新 run Container

docker compose up -d

再回到http://localhost:5678確認 workflow 還存在,就代表成功了。

明天會讓 n8n 跟我們的 FastAPI 接起來


上一篇
Day 06|FastAPI:替 AI Automation 建立 Processing Service
下一篇
Day 08 | 讓 n8n 第一次呼叫 Python API
系列文
30 天 AI 自動化實戰:用 n8n、FastAPI 與 Gemini 打造 AI 知識管家16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言