Cài n8n Trên Hosting: Hướng Dẫn cPanel Từng Bước
Nội dung trên nguyenthaimmo.com được trực tiếp triển khai, kiểm thử và biên soạn bởi NguyenThaiMMO – người có nhiều năm kinh nghiệm thực chiến trong WordPress, SEO kỹ thuật, Automation, MMO & Affiliate.
Mỗi bài viết đều được thẩm định dựa trên trải nghiệm thực tế, ưu tiên hướng dẫn từng bước, chỉ ra lỗi thường gặp và giải pháp cụ thể, nhằm giúp người đọc áp dụng được ngay, hạn chế rủi ro và tối ưu hiệu quả lâu dài.
Cài n8n trên hosting chỉ khả thi khi gói hosting cho phép chạy ứng dụng Node.js liên tục, có Terminal/SSH, SSL và quyền cài package bằng npm. Nếu cPanel của bạn chỉ phục vụ PHP/MySQL hoặc tự dừng tiến trình nền, hãy dùng VPS chạy Docker thay vì cố cài: đó cũng là hướng n8n khuyến nghị cho phần lớn hệ thống self-hosted.
Góc nhìn NguyenThaiMMO: đừng chọn hosting chỉ vì rẻ hơn VPS
Góc nhìn NguyenThaiMMO: điểm quyết định không phải cPanel có hiện biểu tượng Node.js hay không, mà là nhà cung cấp có bảo đảm tiến trình n8n chạy liên tục, tự khởi động lại và nhận webhook HTTPS ổn định hay không. Nếu ba điều này không được xác nhận, mình xem hosting là môi trường học thử; workflow phục vụ khách hàng hoặc công việc quan trọng nên chuyển sang VPS/Docker.
Quan điểm này khác với các hướng dẫn chỉ dừng ở npm install n8n. Cài được package chưa đồng nghĩa hệ thống vận hành được: webhook có thể mất sau khi tiến trình ngủ, URL có thể sai khi qua reverse proxy và credentials có thể không đọc được nếu mất khóa mã hóa. Vì vậy, bài này buộc phải có phép thử sau restart ở bước 5.
Video NguyenThaiMMO hướng dẫn cài n8n trên hosting
Video hướng dẫn trên kênh YouTube NguyenThaiMMO giúp bạn nhận diện các màn hình chính trong cPanel. Sau khi xem, hãy làm theo từng bước bên dưới vì tên menu và giao diện có thể khác giữa các nhà cung cấp hosting.
Mở video “Hướng dẫn cài đặt n8n trên hosting” trên YouTube.
Video hướng dẫn cài đặt n8n trên hosting — kênh YouTube NguyenThaiMMO.
Cài n8n trên hosting có phù hợp với bạn không?
n8n là nền tảng tự động hóa workflow. Một tiến trình n8n phải luôn chạy để mở editor, nhận webhook và thực thi lịch. Vì vậy, “hosting có Node.js” chưa chắc đã đủ; hosting còn phải cho phép ứng dụng hoạt động lâu dài và chuyển tiếp domain HTTPS đến đúng tiến trình.
Nên dùng hosting khi bạn đang thử nghiệm, lượng workflow nhỏ, nhà cung cấp xác nhận hỗ trợ ứng dụng Node.js persistent và bạn chấp nhận tự kiểm tra sau mỗi lần hệ thống restart. Với workflow quan trọng, nhiều webhook, xử lý queue hoặc cần mở rộng, VPS/Docker đáng tin cậy hơn. Tài liệu chính thức của n8n về self-hosting cũng lưu ý việc tự vận hành đòi hỏi kiến thức máy chủ.
Bước 1: Kiểm tra hosting trước khi cài n8n

Mở cPanel và kiểm tra lần lượt:
- Có Setup Node.js App hoặc Application Manager.
- Có Node.js từ 20.19 đến 24.x. Đây là dải phiên bản được n8n công bố tại thời điểm cập nhật bài.
- Có Terminal/SSH và chạy được
npm install. - Có subdomain riêng, SSL hợp lệ và tiến trình không bị dừng khi bạn đóng Terminal.
Bạn có thể gửi nhà cung cấp câu hỏi này: “Gói của tôi có chạy được một ứng dụng Node.js persistent, nhận HTTPS qua subdomain và tự khởi động lại sau reboot không?”. Nếu câu trả lời không rõ ràng, không nên dùng hosting cho n8n production.
Trước khi làm: sao lưu thư mục website, database và ghi lại cấu hình DNS. Không thử trên hosting đang vận hành website quan trọng nếu chưa có điểm khôi phục.
Bước 2: Tạo subdomain và ứng dụng Node.js trong cPanel
Tạo subdomain, ví dụ n8n.example.com, sau đó cấp SSL bằng AutoSSL/Let’s Encrypt. Chờ đến khi mở subdomain bằng HTTPS không còn cảnh báo chứng chỉ.

