Mục lục bài viết

Chắc chắn rồi! Dưới đây là 6 từ khóa ảnh độc đáo và gợi hình từ tiêu đề của bạn:

Hướng dẫn cài đặt n8n trên cPanel nhanh chóng và dễ dàng

Bài viết này sẽ cung cấp một hướng dẫn toàn diện, từng bước để bạn có thể tự cài đặt n8n, một công cụ tự động hóa quy trình làm việc mạnh mẽ, trên môi trường hosting sử dụng cPanel. Chúng tôi sẽ đi sâu vào các yêu cầu cần thiết, quy trình cài đặt chi tiết, cấu hình nâng cao với PM2 và reverse proxy, cũng như cách khắc phục các sự cố thường gặp một cách nhanh chóng và dễ dàng.

Hướng dẫn cài đặt n8n trên cPanel nhanh chóng và dễ dàng

➡️ Xem thêm: Mua hosting cho WordPress ở đâu tốt?

Giới thiệu về n8n và Lợi ích khi tự host trên cPanel

n8n là gì?

n8n là một công cụ tự động hóa quy trình làm việc mã nguồn mở, thường được xem là một giải pháp thay thế linh hoạt cho các dịch vụ như Zapier hoặc Integromat. Điểm đặc biệt của n8n là nó cho phép người dùng tự lưu trữ (self-host) trên máy chủ của riêng mình. Công cụ này hoạt động dựa trên các “nút” (nodes). Mỗi nút đại diện cho một hành động hoặc một dịch vụ cụ thể, ví dụ như đọc dữ liệu từ Google Sheets, gửi email qua Gmail, tạo một bài đăng trên WordPress, hoặc tương tác với một API bất kỳ.

Bằng cách kết nối các nút này lại với nhau, bạn có thể tạo ra các quy trình làm việc (workflows) phức tạp để tự động hóa các tác vụ lặp đi lặp lại. Ví dụ, bạn có thể tạo một workflow tự động lấy thông tin từ một biểu mẫu liên hệ trên website, lưu dữ liệu vào một bảng tính, sau đó gửi một email cảm ơn đến người dùng và đồng thời thông báo cho đội ngũ kinh doanh qua Slack. Khả năng tùy biến và mở rộng của n8n là rất lớn, với hàng trăm nút tích hợp sẵn và khả năng tạo các nút tùy chỉnh.

Tại sao nên tự cài đặt n8n trên cPanel?

Việc tự cài đặt n8n trên một môi trường hosting quen thuộc như cPanel mang lại nhiều lợi ích đáng kể so với việc sử dụng phiên bản cloud của n8n hoặc các dịch vụ tự động hóa khác.

– Tiết kiệm chi phí: Đây là lợi ích rõ ràng nhất. Các gói dịch vụ tự động hóa thường tính phí dựa trên số lượng tác vụ hoặc số lần thực thi workflow mỗi tháng. Khi lưu lượng công việc tăng lên, chi phí có thể trở nên rất đắt đỏ. Bằng cách tự host trên cPanel, bạn chỉ phải trả chi phí cho gói hosting của mình, cho phép bạn thực thi không giới hạn số lượng workflow và tác vụ mà không phải lo lắng về chi phí phát sinh.

– Toàn quyền kiểm soát dữ liệu: Khi sử dụng các dịch vụ của bên thứ ba, dữ liệu của bạn phải đi qua máy chủ của họ. Điều này có thể gây ra những lo ngại về quyền riêng tư và bảo mật, đặc biệt là với các thông tin nhạy cảm của khách hàng hoặc doanh nghiệp. Tự host n8n đồng nghĩa với việc toàn bộ dữ liệu của bạn được xử lý và lưu trữ trên chính máy chủ của bạn, giúp bạn tuân thủ các quy định về bảo mật dữ liệu như GDPR và đảm bảo an toàn tuyệt đối.

