不用付 Zapier 月費,在自己的 NAS 上跑自動化工作流。

n8n 是功能強大的開源自動化工作流工具,可以串接 200+ 服務,替代 Zapier 和 Make。這篇帶你用 Docker Compose 在 Synology NAS 上安裝 n8n,完成 HTTPS 設定,並示範幾個實用的自動化範例。

在 Synology NAS 上架設 n8n:自動化工作流的開源解法

如果你有在用 Zapier 或 Make(前身 Integromat),你知道這類工具的價值:把不同服務串在一起,讓它們自動交換資料、觸發動作。但 Zapier 的免費方案限制嚴,付費方案動輒每月 NT$600 起跳;Make 稍便宜,但一樣有操作次數限制。

n8n 是這個領域的開源替代方案。它的核心功能和 Zapier / Make 相同,但你可以自架在自己的伺服器上,不受操作次數限制,資料不經過第三方,而且完全免費。

這篇帶你把 n8n 裝在 Synology NAS 的 Docker 裡,設定好 HTTPS 對外存取,然後示範幾個實用的自動化場景。

n8n 自動化工作流架構:NAS 上的 n8n 串接外部服務

n8n 是什麼

n8n(唸做 "n-eight-n")是一個基於節點(Node)的視覺化工作流自動化工具。你用拖拉的方式連接不同的「節點」,每個節點代表一個服務或操作(收 Gmail、呼叫 API、寫入試算表、發 Telegram 訊息),節點之間傳遞資料,形成自動化工作流。

n8n 的特點:

  • 支援 200+ 服務整合(Google Workspace、GitHub、Slack、Discord、Notion、LINE、Telegram 等)
  • HTTP Request 節點:可以呼叫任何 REST API,無官方整合也能用
  • Webhook 節點:當外部服務觸發時執行工作流
  • 排程執行:定時跑任務
  • 條件分支、迴圈:支援複雜邏輯
  • 本機 AI 節點:可串接 OpenAI、Ollama 做 AI 處理

自架版本(n8n Community)功能完整,沒有操作次數限制。雲端付費版(n8n Cloud)多了一些進階功能,但一般用途自架版已經夠用。


前置需求

  • Synology NAS 已安裝 Container Manager(DSM 7.2+)
  • 已設定好對外域名(DDNS 或自訂域名)
  • 已安裝 Nginx Proxy Manager 或其他反向代理(用於 HTTPS)

還沒設定反向代理?可以先看 Synology Nginx Proxy Manager 完整教學


Docker Compose 設定

建立資料夾

在 NAS 的 File Station 建立以下目錄結構:

/docker/n8n/

docker-compose.yml

透過 Container Manager → 專案 → 新增,貼入以下 Compose:

version: "3.8"

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Asia/Taipei
      - TZ=Asia/Taipei
    volumes:
      - /docker/n8n:/home/node/.n8n

n8n.yourdomain.com 換成你實際的域名。

環境變數說明:

變數 說明
N8N_HOST n8n 對外的域名
N8N_PROTOCOL 設為 https(透過反向代理)
WEBHOOK_URL Webhook 的完整 URL 前綴,需和對外域名一致
GENERIC_TIMEZONE 工作流排程的時區

設定 Nginx Proxy Manager

