【完整教學】n8n 本地用 Docker + Ngrok 一步一步快速部署|新手也能成功上線(含安裝流程)

Author:

想在短時間內把 n8n 可靠地用 ⁤Docker 本地部署起來,並透過 ngrok 立即對外存取?這篇一步步帶你完成安裝流程,讓你從環境設定到首次上線、更新與備份都不踩雷。曾經我以為只要把​ docker 跑起來就會成功,結果卡在金鑰、網域與 .env 參數;直到我用「固定網域 + AUTHTOKEN + 明確的⁤ compose 啟動順序」把流程串起來,上線才真正穩定。接下來你也能照做快速落地。

文章目錄

從安裝 ⁢Docker 與環境準備開始確保本地部署穩定可控

要把 n8n⁢ 本地部署做到「穩定、可控」,第一步就從‌ Docker 安裝與環境檔準備開始。依照操作系統到官方下載並完成安裝後,務必先啟動 Docker;Windows 使用者務必用 系統管理員 身分執行,這能避免後續權限造成服務反覆啟動或容器無法正確掛載。完成後,你會需要在本機建立一個專用資料夾(例如建立 n8n),把 docker-compose.yml 與環境檔放進同一個目錄,才能讓後續的部署指令有一致的執行上下文。

接著準備 ngrok ‍的對外通道與「固定域名/授權」資訊,讓你的 n8n 不會每次都換網址導致回呼(webhook)失效。做法是:先到 ngrok 登入後建立帳號;使用「具有固定 URL 的方案/設定」取得靜態網域,再把網域與授權字串填進你的 .env。依照實作流程,你需要把:

  • AUTHTOKEN(注意變數名稱對應,例如替換 NGROK_AUTHTOKEN)寫入 .env
  • 固定網域⁤ URL(例如替換 NGROK_DOMAIN)寫入 .env

當環境檔準備好,接下來把 n8n 也安裝到同一個資料夾,並用指令啟動服務即可:在 n8n‍ 目錄開啟終端機,執行 docker compose up -d ​用於背景啟動,確認服務確實上線後,你可以先用 localhost:5678 ‍檢查 n8n 是否正常回應。第一次登入時記得完成帳號註冊(填寫信箱以收到啟用金鑰),啟用後再把後續拿到的金鑰貼到 n8n 的 Settings ‍位置,才能把系統從「能開」真正提升到「能穩定運行」。

想維持本地部署的長期可控性,更新與資料備份也要一開始就納入流程:介面左下角如果出現 紅點,代表有新版本,這時請回到 ​n8n 目錄依指示更新(常見順序是 docker compose pulldocker compose downdocker compose up -d),更新完以瀏覽器重新整理確認紅點消失即可。最後,務必把「匯出/再匯入資料」當作重置與復原的保險-例如先在登入後匯出資料、清除再匯入,能在你忘記密碼或需要重置狀態時,保留先前的工作流內容與設定邏輯。

階段 你要做的事 你會得到的控制感
Docker ​啟動 用對權限啟動、確認容器可用 避免服務反覆重啟/掛載失敗
.env 設定 寫入 ⁤ NGROK_AUTHTOKENNGROK_DOMAIN 回呼網址可預期、Webhook 穩定
首次登入 註冊→啟用→在 Settings 貼上金鑰 避免後續卡在授權/功能受限
更新與復原 pull/down/up⁢ 更新;export/restore 備份 版本迭代可控、資料不漂移

若你希望快速把範本落地、並理解「docker-compose 與 ngrok 要如何對接」,可以直接參考使用 Docker Compose ⁣搭配 ngrok ‍的範例做對照:Joffcom/n8n-ngrok:n8n +‌ ngrok ‌的 Docker Compose⁣ 範例

n8n 搭配 Docker Compose 建立專案資料夾並完成關鍵檔案設定建議