– Tùy biến không giới hạn: Phiên bản self-host cho phép bạn toàn quyền truy cập vào mã nguồn và cấu hình của n8n. Bạn có thể cài đặt các phiên bản cụ thể, tinh chỉnh các biến môi trường để tối ưu hóa hiệu suất, tạo ra các nút tùy chỉnh để kết nối với các hệ thống nội bộ, và mở rộng chức năng theo nhu cầu riêng của doanh nghiệp mà không bị giới hạn bởi các tính năng của nhà cung cấp.

– Không bị giới hạn về số lượng workflow và bước thực thi: Các dịch vụ cloud thường có các giới hạn về số lượng workflow bạn có thể tạo hoặc số bước trong mỗi workflow ở các gói cước khác nhau. Với phiên bản tự host, bạn hoàn toàn không bị ràng buộc bởi những giới hạn này.

1.  Biểu tượng n8n trên giao diện cPanel
1. Biểu tượng n8n trên giao diện cPanel

Chuẩn bị các yêu cầu cần thiết trước khi cài đặt

Để quá trình cài đặt diễn ra suôn sẻ, bạn cần đảm bảo rằng môi trường hosting cPanel của mình và các công cụ liên quan đã sẵn sàng.

Yêu cầu về hosting cPanel

Không phải tất cả các gói hosting cPanel đều phù hợp để cài đặt n8n. Bạn cần kiểm tra và đảm bảo các yếu tố sau:

– Quyền truy cập SSH: Đây là yêu cầu bắt buộc. Bạn sẽ cần sử dụng giao diện dòng lệnh (Command Line Interface – CLI) để cài đặt n8n và các gói phụ thuộc. Hầu hết các nhà cung cấp hosting VPS hoặc các gói shared hosting cao cấp đều cung cấp quyền truy cập SSH.

– Hỗ trợ Node.js: n8n được xây dựng trên nền tảng Node.js. Do đó, hosting của bạn phải có tính năng “Setup Node.js App” trong cPanel. Tính năng này cho phép bạn tạo và quản lý các ứng dụng Node.js một cách dễ dàng, bao gồm việc chọn phiên bản Node.js và cài đặt các gói NPM. Phiên bản Node.js được khuyến nghị cho n8n là phiên bản LTS (Long-Term Support) mới nhất.

– Tài nguyên máy chủ đủ mạnh: n8n có thể tiêu tốn một lượng RAM và CPU nhất định, đặc biệt khi có nhiều workflow chạy đồng thời. Mức tối thiểu được đề xuất là 1GB RAM và 1 vCPU. Nếu bạn có kế hoạch chạy các workflow phức tạp hoặc xử lý lượng lớn dữ liệu, bạn nên cân nhắc một gói hosting có tài nguyên cao hơn để đảm bảo hiệu suất ổn định.

– Quyền tạo tên miền phụ (Subdomain): Để truy cập n8n một cách chuyên nghiệp qua một địa chỉ web như n8n.yourdomain.com, bạn cần có quyền tạo và quản lý các tên miền phụ trong cPanel.

Các công cụ và kiến thức cơ bản

– Trình khách SSH (SSH Client): Để kết nối với máy chủ của bạn qua SSH, bạn cần một phần mềm client.
– Trên Windows: Bạn có thể sử dụng PuTTY, Bitvise SSH Client hoặc sử dụng Terminal tích hợp sẵn trong Windows 10/11.
– Trên macOS và Linux: Bạn có thể sử dụng ứng dụng Terminal có sẵn.

– Kiến thức cơ bản về dòng lệnh: Bạn không cần phải là một chuyên gia, nhưng việc hiểu các lệnh cơ bản như `cd` (thay đổi thư mục), `ls` (liệt kê tệp), `mkdir` (tạo thư mục) và cách chỉnh sửa tệp tin bằng các trình soạn thảo như `nano` hoặc `vim` sẽ rất hữu ích.

➡️ Xem thêm: Các loại hosting và cách chọn hosting phù hợp

Hướng dẫn chi tiết các bước cài đặt n8n trên cPanel