Trong Setup Node.js App, tạo ứng dụng mới với cấu hình tham khảo:
- Node.js version: chọn bản mới nhất nằm trong dải n8n hỗ trợ, ví dụ 22.x.
- Application mode: Production.
- Application root:
n8n-app. Thư mục vật lý thường là/home/USERNAME/n8n-app. - Application URL: subdomain vừa tạo, ví dụ
n8n.example.com. - Startup file:
app.jsnếu nhà cung cấp yêu cầu file khởi động.
Nhấn Create/Deploy. Tài liệu cPanel Application Manager mô tả đúng các trường application path, domain/base URL, môi trường và biến môi trường. Nếu màn hình của bạn không có các trường này, hãy hỏi host thay vì tự đoán.
Bước 3: Cài package n8n bằng npm
Mở Terminal/SSH và chuyển vào đúng thư mục ứng dụng. Không dùng npm install -g n8n trên shared hosting vì bạn thường không có quyền global và khó kiểm soát phiên bản.

cd ~/n8n-app
npm init -y
npm install n8n
./node_modules/.bin/n8n --version
Sau khi cài, bạn phải thấy thư mục ~/n8n-app/node_modules/n8n và lệnh cuối trả về số phiên bản. Nếu gặp Unsupported engine, phiên bản Node.js đang quá cũ hoặc quá mới; quay lại Setup Node.js App và chọn bản nằm trong dải hỗ trợ.
Tạo file app.js và lưu ở đâu?
Nếu hosting dùng Passenger và bắt buộc có startup file, hãy tạo app.js ngay trong /home/USERNAME/n8n-app/app.js. Có thể dùng cPanel File Manager: mở thư mục n8n-app → + File → nhập app.js → Create New File → Edit. Nội dung wrapper tham khảo:
const { spawn } = require('child_process');
const path = require('path');
const cli = path.join(__dirname, 'node_modules', 'n8n', 'bin', 'n8n');
const child = spawn(process.execPath, [cli, 'start'], {
cwd: __dirname,
env: process.env,
stdio: 'inherit'
});
child.on('exit', (code) => process.exit(code ?? 1));
PORT.Bước 4: Cấu hình biến môi trường n8n
Trong phần Environment Variables của ứng dụng, thêm từng biến dưới đây. Thay n8n.example.com bằng domain thật của bạn:

N8N_HOST=n8n.example.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.example.com/
N8N_EDITOR_BASE_URL=https://n8n.example.com/
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
N8N_ENCRYPTION_KEY=CHUOI_NGAU_NHIEN_DAI_VA_BI_MAT
N8N_ENCRYPTION_KEY dùng để mã hóa credentials. Hãy tạo chuỗi ngẫu nhiên dài, lưu trong password manager và không chia sẻ trong ảnh chụp màn hình. Mất khóa này có thể khiến credentials đã lưu không đọc được.
Không thêm N8N_BASIC_AUTH_ACTIVE=true theo các hướng dẫn cũ. n8n hiện yêu cầu tạo tài khoản chủ sở hữu ở lần mở đầu tiên. Danh sách biến và cách khai báo được duy trì trong tài liệu biến môi trường n8n.
Bước 5: Restart và kiểm tra n8n hoạt động thật
Quay lại Setup Node.js App, nhấn Restart Application. Với cPanel Application Manager, log thường nằm trong thư mục ~/n8n-app/logs/; một số host hiển thị đường dẫn log ngay trong giao diện.

