嘿各位,我一直遇到一些挑戰,我想要建立一個 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 免費方案上,每次重新啟動時子網域都會改變,所以除非您使用靜態網域,否則每次都必須更新該值。