iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
AI 自動化

30 天 AI 自動化實戰:用 n8n、FastAPI 與 Gemini 打造 AI 知識管家系列 第 29 篇

Day 29|讓手機真的可以用:Tunnel 與 End-to-End Test

  • 分享至 

  • xImage
  •  

經過昨天的 Docker Compose 封裝,我們的系統已經具備了上線的基礎。但在目前的狀態下,如果你拿起手機,在 Telegram 裡傳送一個網址給你的 Bot,系統是不會有反應的。

因為我們的 n8n 和 FastAPI 都運行在電腦的「內部網路」中,而 Telegram 的伺服器位於雲端,它無法直接穿透你家的路由器把 Webhook 請求送進來。為了解決這個問題,並確保連線的安全性與穩定性,我們將引入企業級的解決方案:Cloudflare Tunnel。

建立企業級外部通道:Cloudflare Tunnel
與 ngrok 每次重啟就會換網址不同,Cloudflare Tunnel 可以綁定您自己的專屬網域(例如 n8n.yourdomain.com),並且完全免費、提供 SSL 憑證,還能隱藏您伺服器的真實 IP。

(前提:您需要有一個託管在 Cloudflare 的專屬網域)

Step 1:取得 Tunnel Token

  • 登入 Cloudflare Zero Trust 控制台
  • 左側導覽列選擇 Networks ➔ Tunnels,點擊 Create a tunnel。
  • 選擇 Cloudflared 類型,為您的 Tunnel 命名。
  • 在安裝環境選擇 Docker,您會看到一串帶有 --token 的指令。請複製那串超長的 Token 字串備用。

Step 2:將 Tunnel 加入 Docker Compose
這就是 Docker 架構最迷人的地方!我們不需要在電腦上手動安裝軟體,只要在昨天的 docker-compose.yml 裡面多加一個服務即可:

請打開 docker-compose.yml,在 services 區塊中加入 cloudflared:

version: '3.8'

services:
  # ... (原本的 fastapi 區塊) ...
  # ... (原本的 n8n 區塊) ...

  # 新增 Cloudflare Tunnel 服務
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: ai_tunnel
    restart: always
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=這裡貼上您剛剛複製的_TOKEN
    depends_on:
      - n8n

存檔後,在終端機執行 docker compose up -d,Tunnel 就會在背景啟動並連上 Cloudflare!

Step 3:設定 Public Hostname

  • 回到 Cloudflare Zero Trust 網頁,點擊 Next 進入路由設定:
  • Subdomain: 填入喜歡的名稱
  • Domain: 選擇你的網域(這個步驟要有自己的網域才能夠做,會需要付費,沒有的話就只能用 ngrok 或是只能在本地,無法有公開網址)
  • Service Type: 選擇 HTTP
  • URL: 填入 n8n:5678(關鍵:因為 cloudflared 容器與 n8n 容器在同一個 Docker 網路內,所以它可以直接用容器名稱 n8n 來互相溝通,完全不用理會本機 IP)

設定完成後,您的 n8n 正式擁有了一個安全的公開網址

Webhook 正式上線

既然我們有了正式網址,就不需要再每次手動點擊畫布上的按鈕了。

  1. 更新 Webhook 網址:請回到 Telegram 或是您的 Webhook 節點,如果是自行綁定的 API,請將接收網址更新為你自己的網址

  2. 開啟 Active 開關:在 n8n 畫布的右上角,將 workflow publish。這代表 n8n 已經從「測試模式」切換到「正式上線模式」。現在,它會 24 小時在背景待命,你完全不用打開 n8n 網頁,它也能自動接收手機傳來的訊息。

當你在手機上貼上一個網址並按下傳送,資料將會經歷以下這段完美的接力賽:
https://ithelp.ithome.com.tw/upload/images/20261006/20183341kJSiRHblT0.png
沒有任何人工介入,完全自動化。


上一篇
Day 28|Docker Compose:讓整套 AI Automation 可以被重現
下一篇
Day 30|經過 30 天,我終於知道 AI Automation 是什麼了
系列文
30 天 AI 自動化實戰:用 n8n、FastAPI 與 Gemini 打造 AI 知識管家 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言