n8n là công cụ quy trình làm việc kết nối ứng dụng, API và mô hình AI bằng trình chỉnh sửa trực quan. Tự lưu trữ nó nghĩa là quy trình, thông tin xác thực và dữ liệu của bạn nằm trên máy chủ do bạn kiểm soát, và các lần chạy không bị tính phí theo lượt. Hướng dẫn này triển khai n8n bằng Docker Compose, cơ sở dữ liệu Postgres và HTTPS, sẵn sàng chạy AI agent suốt ngày đêm.
Vì sao dùng VPS cho agent?
Agent thường chạy theo lịch hoặc phản ứng với webhook, nên cần một máy chủ luôn bật và truy cập được. VPS cho bạn một địa chỉ cố định cho webhook và đủ RAM để giữ quy trình phản hồi nhanh. Gói 2 vCPU, 4 GB phù hợp với thiết lập nhỏ. Xem hosting AI agent để biết kích thước, và thêm máy chủ GPU nếu bạn muốn dùng mô hình cục bộ.
Trước khi bắt đầu
- Một VPS có Docker. Xem cài đặt Docker.
- Một tên miền trỏ đến máy chủ. Xem bản ghi DNS.
Bước 1: tệp Compose
mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: n8n
volumes:
- db:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
depends_on: [db]
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: db
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.example.com/
N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
GENERIC_TIMEZONE: UTC
ports:
- "127.0.0.1:5678:5678"
volumes:
- n8n:/home/node/.n8n
volumes:
db:
n8n:
YAML
Bước 2: thông tin bí mật
cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env
Hãy sao lưu ENCRYPTION_KEY. Nếu không có nó, n8n không thể giải mã các thông tin xác thực đã lưu.
Bước 3: khởi động n8n
docker compose up -d
docker compose logs -f n8n
Bước 4: HTTPS
n8n.example.com {
reverse_proxy 127.0.0.1:5678
}
Tải lại Caddy, mở trang web và tạo tài khoản chủ sở hữu.
Bước 5: xây dựng quy trình agent
- Thêm trigger Webhook hoặc Schedule.
- Thêm node AI Agent và kết nối một mô hình chat, ví dụ API được lưu trữ, hoặc Ollama trên máy chủ GPU của riêng bạn.
- Cung cấp cho agent các công cụ như yêu cầu HTTP, cơ sở dữ liệu hoặc node nhắn tin.
- Kiểm tra bằng chạy thủ công, sau đó kích hoạt quy trình.
Giữ an toàn
- Gắn n8n vào 127.0.0.1 và chỉ mở proxy HTTPS ra ngoài.
- Bảo vệ webhook bằng header hoặc đường dẫn bí mật khi có thể.
- Sao lưu volume Postgres và volume n8n. Xem sao lưu với restic hoặc borg.
- Cập nhật bằng
docker compose pull && docker compose up -dsau khi đọc ghi chú phát hành.