WhatsApp Trigger 無法運作,因為我在本機使用 Docker 運行 n8n

嘿各位,我一直遇到一些挑戰,我想要建立一個 WhatsApp AI 助手,並在我的本機電腦上用 Docker 執行 n8n。問題是即使在 Portainer 中將 ENV 設定為 ngrok 網址後,測試網址和生產網址仍然顯示 localhost。

描述問題/錯誤/問題

錯誤訊息是什麼(如有的話)?

請分享您的工作流

(選取畫布上的節點並使用鍵盤快速鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流。)

分享最後一個節點傳回的輸出

關於您的 n8n 設定的資訊

  • n8n 版本:2.28.2
  • 資料庫(預設值:SQLite):docker
  • n8n EXECUTIONS_PROCESS 設定(預設值:own, main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式):docker
  • 作業系統:Windows

@Stoneage

你有將 webhook_url 設定到你的 ngrok 子網域嗎?

@Stoneage 歡迎!
URL 保留在 localhost 是因為變數實際上從未到達容器。Portainer 的堆棧「環境變數」面板只在撰寫檔案內執行 ${VAR} 替換,不會將任何東西注入到容器中,所以服務本身必須聲明它:

services:
  n8n:
    environment:
      - WEBHOOK_URL=https://your-subdomain.ngrok-free.app/
      - N8N_PROXY_HOPS=1

重新部署堆棧以便重新建立容器,單純重新啟動會保留舊的環境變數。然後確認它已正確設置:

docker exec <your-n8n-container> printenv WEBHOOK_URL

重新打開工作流程,測試和生產 URL 將帶有 ngrok 主機名稱。在 ngrok 免費方案上,每次重新啟動時子網域都會改變,所以除非您使用靜態網域,否則每次都必須更新該值。