Sau khi đã chuẩn bị đầy đủ các yêu cầu, chúng ta sẽ tiến hành cài đặt n8n qua các bước sau.

Bước 1: Đăng nhập vào cPanel và truy cập Terminal

– Đăng nhập vào tài khoản cPanel của bạn.
– Tìm đến mục “Advanced” hoặc “Nâng cao” và nhấp vào biểu tượng “Terminal”.
– Một cửa sổ giao diện dòng lệnh sẽ hiện ra ngay trên trình duyệt. Mọi lệnh bạn gõ ở đây sẽ được thực thi trực tiếp trên máy chủ của bạn.

Bước 2: Cài đặt và cấu hình môi trường Node.js

– Quay lại trang chính của cPanel, tìm đến mục “Software” hoặc “Phần mềm” và chọn “Setup Node.js App”.
– Nhấp vào nút “Create Application”.
– Điền các thông tin cần thiết:
– Node.js version: Chọn phiên bản LTS mới nhất có sẵn (ví dụ: 18.x.x hoặc 20.x.x).
– Application mode: Chọn “Development”. Bạn có thể đổi sang “Production” sau khi cài đặt hoàn tất.
– Application root: Đây là thư mục sẽ chứa mã nguồn của n8n. Hãy đặt một cái tên dễ nhớ, ví dụ: `n8n`. cPanel sẽ tự động tạo thư mục này trong thư mục gốc của bạn (`/home/yourusername/n8n`).
– Application URL: Để trống phần này. Chúng ta sẽ cấu hình tên miền sau bằng phương pháp reverse proxy.
– Application startup file: Nhập vào `node_modules/n8n/bin/n8n`. Đây là tệp thực thi chính của n8n.
– Nhấp vào nút “Create”.
– Sau khi ứng dụng được tạo, trang sẽ tải lại và hiển thị thông tin chi tiết. Bạn sẽ thấy một lệnh bắt đầu bằng `source /home/yourusername/nodevenv/…`. Hãy sao chép toàn bộ lệnh này. Lệnh này dùng để kích hoạt môi trường ảo Node.js cho ứng dụng của bạn.
– Quay lại cửa sổ Terminal đã mở ở Bước 1, dán lệnh vừa sao chép và nhấn Enter. Dấu nhắc lệnh của bạn bây giờ sẽ có tiền tố cho biết bạn đang ở trong môi trường ảo.

Bước 3: Cài đặt n8n bằng NPM

Bây giờ bạn đã ở trong môi trường Node.js được thiết lập riêng cho ứng dụng của mình. Hãy tiến hành cài đặt n8n.

– Trong Terminal, đảm bảo bạn đang ở trong thư mục gốc của ứng dụng đã tạo ở bước trên. Sử dụng lệnh:
`cd ~/n8n`
(Thay `n8n` bằng tên thư mục bạn đã đặt nếu khác).

– Tiếp theo, sử dụng NPM (Node Package Manager) để cài đặt n8n. Gõ lệnh sau và nhấn Enter:
`npm install n8n`

– Quá trình này có thể mất vài phút vì NPM sẽ tải về n8n và tất cả các gói phụ thuộc cần thiết. Hãy kiên nhẫn chờ đợi cho đến khi quá trình hoàn tất và dấu nhắc lệnh xuất hiện trở lại.

Bước 4: Cấu hình biến môi trường cho n8n

Biến môi trường là cách để bạn cấu hình n8n mà không cần chỉnh sửa trực tiếp mã nguồn. Đây là bước rất quan trọng để ứng dụng hoạt động đúng cách.

