1. Giới thiệu

n8n là một công cụ tự động hóa workflow mạnh mẽ cho phép bạn kết nối và tự động hóa các ứng dụng khác nhau. Hướng dẫn này sẽ chỉ bạn cách cài đặt n8n trên hosting cPanel bằng cách sử dụng giao diện đồ họa cho việc thiết lập domain/SSL và sử dụng CLI cho việc cài đặt. 

- Yêu cầu hệ thống:

Cấu hình hosting tối thiểu:

  • CPU: Tối thiểu 2 cores (khuyến nghị 4 cores)
  • RAM: Tối thiểu 2GB (khuyến nghị 4GB)
  • Node.js: Phiên bản 18.x trở lên
  • Quyền truy cập Terminal/SSH

Lưu ý: Cấu hình này phù hợp cho các dự án nhỏ. Với dự án lớn và chịu tải cao, bạn nên cân nhắc sử dụng VPS hoặc Cloud Server. Việc cài đặt và chạy n8n trên hosting có thể gây ảnh hưởng đến các ứng dụng và tiến trình khác đang chạy trên hosting cPanel. 

2. Cách cài đặt n8n trên cPanel

* Thiết lập SubDomain và SSL (Giao diện cPanel):

Bước 1: Thêm SubDomain

Để cài đặt n8n, nên sử dụng subdomain(ví dụ: n8n.yourdomain.com). Vì đến thời điểm bài viết hiện tại n8n vẫn chưa hỗ trợ tốt dạng path (yourdomain.com/n8n).

  • Đăng nhập vào cPanel.
  • Tìm mục  "Domains", chọn "Create A New Domain".
  • Tạo subdomain mới cho n8n (ví dụ: n8n.yourdomain.com).
  • Trỏ bản ghi về hosting theo hướng dẫn TẠI ĐÂY.

Bước 2: Cài đặt SSL Certificate

  • Trong cPanel, truy cập "SSL/TLS Status"
  • Chọn domain/subdomain vừa tạo
  • Tick chọn để kích hoạt SSL
  • Đợi quá trình cài đặt hoàn tất
  • Kiểm tra trạng thái SSL hiển thị màu xanh lá cây.    

Quan trọng: SSL chỉ cài thành công khi domain đã được trỏ đúng IP hosting.

* Cài đặt n8n bằng CLI

Trước khi bắt đầu, hãy thay thế các giá trị sau theo thông tin của bạn:

  • <username>: Tên người dùng hosting của bạn
  • <domain>: Domain/subdomain đã tạo ở bước 1
  • <app-root>: Thư mục cài đặt (ví dụ: n8n)
  • <node-version>: Phiên bản Node.js (ví dụ: 18)
  • <WEBHOOK_URL>: URL webhook đầy đủ (ví dụ: https://n8n.yourdomain.com)

Bước 3: Tạo ứng dụng Node.js

Mở Terminal trong cPanel và chạy lệnh sau:

cloudlinux-selector create --json --interpreter nodejs --version <node-version> --app-root <app-root> --domain <domain> --app-uri / --env '{"DB_TYPE":"sqlite","N8N_RELEASE_TYPE":"stable","WEBHOOK_URL":"<WEBHOOK_URL>"}'

Ví dụ cụ thể:

cloudlinux-selector create --json --interpreter nodejs --version 18 --app-root n8n --domain n8n.yourdomain.com --app-uri / --env '{"DB_TYPE":"sqlite","N8N_RELEASE_TYPE":"stable","WEBHOOK_URL":"https://n8n.yourdomain.com"}'

Bước 4: Kích hoạt môi trường Node.js

source /home/<username>/nodevenv/<app-root>/<node-version>/bin/activate && cd /home/<username>/<app-root>

Ví dụ cụ thể:

source /home/youruser/nodevenv/n8n/22/bin/activate && cd /home/youruser/n8n

Bước 5: Cài đặt n8n

Khởi tạo npm và cài đặt n8n:

npm init -y
npm install n8n

Bước 6: Cấu hình startup file

cloudlinux-selector set --json --interpreter nodejs --domain <domain> --app-root <app-root> --startup-file node_modules/n8n/bin/n8n --skip-web-check

Ví dụ cụ thể:

cloudlinux-selector set --json --interpreter nodejs --domain n8n.yourdomain.com --app-root n8n --startup-file node_modules/n8n/bin/n8n --skip-web-check

Bước 7: Khởi động lại ứng dụng

cloudlinux-selector restart --json --interpreter nodejs --app-root <app-root>

Ví dụ cụ thể:

cloudlinux-selector restart --json --interpreter nodejs --app-root n8n
* Kiểm tra và truy cập n8n
  1. Mở trình duyệt và truy cập URL của bạn (ví dụ: https://n8n.yourdomain.com).
  2. Nếu thấy thông báo "n8n is starting up", hãy đợi vài phút.
  3. Sau khi khởi động hoàn tất, bạn sẽ thấy giao diện đăng ký n8n.

* Cấu hình bổ sung:

Để bảo mật tốt hơn, bạn có thể thêm biến môi trường xác thực:

  1. Chỉnh sửa app bằng CLI hoặc qua giao diện cPanel.
  2. Thêm biến môi trường: N8N_BASIC_AUTH_ACTIVE=true.
  3. Restart ứng dụng.

* Thiết lập Database:

Mặc định n8n sử dụng SQLite. Để sử dụng database khác, bạn có thể thay đổi biến DB_TYPE trong lệnh tạo app.

* Gỡ cài đặt n8n:

- Dừng ứng dụng

cloudlinux-selector stop --json --interpreter nodejs --app-root <app-root>

- Sao lưu database cơ bản (nếu cần)

cp -r ~/.n8n ~/.n8n_backup_$(date +%Y%m%d_%H%M%S)

- Xóa ứng dụng

cloudlinux-selector destroy --json --interpreter nodejs --app-root <app-root>

- Dọn dẹp thư mục

Xóa thủ công thư mục cài đặt và database nếu không còn cần thiết.

3. Lưu ý quan trọng

Hạn chế của môi trường cPanel/CloudLinux:

  • Giới hạn tài nguyên: CPU, RAM và I/O bị hạn chế nghiêm ngặt.
  • Tiến trình nền: Không hỗ trợ tốt cho các tiến trình chạy liên tục.
  • Quyền hạn: Terminal bị giới hạn quyền truy cập.
  • Khả năng mở rộng: Khó mở rộng khi dự án phát triển.

Khuyến nghị:

  • Chỉ sử dụng cho các dự án nhỏ hoặc testing.
  • Với dự án production lớn, nên chuyển sang VPS hoặc Cloud Server.
  • Định kỳ sao lưu dữ liệu.
  • Theo dõi tài nguyên sử dụng.

4. Kết luận

Việc cài đặt n8n trên cPanel bằng CLI giúp tự động hóa quá trình và giảm thiểu lỗi thủ công. Tuy nhiên, hãy nhớ rằng môi trường hosting cPanel có những hạn chế nhất định. Đối với các dự án phức tạp và cần sự ổn định xuyên suốt, việc sử dụng VPS sẽ mang lại hiệu suất và tính linh hoạt tốt hơn nhiều.

Chúc các bạn thành công!