- Mở
https://n8n.example.comvà tạo tài khoản chủ sở hữu. - Tạo workflow mới, thêm node Webhook, bật test và gọi Test URL.
- Activate workflow, gọi Production URL và kiểm tra phản hồi HTTP 200.
- Restart ứng dụng thêm một lần; mở lại để chắc rằng workflow và credentials vẫn còn.
Mặc định n8n dùng SQLite, phù hợp thử nghiệm nhỏ. Nếu chạy production, nhiều workflow hoặc cần mở rộng, nên dùng PostgreSQL và chuyển sang VPS/Docker. Xem cấu hình database chính thức của n8n.
Lỗi thường gặp khi cài n8n trên hosting
Trang báo 503 hoặc Application failed to start
Mở log trong ~/n8n-app/logs/, kiểm tra đúng đường dẫn app.js, quyền đọc file và phiên bản Node.js. Nếu log cho biết ứng dụng không bind được port/socket, cơ chế Passenger của host không tương thích với cách khởi động n8n; liên hệ host hoặc chuyển VPS.
Webhook trả URL HTTP hoặc sai domain
Kiểm tra N8N_PROTOCOL=https, WEBHOOK_URL và N8N_EDITOR_BASE_URL. Cả hai URL nên kết thúc bằng dấu /, domain phải trùng chứng chỉ SSL. Restart ứng dụng sau khi sửa biến.
Ứng dụng chạy rồi tự tắt
Đây thường là giới hạn tài nguyên hoặc chính sách shared hosting. Kiểm tra CPU/RAM/I/O và hỏi host về thời gian sống của tiến trình. Không dùng cron gọi n8n mỗi phút để “giữ sống”; cách đó không bảo đảm webhook và có thể vi phạm chính sách nhà cung cấp.
Mất workflow sau khi restart
Kiểm tra thư mục dữ liệu của n8n có nằm trên vùng lưu trữ bền vững hay không, quyền ghi và biến cấu hình database. Luôn xuất workflow hoặc sao lưu database trước khi nâng phiên bản.
Cách cập nhật và hoàn tác an toàn
Trước khi cập nhật, xuất workflow quan trọng, sao lưu database và ghi lại phiên bản hiện tại:
cd ~/n8n-app
./node_modules/.bin/n8n --version
npm list n8n
Sau đó nâng trong cùng thư mục bằng npm install n8n@latest, restart và chạy lại checklist ở bước 5. Nếu lỗi, cài lại phiên bản đã ghi, ví dụ npm install n8n@2.x.x, rồi restart. Không xóa thư mục dữ liệu hoặc database khi chưa có bản sao.
Phương pháp biên soạn và nguồn kiểm chứng
Bài được biên soạn ngày 15/08/2026 bằng cách đối chiếu tài liệu chính thức của n8n về self-hosting, biến môi trường n8n và cPanel Application Manager. Những phần phụ thuộc nhà cung cấp được ghi rõ là cấu hình tham khảo, không mô tả như kết quả kiểm thử trên tài khoản của bạn.
Cách trình bày cũng bám theo hướng dẫn Helpful, Reliable, People-First Content của Google Search Central: nêu rõ ai viết, nội dung được tạo như thế nào, lý do viết, giới hạn và cách người đọc tự xác minh. Nội dung là phần diễn giải và quy trình riêng của NguyenThaiMMO, không sao chép nguyên văn tài liệu nguồn.
Câu hỏi thường gặp
Shared hosting nào cũng cài được n8n phải không?
Không. Hosting phải hỗ trợ ứng dụng Node.js chạy liên tục, npm, Terminal/SSH, reverse proxy cho subdomain và SSL. Nhiều gói shared hosting chỉ phù hợp PHP nên không đáp ứng.
Cài n8n trên hosting có miễn phí không?
Bản community self-hosted có thể dùng mà không trả phí phần mềm cho nhu cầu phù hợp, nhưng bạn vẫn trả phí hosting và tự chịu trách nhiệm vận hành, sao lưu, bảo mật, cập nhật.
Có nên dùng SQLite trên hosting?
SQLite thuận tiện để thử nghiệm nhỏ. Với hệ thống production, nhiều execution hoặc cần độ ổn định cao hơn, nên dùng PostgreSQL trên hạ tầng phù hợp.
Khi nào nên chuyển n8n sang VPS?
Hãy chuyển khi hosting không giữ tiến trình, webhook chập chờn, thiếu RAM/CPU, không kiểm soát backup hoặc cần queue/worker. VPS chạy Docker dễ bám sát tài liệu n8n và kiểm soát phiên bản hơn.
Tóm lại: cài n8n trên hosting không phải đường tắt cho mọi gói cPanel. Làm đúng là kiểm tra khả năng chạy Node.js persistent trước, tạo app và subdomain HTTPS, cài package cục bộ, khai báo URL/khóa mã hóa, rồi kiểm thử cả editor lẫn webhook sau restart.

0 GÓP Ý