– Quay lại trang “Setup Node.js App” trong cPanel.
– Kéo xuống phần “Environment Variables” và nhấp vào “Add Variable”.
– Thêm các biến sau đây, từng cái một:
– `N8N_HOST`: Nhập tên miền phụ bạn dự định sử dụng, ví dụ: `n8n.yourdomain.com`.
– `N8N_PORT`: Nhập một cổng (port) mà ứng dụng sẽ lắng nghe. cPanel thường tự động gán một cổng, nhưng bạn có thể chọn một cổng khác chưa được sử dụng, ví dụ: `5678`.
– `WEBHOOK_URL`: Nhập URL đầy đủ, bắt đầu bằng https, ví dụ: `https://n8n.yourdomain.com/`. Dấu gạch chéo ở cuối là quan trọng.
– `TZ`: Đặt múi giờ cho ứng dụng của bạn để các workflow liên quan đến thời gian hoạt động chính xác. Ví dụ: `Asia/Ho_Chi_Minh`.

– Sau khi thêm tất cả các biến, nhấp vào nút “Stop App”, sau đó nhấp vào “Start App” để khởi động lại ứng dụng và áp dụng các thay đổi.

Bước 5: Khởi động n8n lần đầu và kiểm tra

Mặc dù bạn đã khởi động ứng dụng qua giao diện cPanel, chúng ta nên chạy nó trực tiếp từ Terminal để kiểm tra xem có lỗi gì không.

– Trong Terminal, đảm bảo bạn vẫn đang ở trong thư mục ứng dụng (`~/n8n`) và môi trường ảo đã được kích hoạt.
– Chạy lệnh sau:
`n8n`

– Nếu mọi thứ được cài đặt chính xác, bạn sẽ thấy các dòng log xuất hiện, cho biết “Editor is now available on…”. Điều này xác nhận n8n đã khởi động thành công.
– Nhấn `Ctrl + C` để dừng tiến trình này lại. Chúng ta sẽ sử dụng một công cụ tốt hơn để quản lý nó.

2.  Sơ đồ workflow n8n trừu tượng
2. Sơ đồ workflow n8n trừu tượng

Cấu hình n8n chạy bền bỉ với PM2

Nếu bạn chỉ chạy n8n bằng lệnh `n8n`, ứng dụng sẽ dừng lại ngay khi bạn đóng cửa sổ Terminal. Để n8n chạy như một dịch vụ nền, luôn hoạt động và tự khởi động lại khi có lỗi, chúng ta cần sử dụng một trình quản lý tiến trình như PM2.

PM2 là gì và tại sao cần sử dụng?

PM2 là một trình quản lý tiến trình (process manager) phổ biến cho các ứng dụng Node.js. Nó giúp:
– Giữ cho ứng dụng của bạn luôn hoạt động (forever alive).
– Tự động khởi động lại ứng dụng khi nó bị lỗi hoặc khi máy chủ khởi động lại.
– Theo dõi việc sử dụng tài nguyên (CPU, RAM).
– Quản lý log của ứng dụng.

Cài đặt PM2

– Trong Terminal, với môi trường ảo Node.js vẫn đang được kích hoạt, chạy lệnh sau để cài đặt PM2 trên toàn cục trong môi trường đó:
`npm install pm2 -g`

Sử dụng PM2 để quản lý tiến trình n8n

– Thay vì chạy `n8n` trực tiếp, bây giờ bạn sẽ sử dụng PM2 để khởi động nó. Dùng lệnh sau:
`pm2 start node_modules/n8n/bin/n8n`

– PM2 sẽ khởi động n8n trong nền và hiển thị một bảng trạng thái của các tiến trình đang được quản lý.
– Để đảm bảo PM2 tự khởi động n8n mỗi khi máy chủ reboot, bạn cần tạo một kịch bản khởi động. Chạy lệnh:
`pm2 startup`
– PM2 sẽ đưa ra một lệnh, bạn chỉ cần sao chép và dán lệnh đó vào Terminal rồi nhấn Enter để thực thi.
– Cuối cùng, lưu lại danh sách tiến trình hiện tại để PM2 ghi nhớ:
`pm2 save`

Bây giờ, n8n của bạn đã được quản lý bởi PM2 và sẽ luôn hoạt động một cách ổn định.

