n8n 工作流程自動化平台

使用 n8n 建構自動化工作流程,整合 400+ 服務,支援 AI Agent 和自訂程式碼

專案簡介

n8n 是一個開源的工作流程自動化平台,提供視覺化介面建構自動化流程。支援 400+ 整合,可自架保護資料隱私,並內建 AI 功能。

GitHub Stars: 173K+

主要功能

  • 視覺化編輯 - 拖拉式建構工作流程
  • 400+ 整合 - Slack、GitHub、AWS、Google 等
  • AI 原生 - 內建 LangChain、向量資料庫
  • 自訂程式碼 - JavaScript、Python 節點
  • 自架部署 - 完全控制資料

快速部署

Docker

1
2
3
4
5
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

Docker Compose(生產環境)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
version: '3.8'
services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=your-password
      - N8N_HOST=n8n.example.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.example.com/
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=your-db-password
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=your-db-password
      - POSTGRES_DB=n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  postgres_data:

訪問 http://localhost:5678

建立工作流程

基本概念

  • Trigger - 啟動工作流程(Webhook、排程、事件)
  • Node - 執行動作(API 呼叫、資料處理)
  • Connection - 連接節點,傳遞資料

範例:GitHub Issue 通知

1
Webhook Trigger → GitHub (Get Issue) → IF (severity=high) → Slack (Send Message)
  1. 新增 Webhook 節點作為觸發器
  2. 連接 GitHub 節點取得 Issue 詳情
  3. 使用 IF 節點過濾高嚴重度
  4. 發送到 Slack 頻道

AI 工作流程

LangChain 整合

1
Manual Trigger → Chat Model → Output

設定 Chat Model 節點:

  • Model: gpt-4oollama/llama3.3
  • System Message: 自訂角色設定

RAG 問答系統

1
Webhook → Vector Store (Query) → Chat Model → Respond to Webhook
  1. 接收使用者問題
  2. 從向量資料庫檢索相關文件
  3. 將結果送入 LLM 生成回答
  4. 回傳結果

AI Agent

1
Manual Trigger → AI Agent → Output

AI Agent 可以:

  • 自動選擇工具
  • 執行多步驟任務
  • 使用記憶功能

常用節點

資料處理

1
2
3
4
5
6
7
8
// Code 節點 - JavaScript
const items = $input.all();
return items.map(item => ({
  json: {
    processed: item.json.data.toUpperCase(),
    timestamp: new Date().toISOString()
  }
}));

HTTP 請求

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "method": "POST",
  "url": "https://api.example.com/scan",
  "headers": {
    "Authorization": "Bearer {{ $credentials.apiKey }}"
  },
  "body": {
    "target": "{{ $json.url }}"
  }
}

條件判斷

1
2
3
4
IF: {{ $json.severity }} equals "critical"
    → Alert Team
ELSE
    → Log to Database

安全相關工作流程

漏洞掃描自動化

1
2
3
4
5
Schedule Trigger (Daily)
    → HTTP Request (Nuclei API)
    → IF (New Vulnerabilities)
    → Slack Alert
    → Create Jira Ticket

憑證過期監控

1
2
3
4
5
Schedule Trigger (Weekly)
    → Code (Check SSL Expiry)
    → IF (Expiring Soon)
    → Email Notification
    → Create Renewal Task

威脅情報收集

1
2
3
4
RSS Feed Trigger
    → AI Agent (Summarize)
    → Notion (Save to Database)
    → Slack (Daily Digest)

生產環境設定

環境變數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 加密
N8N_ENCRYPTION_KEY=your-encryption-key

# 執行模式
EXECUTIONS_MODE=queue
QUEUE_BULL_REDIS_HOST=redis

# 日誌
N8N_LOG_LEVEL=info
N8N_LOG_OUTPUT=console,file

# 限制
N8N_PAYLOAD_SIZE_MAX=16
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168

Worker 模式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 主服務
n8n-main:
  command: n8n start
  environment:
    - EXECUTIONS_MODE=queue

# Worker
n8n-worker:
  command: n8n worker
  environment:
    - EXECUTIONS_MODE=queue

相關連結

延伸閱讀

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy