Cài n8n với PostgreSQL trên Ubuntu/Debian: chỉ 1 script, tự có Nginx + SSL

Bạn đang chạy n8n trên VPS nhưng workflow ngày càng nhiều, dữ liệu phình ra và SQLite bắt đầu “đuối”? Đó là lúc bạn nên chuyển sang PostgreSQL. Trong bài này, Hoidapwp sẽ hướng dẫn bạn cài n8n kết hợp PostgreSQL trên Ubuntu/Debian chỉ bằng một script duy nhất — script tự lo toàn bộ: tạo database, cài n8n, dựng Nginx reverse proxy và cấp SSL Let’s Encrypt tự động. Xong việc bạn chỉ cần mở trình duyệt, tạo tài khoản admin và bắt đầu kéo-thả workflow.

Tại sao n8n nên dùng PostgreSQL thay vì SQLite?

Mặc định, n8n lưu toàn bộ workflow, credentials và lịch sử chạy (execution) vào file SQLite trong thư mục cài đặt. Cách này đơn giản, không cần cài thêm gì — rất hợp để test nhanh hoặc demo cá nhân. Tuy nhiên, SQLite chỉ cho phép một kết nối ghi tại một thời điểm, nên khi nhiều workflow chạy song song, nó dễ trở thành điểm nghẽn.

Chuyển sang PostgreSQL, bạn nhận được:

  • Đa luồng, đồng thời tốt hơn: nhiều workflow chạy cùng lúc không bị “kẹt” ở thao tác ghi dữ liệu.
  • Dễ mở rộng và giám sát: scale, replica, backup và theo dõi độc lập với ứng dụng.
  • Độ bền dữ liệu cao: dễ tích hợp vào chính sách backup/monitoring sẵn có của hệ thống doanh nghiệp.
  • Hỗ trợ transaction đầy đủ: hữu ích khi workflow phức tạp và cần rollback an toàn.

Lưu ý: nếu bạn chỉ muốn dùng n8n trong môi trường dev nhẹ, demo cá nhân, dữ liệu nhỏ và không cần high-availability thì SQLite mặc định là đủ — không nhất thiết phải cài PostgreSQL.

Chuẩn bị trước khi cài đặt

Script hỗ trợ Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04 và Debian 12. Trước khi chạy, bạn cần chuẩn bị:

  • Một VPS chạy một trong các hệ điều hành trên, đã SSH được với quyền root.
  • Một tên miền hoặc subdomain đã trỏ (A record) về IP của VPS. Đây là điều kiện bắt buộc vì script sẽ xin chứng chỉ SSL cho domain đó. Bạn có thể kiểm tra bằng lệnh dig +short domain-cua-ban.com — kết quả phải trả về đúng IP VPS.

Script tự động làm những gì?

Thay vì cài từng thành phần thủ công, script của BNIX gói gọn toàn bộ quy trình vào một lần chạy:

  • Cập nhật môi trường: chạy apt update và cài các gói cơ bản như dnsutils, git, curl, build-essential.
  • Kiểm tra DNS: xác nhận domain bạn nhập đã trỏ đúng về IP server hay chưa.
  • Cài PostgreSQL: cài qua APT, khởi động service, tự tạo role n8nuser và database n8ndb (nếu chưa có) kèm mật khẩu ngẫu nhiên.
  • Cài n8n: khởi tạo package.json và cài bản n8n mới nhất bằng npm.
  • Tạo file cấu hình .env: ghi sẵn thông số kết nối PostgreSQL và cấu hình cơ bản của n8n (host, port, webhook).
  • Cài và cấu hình PM2: chạy n8n dưới PM2 để process luôn sống, đồng thời bật tự khởi động lại sau khi reboot (pm2 startup + pm2 save).
  • Cài và cấu hình Nginx: tạo virtual host reverse-proxy chuyển tiếp mọi request về http://localhost:5678, kèm header WebSocket (Upgrade/Connection).
  • Xin SSL Let’s Encrypt: cài certbot và plugin nginx, tự động cấp và cài chứng chỉ cho domain.

Các bước cài đặt n8n với PostgreSQL

Bước 1: Tải script về VPS

Đăng nhập SSH vào VPS với quyền root rồi chạy:

wget https://raw.githubusercontent.com/bnixvn/n8n/refs/heads/main/install_n8n.sh
chmod +x install_n8n.sh

Bước 2: Chạy script

./install_n8n.sh

Script sẽ hỏi bạn nhập tên miền đã trỏ về VPS, sau đó tự động thực hiện toàn bộ các bước: kiểm tra DNS, cài PostgreSQL, tạo database, cài n8n, cấu hình PM2, dựng Nginx và xin SSL. Quá trình này mất vài phút tùy cấu hình VPS.

Bước 3: Kiểm tra kết quả

Khi hoàn tất, script in ra URL truy cập dạng https://domain-cua-ban.com. Mở URL này trên trình duyệt — bạn sẽ thấy trang đăng nhập n8n với chứng chỉ SSL hợp lệ. Lần đầu tiên, bạn cần tự tạo tài khoản admin (owner account), sau đó là có thể tạo workflow ngay.

Cài n8n với PostgreSQL trên Ubuntu/Debian: chỉ 1 script, tự có Nginx + SSL

Một số điểm cần lưu ý

  • Script chỉ chạy đúng trên Ubuntu 20.04/22.04/24.04 và Debian 12 — các distro khác có thể lỗi ở bước cài gói.
  • Thông tin kết nối database (user, password, tên DB) nằm trong file .env ở thư mục cài đặt n8n — hãy lưu lại cẩn thận nếu sau này cần backup hoặc migrate.
  • PM2 đã được cấu hình tự khởi động sau reboot, nên n8n sẽ tự chạy lại khi VPS khởi động.

Có thể dùng MySQL/MariaDB thay PostgreSQL không?

Có. n8n hỗ trợ cả MySQL/MariaDB với cách cấu hình tương tự — bạn chỉ cần đặt DB_TYPE=mysqldb trong file .env và điền host/user/password tương ứng. Tuy nhiên, PostgreSQL vẫn là lựa chọn được khuyến nghị cho môi trường production nhờ độ ổn định và khả năng mở rộng tốt hơn.

Chúc các bạn cài đặt thành công! Nếu gặp lỗi trong quá trình chạy script, hãy kiểm tra lại hai điểm hay sai nhất: domain đã trỏ đúng IP chưa và VPS có đúng hệ điều hành được hỗ trợ không.

👉 Cần VPS để thực hành? Đăng ký VPS BNIX tại đây: https://my.bnix.one/aff.php?aff=82

🏢 Chuyên thiết kế web cho doanh nghiệp và cá nhân
🤖 Giải pháp tự động hóa cho Doanh nghiệp và cá nhân
📞 0925045760 → https://zalo.me/0925045760
🌐 thietkewebdian.com → https://thietkewebdian.com

4.7/5 - (54 bình chọn)
Đăng ký
Thông báo về
guest
0 Bình Luận
Oldest
Newest Most Voted
Inline Feedbacks
Xem tất cả
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x