用 Docker + Ngrok 本地部署 n8n:自動化工具快速上手筆記

什麼是 n8n?為什麼值得一試?

n8n 是一個開源的自動化工具(有點像免費的 Zapier),可以幫你整合各種工具、API、流程,讓你不寫程式也能建立工作流程。

用 Docker 部署 n8n 的原因與優勢解析

想像一下,一個程式就像是一道料理所需的食材,那麼 Docker 就是一個整裝好的便當盒:裡面除了有程式本身(主菜),還包含運行它所需要的系統(白飯)與環境設定(調味料)。

使用 Docker 的最大好處是:你可以把整套程式環境「打包」好,交給別人,他們打開就能馬上使用,不需要再一個個安裝依賴、配置環境。這對於像 n8n 這類需要多個元件運行的工具來說,省時又省心。

安裝 Docker Desktop

  • 前往 Docker 官網
  • 下載 Windows 版本並安裝
  • 安裝時建議勾選「使用 WSL2」
  • 安裝完成後重開機,啟動 Docker Desktop

Docker 啟動錯誤?教你進 BIOS 啟用虛擬化技術(Intel / AMD 都適用)

當你在啟動 Docker Desktop 時,若出現「WSL 錯誤」或相關提示,通常是因為你的電腦尚未啟用 BIOS 中的「虛擬化技術(Virtualization)」功能。

Docker Desktop - Unexpected WSL error

解決方法

