iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
DevOps

一個n8n免費仔的踩雷告白系列 第 5

鐵人賽 day5 - 架設 n8n 的好朋友 ngrok

  • 分享至 

  • xImage
  •  

Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。

在 [[鐵人賽 day4 - 在本機裝 n8n 官網沒說清楚的事#^4a414f]] 有提到如果想要使用 webhook,就要有對外固定 IP。但沒有的話,可以透過 ngrok 來解決這個問題。

那什麼是 ngrok 呢?

ngrok 能將你本機的服務跟 port 如 localhost:8080 掛上一個 domain,讓第三方的服務能夠呼叫,而不必透露你的真實 IP。其原理是啟動 ngrok 之後,會連接到他們的雲端伺服器,並產生一個公開的 domain。當外部請求透過這個 domain 連接時,就會再轉傳到你的主機裡。

好處

  • 快速,不用去處理 domain 相關問題,如註冊、費用等等
  • 直接帶 https,提高安全性
  • 可以有一組固定的靜態 domain[^1]

壞處

  • 免費版的固定 domain name 是無法自定的,必須要付費才有[^2]
  • 除了要啟動 n8n 外,還要另外手動啟動 ngrok 服務,特別是每次重開機後都得重覆這個步驟。當然你可以透過自動排程來解決,但這又增加了維護的複雜度。

安裝 ngrok

安裝 ngrok 非常的簡單,只要到官網下載對應 OS 的版本,並依指示一步一步來即可。我就不再次重覆,可以參考 使用 ngrok 服務 - Python 教學 | STEAM 教育學習網,裡面有完整的圖文安裝說明。

無法解決的問題

透過 docker hub + ngrok,就可以在自己電腦架設 n8n,並能提供外部服務來呼叫,這樣大部份的需求都能完成了。

但是為什麼我還要尋找雲端免費服務呢?

首先,如果你不是一個重度的電腦使用者,你電腦應該會關機或是進入休眠。但往往我們會有一些固定時間 trigger 的需求。舉例來說,你可能會希望 n8n 能每天早上 9 點時,自動打開公司的打卡頁面替你打卡。又或是每個月底,去對統一發票後,通知是否中獎。為了做到這些事,你的電腦就不得不一直掛著所有的服務,可能只為了幾分鐘的執行工作。
當然你也可以自己手動 trigger n8n 執行這些 workflow,但工程師就是想自動化,手動 trigger 還要保證自己有想起這件事。

因此我開始尋找能架設 n8n 的雲端平台,第一個就是 [[鐵人賽 day6 - 總是看著你笑到直發寒的 HuggingFace Space]]。
不過我必須說本機 n8n 還是有許多雲端做不到的好處,像是操作本機檔案、或是自由加裝 MCP node 等等。如果本機的 n8n 就能解決你的痛點,而且你又不在意手動 trigger 或是長時間開機的話,也是能考慮的。

[^1]: 所有 ngrok 使用者的靜態網域 - ngrok

[^2]: ngrok pricing | Flexible plans for production and development


上一篇
鐵人賽 day4 - 在本機裝 n8n 官網沒說清楚的事
系列文
一個n8n免費仔的踩雷告白5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言