Thiết lập Reverse Proxy để truy cập n8n qua tên miền

Hiện tại, n8n đang chạy trên một cổng cụ thể (ví dụ: 5678) và chỉ có thể truy cập qua địa chỉ IP của máy chủ kèm theo cổng đó. Để có thể truy cập qua một tên miền phụ đẹp mắt như `n8n.yourdomain.com` và sử dụng giao thức HTTPS, chúng ta cần thiết lập một reverse proxy.

Tại sao cần Reverse Proxy?

Reverse proxy là một máy chủ trung gian nhận yêu cầu từ client (trình duyệt của bạn), sau đó chuyển tiếp yêu cầu đó đến máy chủ ứng dụng (n8n đang chạy trên cổng 5678). Nó giúp:
– Che giấu cổng ứng dụng, tăng cường bảo mật.
– Cho phép bạn truy cập ứng dụng qua cổng 80 (HTTP) và 443 (HTTPS) tiêu chuẩn.
– Dễ dàng tích hợp chứng chỉ SSL/TLS.
– Có thể cân bằng tải nếu bạn có nhiều instance của ứng dụng.

Hướng dẫn cấu hình trong file .htaccess

Phương pháp đơn giản nhất để thiết lập reverse proxy trên cPanel là sử dụng file `.htaccess`.

– Đầu tiên, bạn cần tạo một tên miền phụ. Vào cPanel, tìm mục “Domains” hoặc “Tên miền”, chọn “Subdomains”.
– Tạo một tên miền phụ, ví dụ `n8n`, cho tên miền chính của bạn. Đặt “Document Root” của nó trỏ đến thư mục `public_html/n8n` (bạn cần tạo thư mục `n8n` này bên trong `public_html`).
– Sử dụng “File Manager” trong cPanel, điều hướng đến thư mục `public_html/n8n` vừa tạo.
– Tạo một tệp mới có tên là `.htaccess`. Nếu bạn không thấy tệp này, hãy chắc chắn rằng bạn đã bật tùy chọn “Show Hidden Files” trong cài đặt của File Manager.
– Mở tệp `.htaccess` để chỉnh sửa và dán đoạn mã sau vào:

“`
RewriteEngine On
RewriteRule ^(.*)$ http://127.0.0.1:5678/$1 [P,L]
“`

– Hãy chắc chắn thay thế `5678` bằng đúng cổng mà bạn đã cấu hình cho n8n trong biến môi trường `N8N_PORT`.
– Lưu tệp lại.

Kích hoạt SSL cho tên miền phụ

Bảo mật là rất quan trọng. Bạn cần cài đặt chứng chỉ SSL cho tên miền phụ của mình.

– Trong cPanel, tìm đến mục “Security” hoặc “Bảo mật” và chọn “SSL/TLS Status”.
– Tìm tên miền phụ `n8n.yourdomain.com` của bạn trong danh sách.
– Nếu nó chưa có SSL, hãy chọn nó và nhấn vào nút “Run AutoSSL”.
– cPanel sẽ tự động cài đặt một chứng chỉ SSL miễn phí từ Let’s Encrypt cho tên miền phụ của bạn.

Sau khi hoàn tất, bạn có thể truy cập `https://n8n.yourdomain.com` trên trình duyệt và sẽ thấy giao diện của n8n.

3.  Dòng lệnh cài đặt trong Terminal cPanel
3. Dòng lệnh cài đặt trong Terminal cPanel

Tối ưu và bảo mật cơ bản cho n8n sau khi cài đặt

Việc cài đặt chỉ là bước khởi đầu. Bạn cần thực hiện thêm một số cấu hình để đảm bảo n8n hoạt động an toàn và hiệu quả.

Thiết lập xác thực người dùng

Mặc định, bất kỳ ai biết địa chỉ n8n của bạn đều có thể truy cập. Bạn cần thiết lập tên người dùng và mật khẩu.