步驟 1

  1. 重新開機 → 進入 BIOS(通常是開機時按 DelF2

步驟 2

路徑一(Intel 處理器常見):

  1. 點上方的「進階」頁籤(英文是 Advanced
  2. 找一個選項叫 CPU Configuration
  3. 裡面應該會有一項:
    • Intel Virtualization Technology → 把它改成 Enabled

路徑二(AMD 處理器常見):

  1. 也是點「進階」> Advanced
  2. 進去找 CPU FeaturesSVM Mode
    • SVM Mode → 改成 Enabled
SVM Mode - Enabled

Ngrok 安裝教學:如何註冊帳號與下載工具

  1. 前往 Ngrok 官方網站
  2. 註冊一個免費帳號
  3. 登入後,在你的帳戶 Dashboard 裡找到下載區
  4. 下載對應你系統的 Ngrok 執行檔並安裝
Download Ngrok

如何用 Docker 安裝 n8n 並搭配 Ngrok 配置公開連線(完整圖解教學)

在 Docker 上安裝 n8n 並設定公開連線

1. 搜尋並拉取映像檔

  • 開啟 Docker Desktop,進入 Images
  • 搜尋 n8nio/n8n → 按下 Pull,等待完成後按 Run

2. 設定 Optional Settings

  • Container Name:自訂容器名稱
  • Host Port:可輸入你想要的 Port(如:5678)
  • Volumes:建議掛載到一個本機資料夾(這裡我安裝在:E:\\n8n-local
  • Container path:設為 /home/node/.n8n
延伸閱讀:  Threads 自動化排程發文 n8n 免費模版直上:從 Token 更新到 Notion 整合一次搞定,新手也會用

3. 環境變數設定:

  • N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE = true
  • EDITOR_BASE_URL = 你的 Ngrok 網址,開頭請加上 http://
    ( 這裡我的是 http://leopard-related-bird.ngrok-free.app/ ) ( 下面圖 2 )
  • WEBHOOK_URL = 同上,與 EDITOR_BASE_URL 相同
  • N8N_DEFAULT_BINARY_DATA_MODE = filesystem
  • N8N_RUNNERS_ENABLED = true
Optional Settings ( Ngrok )
圖 1
ngrok link
圖 2

4. 啟動容器

  • 所有設定完成後,點選 Run,n8n 服務就會啟動
Optional Settings ( Ngrok ) - Run

5. 第一次登入 n8n

  • 系統會要求你輸入帳號資訊並提示是否啟用「進階功能」
  • 這些進階功能(如 workflow history、execution search)平常只在雲端付費版才有
  • 只要輸入 Email 就會收到一組 License Key一次啟用,終身使用
功能說明
Workflow history可以回朔你過去 24 小時改過的流程版本
Advanced debugging可以查看流程錯誤當下的狀態,更方便除錯
Execution search查找以前跑過的流程記錄、加標籤整理
Folder 結構可以用資料夾管理 workflow,不再全塞一起

6. 完成安裝

  • 成功註冊後會看到「Start from scratch」按鈕
  • 點選即可開始使用 n8n 編輯流程介面
確認畫面

Ngrok 靜態網域設定教學:讓 n8n 對外公開只要 7 步驟

1. 先下載並開啟 Windows Terminal

2. 輸入以下指令
( 黃色部份需要自行更改為你存放 Ngrok 的資料夾 )
( 這裡我把 Ngrok.exe 放在 E:\automation-tools )

automation-tools

3. 在 Ngrok 你的帳號裡複製這一段 Token 貼到 Windows Terminal
( 在前面加上 ./ )

ngrok token

4. 以我的例子是這樣

Win Ter - ngrok config

5. 成功後會出現一個檔案叫 ngrok.yml

6. 再次回去 Ngrok 網站複製 Static Domain 並輸入在 Window Terminal
( 記得前面加./ )
( 把最後的 80 換成你之前指定的 Port )
( 我這邊的例子為 leopard-related-bird.ngrok-free.app,Port 是 5555 )

7. 成功畫面會顯示 Ngrok 提供的公開網址

windows termianl 完成

進階部署:用 .env + docker-compose.yml 管理 n8n 全套設定

你已經用 Docker Desktop 成功跑起來 n8n,那現在來解鎖進階操作:

把所有設定寫進 .envdocker-compose.yml,好處是:

更新 n8n,超簡單

以前升級要整個重設環境,現在?

只要打開 .yml 檔,把 image: n8nio/n8n:1.89.2 改成新版 → 1.90.0

再跑 docker-compose up -d,就升級好了,設定值通通保留,不用再按一次 UI

一套設定,複製貼上就能部署

你只要複製 .envdocker-compose.yml 到另一台電腦,

就能「召喚」出一模一樣的 n8n 工作環境,

不管你電腦壞掉、換設備、還是想快速複製一套 workflow,通通一指搞定


步驟 1:用記事本建立 .env 檔案

1. 開啟記事本
開始選單搜尋「記事本」或用快捷鍵 Win + R 輸入 notepad

2. 貼上設定內容
( 黃色區域需要你自行填寫 ) :

3. 另存新檔並且放在你想要的位置
檔案名必須為 .env ( 不是 env,是 .env )
記得為 All Files ( 不要存成 txt 檔 )


步驟 2:建立 docker-compose.yml 檔(一鍵部署 n8n)

1. 用記事本貼上這段設定:

2. 另存檔案為 docker-compose.yml
( 必須跟 .env 同一個資料夾 )
( 記得是 All Files )

延伸閱讀:  如何在 n8n 串接 Imgur API:完整教學與 HTTP Request 設定指南

步驟 3:一鍵啟動 n8n

1. 先刪除你之前在 Docker 設定好的 Containers
( 不要怕,之後的動作會自動裝回來 )

2. 開啟 Windows Terminal

3. 切換到你裝 .envdocker-compose.yml 的資料夾
( 黃色部分請自行更改 )

4. 啟動 n8n
( 會自動讀取 .env 設定 )

步驟 4:手動啟動 Ngrok(讓別人也能打開你的 n8n)

只要打這一行
( 黃色部份請自行更改 ):

📌記得你之前在 .env 裡設定的網址也要是一樣的。

小提醒:啟動順序(每天開機用)

每次你重新開機後,如果要讓整個 n8n + Ngrok 恢復運作,建議這樣做
( 黃色部份請自行更改 ):

關閉整個 n8n + Ngrok 系統

如果你要 關閉整個 n8n + ngrok 系統(暫停用、節省資源、重啟電腦前手動收尾),只要這兩步就搞定:

步驟 1:關閉 n8n Container

這會把 container 關掉,但不會刪掉你的 .envdocker-compose.ymlE:\n8n-local 裡的資料。

下次重新 up 就會原封不動回來。

步驟 2:關閉 Ngrok 隧道

如果你是在 Windows Terminal 開的 Ngrok,直接按下鍵盤的:

畫面就會停止,代表隧道已經關閉,外面的人無法再訪問 Ngrok 網址。


小筆記:關機前需要關掉嗎?

  • 建議有空就手動關一下,雖然重開機會自動停掉,但這樣比較乾淨。
  • 除非你有設「開機自啟動」,不然都得自己再跑一次來開機。