Chào các bạn, hôm nay mình chia sẽ script cài đặt n8n với postgreSQL.
Tại sao là PostgreSQL?
Khá nhiều bạn lầm là “n8n luôn bắt buộc phải có PostgreSQL” trong khi thực tế:
- Mặc định n8n dùng SQLite
- Nếu bạn không cấu hình gì, n8n sẽ lưu toàn bộ workflows, credentials, execution vào file SQLite (
.db.sqlite
) trong thư mục cài đặt. - Ưu điểm: rất đơn giản, không cần cài thêm gì.
- Nếu bạn không cấu hình gì, n8n sẽ lưu toàn bộ workflows, credentials, execution vào file SQLite (
- Tại sao dùng PostgreSQL/MySQL trong production
- Đa luồng & đồng thời: SQLite chỉ cho một connection ghi tại một thời điểm, dễ gây “bottleneck” khi nhiều workflow chạy cùng lúc.
- Khả năng mở rộng: với PostgreSQL bạn có thể scale, replica, backup, giám sát độc lập.
- Độ bền & sao lưu: các hệ thống enterprise thường đã có hạ tầng PostgreSQL hoặc MySQL – dễ tích hợp với chính sách backup/monitoring sẵn có.
- Hỗ trợ transaction: khi workflow phức tạp và cần rollback, PostgreSQL mạnh mẽ hơn SQLite.
- Bạn có thể dùng MySQL/MariaDB
- Cấu hình tương tự, chỉ cần set
DB_TYPE=mysqldb
và thông số host/user/pass tương ứng.
- Cấu hình tương tự, chỉ cần set
- Khi nào không cần PostgreSQL?
- Chỉ muốn test nhanh, demo cá nhân hoặc dev environment nhẹ.
- Dữ liệu nhỏ, không cần high-availability.
Bản Script này cài cái gì?
- Kiểm tra và cập nhật môi trường: Chạy apt update, cài các gói cơ bản như dnsutils, git, curl, build-essential để có các công cụ cần thiết (dig, build-tools, v.v.).
- Cài đặt và kiểm tra DNS: Dùng dig để kiểm tra domain đã trỏ đúng về IP server hay chưa.
- Tạo user hệ thống: Tạo một user mới (mặc định tên là n8n, tương ứng thư mục cài đặt /home/n8n) nếu chưa tồn tại.
- Cài đặt PostgreSQL: Cài postgresql qua APT, khởi động service. Tạo role n8nuser và database n8ndb (nếu chưa có), với mật khẩu ngẫu nhiên.
- Cài đặt NVM và Node.js 22: Clone và cài nvm trong user home. Dùng nvm để cài Node.js phiên bản 22 và đặt làm mặc định.
- Cài đặt n8n: Chuyển vào thư mục cài đặt, khởi tạo package.json, và npm install n8n mới nhất
- Tạo file cấu hình môi trường: Viết ra ~/.env gồm thông số kết nối PostgreSQL và cấu hình cơ bản của n8n (host, port, webhook).
- Cài đặt và cấu hình PM2: Cài pm2 toàn cục. Khởi động n8n bằng PM2 và cấu hình để tự động khởi động lại sau reboot (pm2 startup + pm2 save).
- Cài đặt và cấu hình Nginx: Cài nginx. Tạo virtual host reverse-proxy, chuyển tiếp mọi request tới http://localhost:5678, thêm header WebSocket (Upgrade/Connection).
- Xin SSL LetsEncrypt: Cài certbot và plugin python3-certbot-nginx. Chạy certbot –nginx để tự động cấp và cài chứng chỉ SSL cho domain.
- Cuối cùng script sẽ in ra URL truy cập (https://domain) và nhắc bạn tự tạo tài khoản admin cho lần đầu.
Cách cài đặt N8N với PostgreSQL
Các bạn login SSH và chạy các lệnh sau:
wget https://raw.githubusercontent.com/bnixvn/n8n/refs/heads/main/n8n.sh
chmod +x n8n.sh
./n8n.sh
Lưu ý: Phải trỏ tên miền hoặc tên miền con cần sử dụng về IP VPS trước khi thực hiện
Chỉ chạy trên Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, Debian 12
Kết quả cài đặt:

Chúc các bạn cài đặt thành công!