首先要做的事是建立一個別人獲取的到的網址

n8n會需要別人來獲取你的系統資訊,一個可對外的網址就很重要,不然別人根本看不進來,怎麼跟你交換資訊?

如果你是用 cloudflare,先到cloudflare DNS設定你的網域 用A把 n8n對應到你的container的ip,如此透過n8n.你的IP,就可以找到你的系統了。然後就是要創建nginx

創建NGINX

  1. 進入VM,輸入sudo nano /etc/nginx/sites-available/n8n.conf
  2. 輸入轉發指令,這裡server_name auto.moirai-ai.com;請改成你的這裡server_name auto.moirai-ai.com;請改成你的這裡server_name auto.moirai-ai.com;請改成你的
server {
    listen 80;
    # 如果你的伺服器支援 IPv6 且 Cloudflare 也啟用了 IPv6
    listen [::]:80;
    server_name auto.moirai-ai.com;

    # Optional: 設定 log 檔案路徑
    access_log /var/log/nginx/auto.moirai-ai.com.access.log;
    error_log /var/log/nginx/auto.moirai-ai.com.error.log;

    # 加大請求體大小限制 (n8n 可能需要處理大檔案)
    client_max_body_size 100M; # 根據需要調整

    location / {
        proxy_pass http://localhost:5678; # 將請求轉發給本地的 n8n 容器

        # --- 非常重要的 Header 設定 ---
        # 將原始請求的 Host 傳遞給後端
        proxy_set_header Host $host;

        # Cloudflare 會將真實的訪客 IP 放在 CF-Connecting-IP 或 X-Forwarded-For
        # 優先使用 Cloudflare 提供的 Header (如果有的話)
        proxy_set_header X-Real-IP $http_cf_connecting_ip;

        # 將代理鏈中的 IP 列表傳遞下去 (Nginx 會附加 Cloudflare 的 IP)
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # ***關鍵***: 告訴後端 (n8n) 原始請求是 HTTPS,即使 Nginx <-> Cloudflare 是 HTTP
        # 因為 Flexible SSL 模式下,Nginx 收到的請求 $scheme 是 http,但原始是 https
        proxy_set_header X-Forwarded-Proto https;

        # --- WebSocket 支援 ---
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Optional: 調整超時時間
        # proxy_connect_timeout       600;
        # proxy_send_timeout          600;
        # proxy_read_timeout          600;
        # send_timeout                600;
    }
}
  1. 啟用配置
# 如果之前創建了符號鏈接,先確保它是最新的
# 如果沒有創建過,執行:
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
# 如果有名為 'default' 的衝突配置,可能需要移除它
# sudo rm /etc/nginx/sites-enabled/default
  1. 測試sudo nginx -t
  2. 重新加載sudo systemctl reload nginx

上面設定成功後後面步驟就非常簡單了

  1. 首先先創建容器 docker volume create n8n_data
  2. 執行docker run,-e WEBHOOK_URL="https://auto.moirai-ai.com/" 請替換為你的網址!!!!!!!!!!!!!!!!
sudo docker run -d \
  --restart always \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e WEBHOOK_URL="https://auto.moirai-ai.com/" \
  docker.n8n.io/n8nio/n8n

之後打開 https://auto.moirai-ai.com/,就能看到N8N的介面了,第一次會叫你創建管理員帳號,也建議開啟2FA(二階段驗證)。

沒成功的歡迎下方留言,我教你教到會!