TL;DR: Cài n8n có 2 cách chính - Docker (dễ, ổn định, khuyên dùng cho production) và npm/npx (cần biết Node.js, linh hoạt hơn cho development). Version hiện tại: Stable 2.6.3, Beta 2.7.0.
Thiết lập trận pháp - Khai mở n8n Server
Chào mừng các đạo hữu đã quay trở lại. Sau khi đã hiểu n8n “hữu dụng” như thế nào ở bài trước, hôm nay chúng ta sẽ bắt tay vào việc xây dựng trận pháp (cài đặt server) để bắt đầu tu luyện.
Lưu ý: Self-hosting cần kiến thức kỹ thuật về servers, security.
Đạo Tràng Chọn Vị: Các Phương Thức Triển Khai
Tùy vào căn cơ (kỹ năng) và nhu cầu của mỗi người, ta có thể chọn một trong các pháp môn cài đặt sau:
1. Docker - Pháp Đài Vững Chãi (Khuyên Dùng)
Đây là pháp môn chính tông, được đa số cao thủ sử dụng. Docker đóng gói n8n vào container riêng biệt, cô lập với hệ thống, dễ backup và dễ update. Quan trọng nhất - phù hợp cho production (môi trường thật).
Yêu cầu:
Cài đặt Docker trước:
- Docker Desktop - Mac, Windows, Linux
- Docker Engine - Linux server
Version khuyên dùng: Stable 2.6.3 (production), Beta 2.7.0 (testing)
Cách triển khai cơ bản:
Sử dụng câu thần chú sau để triệu hồi n8n (nhớ thay <YOUR_TIMEZONE> bằng timezone của bạn, ví dụ: Asia/Ho_Chi_Minh):
# Tạo volume để lưu datadocker volume create n8n_data
# Chạy n8ndocker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \ -e TZ="<YOUR_TIMEZONE>" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8nGiải thích các tham số:
-p 5678:5678: Mở port 5678-e GENERIC_TIMEZONE: Timezone cho schedule nodes-e TZ: Timezone cho system-e N8N_RUNNERS_ENABLED=true: Bật Task Runners (recommended)-v n8n_data:/home/node/.n8n: Lưu data persistent
Nếu muốn dùng PostgreSQL thay vì SQLite mặc định:
docker volume create n8n_data
docker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \ -e TZ="<YOUR_TIMEZONE>" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -e DB_TYPE=postgresdb \ -e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \ -e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \ -e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \ -e DB_POSTGRESDB_USER=<POSTGRES_USER> \ -e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \ -e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8nLưu ý: Ngay cả khi dùng PostgreSQL, vẫn mount volume .n8n vì nó chứa encryption keys, instance logs và source control assets.
Để n8n chạy nền (không bị tắt khi đóng terminal):
docker volume create n8n_data
docker run -d --restart unless-stopped \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Ho_Chi_Minh" \ -e TZ="Asia/Ho_Chi_Minh" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8nVới --restart unless-stopped, container sẽ tự động khởi động lại khi server reboot.
Sau khi chạy lệnh, hãy mở trình duyệt và truy cập vào địa chỉ: http://localhost:5678.
Cập nhật n8n Docker:
# Pull phiên bản mới nhấtdocker pull docker.n8n.io/n8nio/n8n
# Hoặc pull phiên bản cụ thểdocker pull docker.n8n.io/n8nio/n8n:2.6.3
# Stop container hiện tạidocker stop n8n
# Remove container cũdocker rm n8n
# Start lại với image mớidocker run -d --restart unless-stopped \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Ho_Chi_Minh" \ -e TZ="Asia/Ho_Chi_Minh" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n2. npm/npx - Cài Trực Tiếp Qua Node.js
Cách này cài n8n như một package Node.js global. Linh hoạt cho development nhưng phức tạp hơn cho production.
Yêu cầu:
- Node.js: Version
20.19đến24.x
Thử nghiệm nhanh với npx:
Không cần cài đặt, chỉ cần chạy:
npx n8nLệnh này sẽ tải và chạy n8n ngay lập tức. Truy cập http://localhost:5678 để sử dụng.
Cài đặt global với npm:
# Cài đặt n8n globalnpm install n8n -g
# Khởi động n8nn8n startHoặc cài đặt version cụ thể:
# Cài version 2.6.3npm install -g n8n@2.6.3
# Cài version betanpm install -g n8n@nextCập nhật n8n npm:
# Update lên phiên bản stable mới nhấtnpm update -g n8n
# Hoặc cài next versionnpm install -g n8n@nextRevert version (nếu update lỗi):
Nếu update lên version mới bị lỗi, bạn có thể quay lại version cũ:
# Cài lại version cũnpm install -g n8n@<version-cũ>
# Nếu có database migration, revert lạin8n db:revert3. n8n với Tunnel (Chỉ Development)
Cảnh báo: Chỉ dùng cho local development và testing. KHÔNG dùng cho production!
Để webhooks từ services bên ngoài gọi được vào n8n local:
# Docker với tunneldocker run -it --rm \ --name n8n \ -p 5678:5678 \ -e GENERIC_TIMEZONE="Asia/Ho_Chi_Minh" \ -e TZ="Asia/Ho_Chi_Minh" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n \ start --tunnel
# npm với tunneln8n start --tunnelCấu hình sau khi cài đặt
Truy cập http://localhost:5678 lần đầu, tạo tài khoản Owner với email và password mạnh (12+ ký tự). Nếu deploy ra internet, bắt buộc phải dùng HTTPS.
Environment Variables quan trọng:
# Timezone (rất quan trọng cho Schedule nodes)GENERIC_TIMEZONE="Asia/Ho_Chi_Minh"TZ="Asia/Ho_Chi_Minh"
# Database (nếu dùng PostgreSQL)DB_TYPE=postgresdbDB_POSTGRESDB_HOST=localhostDB_POSTGRESDB_PORT=5432DB_POSTGRESDB_DATABASE=n8nDB_POSTGRESDB_USER=n8n_userDB_POSTGRESDB_PASSWORD=your_password
# SecurityN8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
# Task Runners (recommended)N8N_RUNNERS_ENABLED=true
# Production settingsN8N_HOST=your-domain.comN8N_PROTOCOL=httpsN8N_PORT=443WEBHOOK_URL=https://your-domain.com/So sánh các phương pháp
| Tiêu chí | Docker | npm/npx |
|---|---|---|
| Độ khó | Dễ hơn | Khó hơn (cần biết Node.js) |
| Phù hợp cho | Production, Long-term | Development, Testing |
| Cô lập môi trường | Tốt (isolated) | Phụ thuộc hệ thống |
| Dễ backup | Rất dễ | Phức tạp hơn |
| Khả năng scale | Tốt | Giới hạn |
| Level | High-level, abstracted | Low-level, hands-on |
Khuyến nghị: Dùng npx n8n để test nhanh. Production thì dùng Docker với PostgreSQL.
Các bước tiếp theo
Sau khi triển khai xong:
- Làm quen với Canvas editor và Nodes
- Setup credentials cho services (Google, Slack, API…)
- Tham khảo n8n Documentation và Templates
- Setup backup và monitoring
Khắc phục sự cố thường gặp
Vấn đề 1: Port 5678 đã được sử dụng
# Kiểm tra port nào đang dùnglsof -i :5678
# Đổi sang port khác (ví dụ 5679)docker run -p 5679:5678 ...# Hoặc với npmn8n start --port 5679Vấn đề 2: Container bị stop do thiếu memory
# Kiểm tra logsdocker logs n8n
# Tăng memory limit cho Dockerdocker run -m 2g ... # Giới hạn 2GB RAMVấn đề 3: Permission denied với volume
# Fix permissionssudo chown -R 1000:1000 ~/.n8n# hoặc với named volumedocker volume inspect n8n_dataVấn đề 4: Node.js version không đúng (npm)
# Kiểm tra version hiện tạinode --version
# Cài đúng version với nvmnvm install 20nvm use 20
# Reinstall n8nnpm install -g n8nGóc chia sẻ
Trong quá trình tu luyện, tại hạ có xây dựng một trận pháp N8N local với một số bí tịch: n8n:latest, postgreSQL, redis (queue mode). Chư vị huynh đài nếu hứng thú có thể xem tại: Github
Tổng kết
Vậy là đạo hữu đã khai mở thành công trận pháp n8n. Những điểm quan trọng cần nhớ:
- Docker dễ hơn và tốt nhất cho production (high-level, abstracted)
- npm/npx low-level hơn, cần biết Node.js, phù hợp development
- Luôn enable Task Runners (
N8N_RUNNERS_ENABLED=true) - Timezone quan trọng cho Schedule nodes
- PostgreSQL tốt hơn SQLite cho workload lớn
- Self-hosting cần kiến thức kỹ thuật
Ở Chương 3, tại hạ sẽ dẫn các đạo hữu tham quan trận pháp và làm quen với các pháp khí cơ bản.
Chúc các đạo hữu triển khai thuận lợi! Hẹn gặp lại!
Cập nhật lần cuối: Tháng 2/2026 - Dựa trên n8n Documentation stable v2.6.3
n8n-tutorial
Bài 2/5Nội dung series:
- 1. Chương 1: Giới thiệu n8n - Nền tảng Workflow Automation mạnh mẽ
- 2. Chương 2: Khởi Nguyên - Triển Khai n8n Như Đặt Nền Móng Tu Luyện Đang đọc
- 3. Chương 3: Làm quen với giao diện và các Nodes cơ bản trong n8n
- 4. Chương 4: Hướng dẫn tạo Workflow đầu tiên với n8n
- 5. Tìm hiểu về Triggers và Webhooks trong n8n