n8n 自架與 Cloudflare Tunnel 架設教學
本教學將引導你從 0 開始:安裝 Docker、部署 n8n,並透過 Cloudflare Tunnel 架設 HTTPS 公網連線。
📦 安裝 Docker 與 Docker Compose(以 Ubuntu 為例)
首先你要有一台VPS,在其中執行:
# 更新系統套件
sudo apt update && sudo apt upgrade -y
# 安裝 Docker
sudo apt install docker.io -y
# 啟動 Docker 並設為開機自動啟動
sudo systemctl start docker
sudo systemctl enable docker
# 安裝 Docker Compose
sudo apt install docker-compose -y
# 將當前使用者加入 docker 群組(避免每次都要 sudo)
sudo usermod -aG docker $USER
# 登出再登入一次,讓設定生效
exit
🛠️ 建立 n8n Docker Compose 設定
在主機中建立一個資料夾:
mkdir ~/n8n && cd ~/n8n
建立 docker-compose.yml
檔案:
version: "3"
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Taipei
- N8N_BASE_URL=https://n8n.domain.ai
- WEBHOOK_TUNNEL_URL=https://n8n.domain.ai
volumes:
- ./n8n_data:/home/node/.n8n
volumes:
n8n_data:
啟動 n8n:
docker-compose up -d
🌐 安裝與設定 Cloudflare Tunnel
步驟 1:安裝 cloudflared
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
步驟 2:登入 Cloudflare
cloudflared tunnel login
此指令會跳轉到瀏覽器授權,完成後會在 ~/.cloudflared
建立憑證檔。
步驟 3:建立 Tunnel 並記下 UUID
cloudflared tunnel create n8n-tunnel
步驟 4:建立 config.yml
nano ~/.cloudflared/config.yml
填入以下內容(請根據實際網域與 UUID 修改):
tunnel: <UUID-OF-YOUR-TUNNEL>
credentials-file: /home/YOUR_USER/.cloudflared/<UUID-OF-YOUR-TUNNEL>.json
ingress:
- hostname: n8n.domain.ai
service: http://localhost:5678
- service: http_status:404
步驟 5:將 DNS 指向 tunnel
cloudflared tunnel route dns n8n-tunnel n8n.domain.ai
步驟 6:啟動 tunnel
cloudflared tunnel run n8n-tunnel
(選用)設為 systemd 開機啟動服務:
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
✅ 測試
開啟瀏覽器造訪:
https://n8n.domain.ai
你應該會看到 n8n 的登入頁面。