建議先在電腦上建立一個乾淨的專案資料夾,專門用來放‍ n8n 的 docker-compose.yml ‍與 .env,未來更新、備份、還原會更直覺。依照我的實作流程,我把檔案全部放進同一個資料夾後,等確認容器起得來,再開始處理 ngrok 的憑證與網域設定,避免後面改檔案改到找不到位置。

  • 建立專案資料夾:例如 n8n(之後所有指令都在這個資料夾執行)
  • 把官方提供的 docker-compose.ymlenv 檔案複製到資料夾中
  • env 重新命名為 .env(Windows/編輯器常見會忘記這一步)

接著打開‌ .env 用文字編輯器處理 ngrok 相關設定。我的做法是使用 ngrok 的 Static Domain 取得固定 URL,然後把兩個關鍵值填進 .env:一個是你在 ngrok 看到的 AUTHTOKEN,另一個是固定網域對應的 NGROK_DOMAIN。重點是:填錯只會讓你外部連線失敗,容器本身卻可能仍正常啟動,所以務必核對。

在 .env 要填什麼 值從哪裡取得 我實作的填法重點
NGROK_AUTHTOKEN ngrok 網頁的 AUTHTOKEN 直接把字串貼上並覆蓋原本值
NGROK_DOMAIN ngrok 的 Static Domain 固定 URL 複製 URL‌ 內容後對應到變數

最後才是啟動服務並驗證環境是否就緒:進入剛建立的⁣ n8n⁣ 專案資料夾,開終端機執行 docker ‌compose up⁣ -d。在我部署成功後,用瀏覽器打 ‍ localhost:5678 就能進入第一次設定流程;首次登入一定要註冊並取得金鑰,接著到左下角的 settings 貼上金鑰完成啟用。等一切正常後,未來要更新介面時,看到左下角紅點就代表有新版本,依我同樣的順序做:先 docker ‍compose ‍pull、再 docker compose down、最後 docker compose up -d,並重新整理確認紅點消失。

  • 第一次進入:localhost:5678,需要註冊帳號並填入金鑰
  • 更新判斷:左下角有紅色更新點=有新版本
  • 更新步驟(重要):pull → down → ⁢up⁣ -d,更新後再刷新頁面確認

Ngrok 導入固定網域與 Authtoken 寫入 .env 讓外網存取更可靠且更易上線

要讓 n8n 外網存取更可靠、也更容易反覆上線:關鍵就在於把 ​Ngrok 改成「固定網域」並將 Authtoken 寫入你的 .env。依照教學流程,你會先打開 n8n 目錄,將原本的 env 檔改名為 .env,再用文字編輯器改內容;接著回到 Ngrok ⁢介面把 Static Domain 的固定 URL 複製起來,並把 AUTHTOKEN ⁤寫入 NGROK_AUTHTOKEN,同時把固定網域寫入 NGROK_DOMAIN。這一步的實作重點是:你不是只能靠臨時隧道連線,而是讓外部入口在部署、重啟、更新時都更穩定、路徑一致。

  • 固定網域(Static‌ Domain):降低「URL 變動」造成的 webhook/設定失效風險
  • Authtoken 寫入 ​.env:讓容器啟動時能正確認證,避免你每次都要手動重新設定
  • 集中管理環境變數:更新或重建容器時,比在 docker-compose 檔內硬編更好維護

另外,務必留意環境變數檔的放置與掛載路徑:把 .env 放在你執行 docker compose up -d ‌ 的 n8n 同層目錄,這樣在啟動時 Docker Compose 才能讀到設定。實務上,若你曾遇過「本機能跑、但外網 webhook 不穩」的狀況,通常不是 n8n 本身,而是入口 URL 或認證資訊沒有被穩定地寫入環境變數;因此你在⁢ .env 裡維持 NGROK_AUTHTOKEN ‍ 與​ NGROK_DOMAIN 的一致性,能直接把排錯成本壓下來。

