本篇文章更新時間:2025/10/13
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
簡單筆記我這邊快速建立一個 VPS 主機到把 n8n 服務架設起來的處理流程方法。
以 Ubuntu 24.04 Server 作業系統為例
主要分成下面步驟:
- 初始化主機
- 安裝 Nginx
- 處理 SSL 憑證
- 安裝 Docker 服務
- 啟動 n8n 服務
- 安裝 n8n 社群節點服務
初始化主機
設定時區、設定 Hostname、設定慣用編輯器、建立新使用者、調整遠端連線方式..等後。
更新主機套件:
apt update && apt upgrade -y && apt remove -y && apt autoremove -y && apt clean -y && apt autoclean -y && apt update && apt install screen htop -y && reboot
套用防火牆的規則:
#!/bin/bash
iptables -F
iptables -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
只允許基本服務的 Port 對外開放,其他都預設鎖起來。
安裝 Nginx
這邊不打算直接用 Docker 跑 Nginx 服務也是考量日後主機使用的彈性與整合其他服務等。
sudo apt install nginx -y
對版本與模組沒要求的話,走內建套件管理方式安裝即可。
對 n8n 服務來說,處理好憑證與 vhost 後,在 server
區塊的設定只有下面這段:
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
}
處理 SSL 憑證
沒意外都是使用 Let's Encrypt 服務,我現在都慣用 [SSL] 一次弄懂 Let’s Encrypt 以及建議使用的工具 – DNSroboCert 這篇筆記的管理方式。
從 DNS 交握的方式取得憑證掛上 Nginx 很方便。
安裝 Docker 容器服務
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
完成後建立一個內網環境: docker network create internal-net
日後有服務可以跑在這容器區網內相連
啟動 n8n 服務
拉取最新的 Image 版本
docker pull docker.n8n.io/n8nio/n8n
建立容器資料存放空間: docker volume create n8n_data
建立容器服務
docker run -d --restart unless-stopped \
--name n8n \
-p 5678:5678 \
--network bridge \
-e GENERIC_TIMEZONE="Asia/Taipei" \
-e TZ="Asia/Taipei" \
-e N8N_SECURE_COOKIE=false \
-e N8N_HOST="n8n.mxp.tw" \
-e N8N_RUNNERS_ENABLED=true \
-e N8N_EXPRESS_TRUST_PROXY=true \
-e N8N_PROXY_HOPS=1 \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e WEBHOOK_URL="https://n8n.mxp.tw" \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
讓容器連上區網: docker network connect internal-net n8n
安裝 n8n 社群節點服務
這邊以 n8n-nodes-browserless 這個爬蟲工具為例。 n8n 設定中安裝社群節點不難,這串關鍵字帶入就好。但是還需要搭配主機上的爬蟲服務運作來處理。
拉取最新的 Image 資料:
docker pull ghcr.io/browserless/chromium
在區網內啟動服務
docker run -d --name browserless \
--network internal-net \
-e "CONCURRENT=10000" \
-e "TOKEN=6R0W53R131229" \
--restart unless-stopped \
ghcr.io/browserless/chromium
剩下就是看文件怎麼串上!
這邊一個踩雷點就是,社群節點裡提供的串接版本是對應 Browserless 的 Cloud 版,自己架設定版本要確定存取的 API 路徑有沒有正確。
後記
基本上這些都可以包裝成一個 Shell 來執行,後續更新只需要跑一次重新抓取 Image 的流程來重開就好。