– Quay lại mục “Setup Node.js App” trong cPanel.
– Thêm hai biến môi trường mới:
– `N8N_BASIC_AUTH_ACTIVE`: Đặt giá trị là `true`.
– `N8N_BASIC_AUTH_USER`: Đặt tên người dùng bạn muốn.
– `N8N_BASIC_AUTH_PASSWORD`: Đặt một mật khẩu mạnh.
– Dừng và khởi động lại ứng dụng Node.js để áp dụng thay đổi.
– Bây giờ, khi truy cập vào trang n8n, bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu.

Cập nhật n8n lên phiên bản mới

Đội ngũ n8n thường xuyên phát hành các phiên bản mới với các tính năng và bản vá bảo mật. Để cập nhật:

– Truy cập vào Terminal qua cPanel.
– Kích hoạt môi trường ảo Node.js (`source …`).
– Điều hướng đến thư mục ứng dụng (`cd ~/n8n`).
– Chạy lệnh cập nhật:
`npm install n8n@latest`
– Sau khi cập nhật xong, khởi động lại tiến trình n8n bằng PM2:
`pm2 restart all`

Sao lưu dữ liệu và workflow

Dữ liệu của n8n (bao gồm các workflow và thông tin đăng nhập) được lưu trong một cơ sở dữ liệu SQLite tại `~/.n8n/database.sqlite` theo mặc định. Bạn nên thường xuyên sao lưu tệp này và toàn bộ thư mục `~/.n8n` để phòng trường hợp xảy ra sự cố. Bạn có thể thực hiện việc này thủ công qua File Manager hoặc thiết lập một cron job để tự động nén và sao lưu thư mục này.

Khắc phục một số lỗi thường gặp khi cài đặt n8n trên cPanel

Lỗi Port đã được sử dụng (Port in use)

– Nguyên nhân: Cổng bạn chọn trong biến môi trường `N8N_PORT` đang được một ứng dụng khác sử dụng.
– Giải pháp: Quay lại phần cấu hình biến môi trường của ứng dụng Node.js, thay đổi giá trị của `N8N_PORT` thành một số khác (ví dụ: 5679, 5680), sau đó cập nhật lại file `.htaccess` với cổng mới và khởi động lại ứng dụng.

Lỗi phân quyền (Permission Denied)

– Nguyên nhân: Thường xảy ra khi cố gắng cài đặt các gói NPM hoặc khi n8n cố gắng ghi vào một thư mục mà nó không có quyền.
– Giải pháp: Kiểm tra lại quyền của thư mục ứng dụng (`~/n8n`) và thư mục dữ liệu (`~/.n8n`). Sử dụng File Manager hoặc lệnh `chmod` trong Terminal để đảm bảo người dùng cPanel của bạn có quyền đọc, ghi và thực thi.

n8n không tự khởi động lại sau khi reboot server

– Nguyên nhân: Bạn đã quên chạy lệnh `pm2 startup` và `pm2 save`.
– Giải pháp: Đăng nhập vào Terminal, kích hoạt môi trường ảo và chạy lại hai lệnh này.
`pm2 startup` (sao chép và chạy lệnh mà nó đưa ra)
`pm2 save`

Lỗi 500 Internal Server Error hoặc 502 Bad Gateway

– Nguyên nhân: Lỗi này thường liên quan đến cấu hình reverse proxy. Có thể do ứng dụng n8n không chạy, hoặc file `.htaccess` cấu hình sai cổng.
– Giải pháp:
– Dùng lệnh `pm2 status` trong Terminal để chắc chắn rằng tiến trình n8n đang ở trạng thái “online”. Nếu không, hãy kiểm tra log lỗi bằng lệnh `pm2 logs`.
– Kiểm tra kỹ lại cổng trong file `.htaccess` có khớp chính xác với biến môi trường `N8N_PORT` hay không.
– Kiểm tra log lỗi của Apache trong cPanel (Mục “Errors” hoặc “Lỗi”) để có thêm thông tin chi tiết về nguyên nhân gây ra lỗi.

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x