n8n 預設跑在 Port 5678,用 HTTP。透過 Nginx Proxy Manager 加上 HTTPS:

  1. 進入 NPM → Proxy Hosts → Add Proxy Host
  2. Domain Names:填入 n8n.yourdomain.com
  3. Forward Hostname:NAS 的 IP(例如 192.168.1.100
  4. Forward Port5678
  5. SSL 頁籤:選擇 Let's Encrypt 憑證,勾選 Force SSL

設定完成後,透過 https://n8n.yourdomain.com 就能存取 n8n。


初次設定

  1. 開啟 https://n8n.yourdomain.com
  2. 建立管理員帳號(Email + 密碼)
  3. 進入主介面,看到 Workflows 頁面就完成了

建立第一個工作流

範例 1:每天早上發 Telegram 天氣報告

這個工作流每天早上 8 點,呼叫天氣 API,把今日天氣發到你的 Telegram。

節點:

  1. Schedule Trigger:設定 Cron 0 8 * * *(每天 08:00)
  2. HTTP Request:呼叫 Open-Meteo API(免費,不需 API Key) - URL:https://api.open-meteo.com/v1/forecast?latitude=25.04&longitude=121.51&current_weather=true
  3. Telegram:傳送訊息到你的 Telegram Bot

Telegram 節點設定: - 先在 Telegram 找 @BotFather 建立 Bot,拿到 Token - 在 n8n 建立 Telegram Credential(貼上 Token) - Chat ID 可以透過 @userinfobot 取得

範例 2:GitHub 有新 Issue 時通知 Discord

節點:

  1. Webhook:建立一個 Webhook URL
  2. 在 GitHub Repository → Settings → Webhooks,把 URL 貼進去,選 Issues 事件
  3. Discord:傳送格式化訊息到指定頻道

這樣每次有人開新 Issue,Discord 就會即時收到通知。

範例 3:每週自動整理 Gmail 標籤

節點:

  1. Schedule Trigger:每週一 09:00
  2. Gmail:搜尋 7 天前的郵件(older_than:7d label:inbox
  3. Gmail:加上 Archived 標籤並移出收件匣

設定 Gmail OAuth2 Credential 後,n8n 可以完整操作你的 Gmail。


進階設定

外部資料庫(PostgreSQL)

預設 n8n 用 SQLite 儲存工作流和執行記錄。如果工作流很多、執行頻繁,建議改用 PostgreSQL:

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Asia/Taipei
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=yourpassword
    volumes:
      - /docker/n8n:/home/node/.n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:15-alpine
    container_name: n8n-postgres
    restart: unless-stopped
    environment:
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=yourpassword
    volumes:
      - /docker/n8n-db:/var/lib/postgresql/data

備份

n8n 的工作流設定都在 /home/node/.n8n(對應 NAS 上的 /docker/n8n)。記得把這個目錄加入 Hyper Backup 的備份範圍。


常見問題

Q:n8n 的 Webhook 在內網能用嗎? 可以,內網服務可以直接呼叫內網 IP + Port(http://192.168.1.100:5678/webhook/xxx)。如果需要外部服務觸發(例如 GitHub),就需要對外的 HTTPS 域名。

Q:n8n 更新怎麼做?

docker pull n8nio/n8n:latest
docker-compose down && docker-compose up -d

或在 Container Manager 的專案裡「停止 → 拉取最新映像 → 啟動」。

Q:工作流執行紀錄保留多久? 預設保留所有執行記錄(SQLite 可能變很大)。可以在 n8n 設定 → Executions → 設定自動刪除天數(建議 30 天)。

Q:免費版有限制嗎? 社群版(自架)沒有操作次數限制,工作流數量也沒有限制。限制在於:沒有 n8n Cloud 的 SSO 登入、進階版本控制等企業功能,但一般個人和小團隊用完全夠。


小結

n8n 在 NAS 上跑起來之後,你就有了一個 24 小時在線的自動化引擎,可以替你做各種重複性任務:整理郵件、監控服務、串接 API、發通知、定時備份通知……

和 Zapier/Make 相比,n8n 的上手門檻稍高(需要懂一點 JSON 和 API),但一旦熟悉之後,它的彈性遠超過 SaaS 工具,而且完全不受操作次數限制。

如果你的 NAS 上已經在跑其他 Docker 服務,加一個 n8n 把它們串起來,整體能發揮的效益會大很多。


🔗 延伸閱讀

這篇有幫助嗎? 不用付 Zapier 月費,在自己的 NAS 上跑自動化工作流。