Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。
在 [[鐵人賽 day4 - 在本機裝 n8n 官網沒說清楚的事#^4a414f]] 有提到如果想要使用 webhook,就要有對外固定 IP。但沒有的話,可以透過 ngrok 來解決這個問題。
ngrok
能將你本機的服務跟 port 如 localhost:8080 掛上一個 domain,讓第三方的服務能夠呼叫,而不必透露你的真實 IP。其原理是啟動 ngrok 之後,會連接到他們的雲端伺服器,並產生一個公開的 domain。當外部請求透過這個 domain 連接時,就會再轉傳到你的主機裡。
安裝 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