你要在 .env⁢ 填什麼 從哪裡取得 影響什麼
NGROK_AUTHTOKEN Ngrok(登入後的帳號/儀表板) ngrok ⁢隧道認證是否成功
NGROK_DOMAIN Ngrok(Static Domain ‍固定 URL) 外網入口 ​URL是否穩定一致

寫完後再執行部署:回到 n8n 目錄,用終端機跑 docker compose up -d,此時你應該仍可本機開 localhost:5678 ⁤登入管理;而外網入口則會依你.env 的固定網域提供更穩定的存取。若你後續要做版本更新,教學中也建議先回到同一目錄執行 docker compose pulldocker compose downdocker compose up -d,並刷新確認更新完成–因為固定網域與 Authtoken 已經被寫死在⁢ .env,你重啟/更新時外部連結一致性會更高。進一步參考 ngrok 官方針對 n8n/容器的範例設定說明,可對照你目前的變數命名與部署方式(例如示範中提到用 NGROK_AUTHTOKEN 進行設定)。ngrok 官方 n8n 範例

首次啟動與註冊流程快速完成登入並用 ‌Settings 正確填入授權金鑰

首次啟動的關鍵只有兩步:先完成帳號註冊拿到啟用/授權資訊,再把授權金鑰正確填進介面。你用⁢ Docker 跑起 n8n 後,先打開瀏覽器進到 localhost:5678;這是你第一次進去時,系統會要求建立帳號(通常會用 Email 收到啟用/授權相關的金鑰或啟用資訊)。依照你的實作流程,把你收到的啟用金鑰複製下來,下一步就要在 n8n 左下角進到 Settings,把金鑰貼上完成啟用;貼上後就能立即開始使用,等於把「本地部署」從可啟動狀態切到「可用授權功能」狀態。

在填授權金鑰前,先確認你用的是 n8n 的 Settings 而不是只把金鑰寫在檔案裡:這樣你在操作上的容錯比較高、也比較容易追蹤是否成功。你會遇到的現實情境通常是:第一次註冊後要啟用、升級版需要授權、或因為授權期限導致功能失效。若你把環境變數做得更進階(例如要控制授權重用/自動續約、或在沒有 UI 的環境啟用),n8n 也提供對應的 Licence 環境變數可搭配部署;例如 N8N_LICENSE_AUTO_RENEW_ENABLED 決定授權是否自動續約、以及授權伺服器網址 N8N_LICENSE_SERVER_URL(僅在文件要求時才需要設定)。

  • 註冊/啟用:第一次進 localhost:5678 →⁤ 建立帳號 → 用 Email 收到啟用/授權資訊。
  • 填金鑰:到左下角 Settings → 直接貼上你收到的 key → 儲存完成啟用。
  • 避免踩雷:確認 key 是「你這次啟用所需」而不是舊的或不完整的片段;貼錯通常會讓已授權的功能仍顯示未啟用。
