Đang tải, chờ xíu...

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:

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):

Terminal window
# Tạo volume để lưu data
docker volume create n8n_data
# Chạy n8n
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 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

Giả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:

Terminal window
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/n8n

Lư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):

Terminal window
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/n8n

Vớ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:

Terminal window
# Pull phiên bản mới nhất
docker 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ại
docker stop n8n
# Remove container cũ
docker rm n8n
# Start lại với image mới
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/n8n

2. 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 đến 24.x

Thử nghiệm nhanh với npx:

Không cần cài đặt, chỉ cần chạy:

Terminal window
npx n8n

Lệ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:

Terminal window
# Cài đặt n8n global
npm install n8n -g
# Khởi động n8n
n8n start

Hoặc cài đặt version cụ thể:

Terminal window
# Cài version 2.6.3
npm install -g n8n@2.6.3
# Cài version beta
npm install -g n8n@next

Cập nhật n8n npm:

Terminal window
# Update lên phiên bản stable mới nhất
npm update -g n8n
# Hoặc cài next version
npm install -g n8n@next

Revert 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ũ:

Terminal window
# Cài lại version cũ
npm install -g n8n@<version-cũ>
# Nếu có database migration, revert lại
n8n db:revert

3. 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:

Terminal window
# Docker với tunnel
docker 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 tunnel
n8n start --tunnel

Cấ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:

Terminal window
# 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=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n_user
DB_POSTGRESDB_PASSWORD=your_password
# Security
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
# Task Runners (recommended)
N8N_RUNNERS_ENABLED=true
# Production settings
N8N_HOST=your-domain.com
N8N_PROTOCOL=https
N8N_PORT=443
WEBHOOK_URL=https://your-domain.com/

So sánh các phương pháp

Tiêu chíDockernpm/npx
Độ khóDễ hơnKhó hơn (cần biết Node.js)
Phù hợp choProduction, Long-termDevelopment, Testing
Cô lập môi trườngTốt (isolated)Phụ thuộc hệ thống
Dễ backupRất dễPhức tạp hơn
Khả năng scaleTốtGiới hạn
LevelHigh-level, abstractedLow-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:

  1. Làm quen với Canvas editor và Nodes
  2. Setup credentials cho services (Google, Slack, API…)
  3. Tham khảo n8n DocumentationTemplates
  4. Setup backup và monitoring

Khắc phục sự cố thường gặp

Vấn đề 1: Port 5678 đã được sử dụng

Terminal window
# Kiểm tra port nào đang dùng
lsof -i :5678
# Đổi sang port khác (ví dụ 5679)
docker run -p 5679:5678 ...
# Hoặc với npm
n8n start --port 5679

Vấn đề 2: Container bị stop do thiếu memory

Terminal window
# Kiểm tra logs
docker logs n8n
# Tăng memory limit cho Docker
docker run -m 2g ... # Giới hạn 2GB RAM

Vấn đề 3: Permission denied với volume

Terminal window
# Fix permissions
sudo chown -R 1000:1000 ~/.n8n
# hoặc với named volume
docker volume inspect n8n_data

Vấn đề 4: Node.js version không đúng (npm)

Terminal window
# Kiểm tra version hiện tại
node --version
# Cài đúng version với nvm
nvm install 20
nvm use 20
# Reinstall n8n
npm install -g n8n

Gó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