你要做的事 在畫面上/設定位置 完成後的目標
登入並建立帳號 初次進入 localhost:5678 拿到可啟用的授權資訊(依系統寄到 Email
輸入授權金鑰 Settings(左下角) 授權功能啟用並進入正常可用狀態
後續驗證 確認功能是否可正常使用、需要時再更新 確保升級/部署流程不因授權問題中斷

最後提醒:如果你接下來要處理更新(例如介面左下角出現更新紅點),一定要回到你建立 n8n 的那個資料夾執行更新流程,確保授權狀態與服務版本一致;你在影片裡實際做法是先‍ docker compose pull 下載新版本、再重啟服務並刷新頁面,確認紅點消失代表更新成功。授權與版本對齊後,你才會更穩定地完成「首次啟動 → 註冊登入 → Settings 填入金鑰 → 立刻上線可跑工作流」。

License environment variables(n8n 文件:授權啟用/自動續約等環境變數)

更新介面與版本升級流程掌握 docker compose pull down up 的正確順序避免服務中斷

更新 n8n 介面或做版本升級時,最重要的是掌握 docker compose 的正確順序,才能避免服務中斷。當你在介面左下角看到紅點代表有新版本,先點進去讀官方指引,並確認要依照的是你本機建立的 n8n 資料夾(也就是你放 docker-compose.yml.env 的那個資料夾),因為指令必須在正確路徑執行。

  • 從 n8n 資料夾開啟終端機(你先前建立的目錄)
  • 先下新版映像:執行 docker compose pull
  • 停止目前服務:執行 docker ‌compose down
  • 啟動新版容器:執行 docker compose ​up -d
  • 更新後 重新整理瀏覽器,確認左下角紅點消失

我在升級流程中會特別保留這個判斷方式:紅點消失=更新成功。如果你只做 pull 卻不 down/up,或改錯順序,通常不會立刻反映新版本;更糟的情況是容器狀態混在一起,導致你以為已升級、但實際還在跑舊服務。下面是我建議直接照做的對照表:

動作 目的 重點
docker compose ‌pull 下載新版本映像 先更新映像,避免中斷期間才開始拉檔
docker compose down 停用並清理現行服務 確保舊容器不再佔用資源
docker compose up -d 以新映像重啟服務 -d 讓服務在背景跑

最後,升級前務必先做備份再恢復,因為我遇過「更新後環境像是變成全新安裝」的情況:做法是先登入 n8n,匯出(export)資料並選擇下載位置,同時清空或重置測試流程確認能否回復;之後在新版介面進行匯入(import),再嘗試用你原本的帳號登入。若你不小心忘了密碼,也可依官方文件步驟把系統重置回初始狀態後重新註冊,但通常先前匯入過的資料仍會保留(前提是你備份與匯入流程正確)。

資料備份與還原策略確保重置後仍能回復工作流並保護關鍵設定

要確保你即使做了 n8n 重置(reset)也能把工作流與關鍵設定找回來,核心做法就是:在重置前先做「資料匯出備份」,並把它當成可重覆匯入的復原程序。依照我在本地​ Docker + ‍ngrok 部署的流程,先登入‌ n8n 後再進行 Export:選擇下載位置、匯出資料,然後在重置(Reset too initial state)後,立刻用 Import‌ 把剛才備份的內容匯回;這樣你會驗證「重置後變成品牌新環境,但資料仍能回來」。

實務上,這個環節要特別保護兩類內容:工作流本體系統層的關鍵設定/登入狀態。我自己的測試重點是:重置後重新登入原本的帳號,能看到先前的資料成功恢復;同時也針對「忘記密碼」的情境做演練–用站台的重設流程重新回到可用狀態後,再確認之前資料是否仍在(我實際經驗中是仍能保留,代表備份/匯入流程是有效的)。

  • 重置前必做 Export:先登入,再匯出資料到指定下載位置。
  • 重置後必做 Import:先完成 reset 變成新環境,再把備份匯回。
  • 驗證登入一致性:用重置前同一帳號登入,確認工作流與資料已回復。

再把這套策略落到 Docker + ngrok 的「可上線」節奏:你更新版本時雖然會做 docker compose pull → down → up ‍-d,但核心風險仍是「資料是否有被清掉/是否能回復」。因此建議你把備份檔安排成更新前的固定動作,且在 .env 中維持 NGROK_AUTHTOKEN 與靜態網域(Static Domain 對應的 URL)一旦被更新部署就要重新核對,避免你以為回復成功、實際上卻是‍ webhook/外部入口指向變了。若你想進一步參考可搭配 ‌ngrok 的範本組態,可以用這份 Compose ‌設定做對照檢查:Joffcom/n8n-ngrok(Docker Compose + Ngrok‌ 範本)

情境 你該做的事 驗證方式(快速)
重置(Reset to initial state) 重置前 Export、重置後 Import 重登入同帳號→工作流是否在
忘記密碼 照步驟重設帳號,再嘗試登入 舊資料是否仍保留/可見
更新版本 更新前先備份,更新後檢查狀態 紅點消失後→抽查關鍵工作流

結論式執行口訣:把「Export 備份 → ‌Reset → Import‌ 匯回 → 用原帳號登入驗證」變成你的固定 SOP。如此一來,你的本地環境即使被重置,也不會因為「看起來像新裝」而失去先前投入的工作流與設定;同時你也能把更新與上線風險壓到最低。

常見問答

🐳 如何用​ Docker 在本機快速部署 n8n?

用 docker‍ 本地啟動 ‌n8n ‍的關鍵是先準備好 docker-compose.yml.env,再用 ⁤ docker compose up -d 拉起服務。你可以先在電腦上安裝對應作業系統的 Docker;Windows 依經驗務必用「系統管理員身分」執行。接著建立一個專用資料夾(例如建立 n8n),把 docker-compose.yml 與環境檔複製進去並將 env 重新命名為 .env。最後打開終端機切到該資料夾,執行​ docker compose up -d 後,確認服務已啟動,瀏覽器輸入‌ localhost:5678 即可進入 n8n。首次使用時需完成註冊(填入 Email 以取得金鑰),完成後把金鑰貼到系統設定即可開始使用。

🔗 ngrok 的 Static Domain 與 AUTHTOKEN 要怎麼填進 .env?

要讓 n8n 在本機同時具備穩定外網連線,必須用 ngrok 的 ‌Static Domain 固定網址,並把 AUTHTOKEN 與網址寫入 .env。流程上你需要到 ngrok 登入(例子中使用 Google 登入並建立帳號),然後選擇「Static ‌Domain」取得固定 URL。接著取得頁面上的 AUTHTOKEN,回到 .env 將值替換到 ⁢ NGROK_AUTHTOKEN。同時把 Static Domain 產生的固定⁣ URL 貼回‍ .env 裡,替換 NGROK_DOMAIN。完成以上兩個欄位後再啟動⁤ Docker,整套部署才能正確連動,讓外部可持續存取你的本機 n8n。

🔄 如何更新 n8n(含資料備份/還原)確保不丟資料?

更新 n8n 建議先在控制台匯出備份,然後用 Docker 依序「更新映像→重啟服務→驗證版本」,這樣能最大化避免資料遺失。更新前先登入 n8n,進行資料匯出(選擇下載位置並清空全部資料的操作要特別謹慎);匯出完成後再測試還原:後續要把備份匯入回系統,重置後再登入可確認先前資料是否已回復。更新時先進入你建立 n8n 的資料夾,依序執行 docker compose pull 下載最新版本、docker compose down 停止服務、再用 docker compose up -d 重新啟動。更新成功通常可在介面左下角看到紅點消失;你也應重新整理瀏覽器確認更新生效。

摘要

安裝到這裡,你已經把 n8n 建立在本地,並透過 ‌Docker + Ngrok 讓它能可靠地對外存取–從安裝、啟動、更新,到備份還原與密碼重設,整套流程你都能自己掌控。更重要的是:你不必依賴第三方平台的限制,就能打造專屬的自動化工作流環境,隨時驗證、調整、再上線。

如果你想立刻把教學的下一步接起來,建議你現在就回到 n8n 後台完成第一次流程測試:先做一個最簡單的自動化(例如收到表單/Email 就觸發通知),同時把「更新」與「備份還原」的指令留在你的筆記裡–當你之後開始正式跑任務,會省下非常多時間與風險。

👉 也歡迎你把你卡住的地方貼到留言:你使用的是 macOS 還是 Windows?目前停在 Docker/Ngrok/還是 port 連線?我會優先協助你把問題釐清到能成功上線。
同時別忘了把影片提供的檔案下載連結與官方文件收藏起來,下次更新或部署時就能直接照做、快速完成。