Tự động hóa quy trình làm việc giúp tiết kiệm thời gian và nâng cao hiệu suất đáng kể. Bài viết này cung cấp hướng dẫn toàn diện các bước cài đặt n8n trên VPS Ubuntu, từ lựa chọn phương pháp phù hợp như sử dụng VPS của InterData với OS tích hợp sẵn, đến cài đặt thủ công qua Docker hoặc Node.js, cùng các cấu hình bảo mật thiết yếu sau đó.
n8n là gì? Lợi ích khi tự host trên VPS Ubuntu
n8n là một công cụ tự động hóa quy trình làm việc (workflow automation) mã nguồn mở. Công cụ này cho phép bạn kết nối các ứng dụng khác nhau và tự động hóa các tác vụ mà không cần viết mã phức tạp. n8n giúp liên kết hàng trăm ứng dụng web và dịch vụ để tạo ra các luồng công việc tùy chỉnh.
Việc tự host n8n trên một máy chủ riêng ảo (Virtual Private Server – VPS) chạy hệ điều hành Ubuntu mang lại nhiều lợi thế. Bạn có toàn quyền kiểm soát dữ liệu của mình, đảm bảo tính riêng tư và bảo mật. Đồng thời, bạn có thể tùy chỉnh cấu hình n8n theo nhu cầu cụ thể và thường tiết kiệm chi phí so với các giải pháp SaaS (Software as a Service) thương mại.
Cách 1: Cài đặt n8n trên VPS Ubuntu đơn giản tại InterData
Đối với người dùng tìm kiếm sự tiện lợi và nhanh chóng, InterData cung cấp giải pháp VPS n8n được tối ưu sẵn. Dịch vụ này cho phép cài đặt n8n chỉ với một cú nhấp chuột nhờ vào bản OS Ubuntu đã tích hợp sẵn n8n.
Bạn sẽ được trải nghiệm hiệu năng vượt trội với cấu hình cao cấp sử dụng chip AMD Epyc / Intel Platinum (tùy gói), ổ cứng SSD NVMe U.2 tốc độ cao, băng thông không giới hạn và port speed lên đến 10Gbps, tất cả với mức giá hợp lý và độ ổn định cao.
Giải pháp này đặc biệt phù hợp nếu bạn muốn tập trung vào việc sử dụng n8n thay vì tốn thời gian vào các bước cài đặt kỹ thuật phức tạp.
Bước 1: Truy cập và đăng nhập vào portal support.interdata.vn
Để bắt đầu, hãy truy cập vào trang quản lý dịch vụ của InterData tại địa chỉ support.interdata.vn. Sử dụng thông tin đăng nhập đã được cung cấp để vào tài khoản của bạn.
Bước 2: Đăng ký dịch vụ VPS và chọn gói phù hợp
Trong giao diện quản lý, tìm đến mục “Đăng ký dịch vụ” trên thanh menu. Tại đây, InterData cung cấp nhiều gói VPS với các cấu hình khác nhau.
Hãy xem xét nhu cầu sử dụng n8n của bạn để chọn gói VPS có tài nguyên CPU, RAM và dung lượng lưu trữ phù hợp.
Bước 3: Chọn hệ điều hành ubuntu-22.04-n8n khi thiết lập VPS
Đây là bước quan trọng để đơn giản hóa quá trình cài đặt. Khi được yêu cầu chọn hệ điều hành cho VPS, bạn hãy tìm và chọn tùy chọn ubuntu-22.04-n8n. Template OS này đã được InterData cấu hình sẵn với n8n, giúp bạn bỏ qua nhiều bước cài đặt thủ công.
Bước 4: Hoàn tất thanh toán và nhận thông tin truy cập n8n
Sau khi đã chọn gói VPS và hệ điều hành, bạn tiến hành các bước thanh toán theo hướng dẫn. Khi giao dịch hoàn tất thành công, InterData sẽ tự động khởi tạo VPS và gửi thông tin chi tiết qua email cho bạn. Email này sẽ bao gồm đường dẫn truy cập trực tiếp vào n8n với một subdomain miễn phí, cùng với thông tin đăng nhập VPS.
Cách 2: Cài đặt n8n trên VPS Ubuntu thủ công
Phương pháp cài đặt thủ công mang lại sự linh hoạt tối đa và cho phép bạn tùy chỉnh sâu hơn môi trường n8n. Cách này phù hợp nếu bạn đã có kinh nghiệm quản trị VPS hoặc muốn hiểu rõ hơn về các thành phần cấu thành hệ thống.
Có hai hướng tiếp cận chính khi cài đặt thủ công: sử dụng Node.js và trình quản lý tiến trình PM2, hoặc triển khai n8n thông qua Docker.
Cập nhật hệ thống và cài đặt các gói phụ thuộc cơ bản
Trước khi cài đặt bất kỳ phần mềm nào, việc cập nhật hệ thống là rất quan trọng. Mở terminal của VPS và chạy các lệnh sau để cập nhật danh sách gói và nâng cấp các gói hiện có: sudo apt update
sudo apt upgrade -y
Một số gói tiện ích cơ bản có thể cần thiết trong quá trình cài đặt và quản lý sau này. Cài đặt chúng bằng lệnh: sudo apt install curl wget git nano -y
curl
và wget
dùng để tải file từ internet, git
để quản lý mã nguồn (nếu cần), và nano
là một trình soạn thảo văn bản đơn giản trên terminal.
Cài đặt Node.js và npm
n8n được xây dựng trên nền tảng Node.js, do đó bạn cần cài đặt Node.js và npm (Node Package Manager – Trình quản lý gói Node). Nên sử dụng phiên bản Node.js LTS (Long-Term Support – Hỗ trợ dài hạn) được n8n khuyến nghị để đảm bảo tính tương thích và ổn định.
Một cách phổ biến để quản lý nhiều phiên bản Node.js là sử dụng NVM (Node Version Manager). Cài đặt NVM bằng lệnh:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Lưu ý: Kiểm tra trang GitHub của NVM để có lệnh cài đặt phiên bản mới nhất). Sau đó, tải lại cấu hình shell:
source ~/.bashrc
hoặc source ~/.zshrc
(tùy thuộc vào shell bạn đang dùng).
Cài đặt phiên bản Node.js LTS (ví dụ, phiên bản 18.x tại thời điểm viết bài): nvm install 18
nvm use 18
nvm alias default 18
Xác minh cài đặt: node -v
npm -v
Cài đặt n8n bằng npm
Khi Node.js và npm đã sẵn sàng, bạn có thể cài đặt n8n toàn cục bằng npm với lệnh sau: sudo npm install -g n8n
Cờ -g
chỉ định rằng gói n8n sẽ được cài đặt toàn cục, cho phép bạn chạy n8n từ bất kỳ đâu trong hệ thống. Quá trình cài đặt có thể mất vài phút.
Cấu hình n8n chạy với PM2
Để n8n chạy ổn định dưới dạng một dịch vụ nền, tự khởi động lại khi gặp lỗi và khởi động cùng hệ thống, bạn nên sử dụng một trình quản lý tiến trình như PM2. PM2 là một trình quản lý tiến trình phổ biến cho các ứng dụng Node.js.
Cài đặt PM2 toàn cục bằng npm: sudo npm install -g pm2
Sau khi cài đặt PM2, khởi động n8n bằng PM2: pm2 start n8n
Để PM2 tự động khởi động các ứng dụng khi VPS reboot, chạy lệnh sau và làm theo hướng dẫn trên màn hình: pm2 startup systemd
Lệnh này sẽ tạo ra một service unit systemd cho PM2.
Lưu cấu hình tiến trình hiện tại của PM2: pm2 save
Bạn có thể kiểm tra trạng thái của n8n bằng lệnh pm2 list
hoặc pm2 monit
.
Cài đặt n8n với Docker và Docker Compose
Docker cung cấp một phương pháp đóng gói và triển khai ứng dụng trong các container biệt lập, giúp việc quản lý và nâng cấp trở nên dễ dàng hơn. Docker Compose cho phép bạn định nghĩa và chạy các ứng dụng Docker đa container.
Cài đặt Docker và Docker Compose trên Ubuntu
Đầu tiên, gỡ cài đặt các phiên bản Docker cũ (nếu có): for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
Cài đặt các gói cần thiết để thêm kho lưu trữ Docker: sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Thêm kho lưu trữ Docker vào danh sách nguồn của APT: echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Cài đặt Docker Engine, CLI, Containerd và Docker Compose: sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Kiểm tra cài đặt Docker: sudo docker run hello-world
Thêm người dùng hiện tại vào nhóm docker
để chạy lệnh docker mà không cần sudo
(cần đăng xuất và đăng nhập lại hoặc mở terminal mới để thay đổi có hiệu lực): sudo usermod -aG docker ${USER}
newgrp docker
(áp dụng ngay cho session hiện tại)
Tạo file docker-compose.yml cho n8n
Tạo một thư mục mới cho cấu hình n8n, ví dụ ~/n8n-docker
: mkdir ~/n8n-docker
cd ~/n8n-docker
Tạo một file tên là docker-compose.yml
bằng trình soạn thảo nano
: nano docker-compose.yml
Dán nội dung sau vào file (đây là một ví dụ cơ bản, bạn có thể tùy chỉnh thêm):
YAML
version: '3.7'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678" # Chỉ cho phép truy cập từ localhost ban đầu
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE} # Ví dụ: Europe/Berlin hoặc Asia/Ho_Chi_Minh
volumes:
- ./n8n_data:/home/node/.n8n
# user: "node" # Bỏ comment nếu chạy trên Linux để tránh vấn đề permission, hoặc sử dụng UID/GID
# networks:
# - n8n-network
# volumes:
# n8n_data:
# networks:
# n8n-network:
Trong file trên, bạn cần thay thế ${SUBDOMAIN}
, ${DOMAIN_NAME}
, và ${GENERIC_TIMEZONE}
bằng các giá trị thực tế của bạn (ví dụ: n8n
, example.com
, Asia/Ho_Chi_Minh
). Mục volumes
để lưu trữ dữ liệu n8n bền vững, ngay cả khi container bị xóa và tạo lại. Dòng ports
ánh xạ port 5678 của container n8n ra port 5678 trên localhost của VPS. Điều này tăng cường bảo mật ban đầu, chỉ cho phép truy cập nội bộ trước khi cấu hình reverse proxy.
Lưu file và thoát (Ctrl+X
, sau đó Y
, rồi Enter
).
Khởi chạy n8n với Docker Compose
Trong thư mục ~/n8n-docker
(chứa file docker-compose.yml
), chạy lệnh: docker-compose up -d
Cờ -d
(detached mode) để container chạy ngầm.
Kiểm tra trạng thái container: docker-compose ps
Xem log của container n8n: docker-compose logs -f n8n
Cấu hình sau cài đặt để n8n hoạt động tối ưu và bảo mật
Sau khi n8n đã được cài đặt và chạy, có một số bước cấu hình quan trọng cần thực hiện để đảm bảo n8n hoạt động ổn định, an toàn và có thể truy cập dễ dàng.
Truy cập n8n lần đầu qua địa chỉ IP và port
Nếu bạn cài đặt thủ công (bằng npm hoặc Docker mà chưa cấu hình reverse proxy), n8n thường sẽ chạy trên port 5678
. Bạn có thể truy cập giao diện web của n8n bằng cách mở trình duyệt và nhập http://your_server_ip:5678
(thay your_server_ip
bằng địa chỉ IP thực của VPS).
Nếu bạn sử dụng Docker với cấu hình ports: - "127.0.0.1:5678:5678"
, bạn chưa thể truy cập từ bên ngoài. Đây là bước chuẩn bị cho cấu hình reverse proxy.
Cấu hình Reverse Proxy với Nginx (Truy cập qua tên miền)
Sử dụng reverse proxy như Nginx cho phép bạn truy cập n8n qua tên miền (ví dụ: n8n.yourdomain.com
) thay vì địa chỉ IP và port. Nginx cũng giúp quản lý SSL và cân bằng tải (nếu cần).
Cài đặt Nginx: sudo apt update
sudo apt install nginx -y
Tạo một file cấu hình server block mới cho n8n trong thư mục /etc/nginx/sites-available/
. Ví dụ, tạo file n8n.conf
: sudo nano /etc/nginx/sites-available/n8n.conf
Dán nội dung cấu hình sau (thay n8n.yourdomain.com
bằng tên miền của bạn):
Nginx
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://localhost:5678; # Hoặc IP của container Docker nếu cần
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Nếu dùng Docker, proxy_pass
sẽ là http://localhost:5678
nếu bạn đã map port của container ra localhost của VPS.
Kích hoạt file cấu hình bằng cách tạo symbolic link đến thư mục sites-enabled
: sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
Kiểm tra cú pháp cấu hình Nginx: sudo nginx -t
Nếu không có lỗi, khởi động lại Nginx: sudo systemctl restart nginx
Cho phép Nginx qua firewall (nếu UFW đang hoạt động): sudo ufw allow 'Nginx Full'
Bảo mật n8n với SSL/TLS sử dụng Let’s Encrypt (HTTPS)
Sử dụng HTTPS là cực kỳ quan trọng để mã hóa lưu lượng truy cập giữa người dùng và n8n. Let’s Encrypt cung cấp chứng chỉ SSL/TLS miễn phí.
Cài đặt Certbot, công cụ của Let’s Encrypt, và plugin Nginx cho Certbot: sudo apt install certbot python3-certbot-nginx -y
Yêu cầu và tự động cấu hình chứng chỉ SSL cho tên miền của bạn: sudo certbot --nginx -d n8n.yourdomain.com
(Thay n8n.yourdomain.com
bằng tên miền của bạn). Certbot sẽ hỏi bạn một số thông tin (email, đồng ý điều khoản) và tùy chọn chuyển hướng HTTP sang HTTPS. Chọn chuyển hướng để tăng cường bảo mật.
Certbot sẽ tự động gia hạn chứng chỉ. Bạn có thể kiểm tra việc gia hạn tự động bằng lệnh: sudo certbot renew --dry-run
Sau khi hoàn tất, bạn có thể truy cập n8n an toàn qua https://n8n.yourdomain.com
.
Các thiết lập cơ bản trong giao diện n8n
Khi truy cập n8n lần đầu qua tên miền đã được bảo mật HTTPS, bạn sẽ cần tạo một tài khoản quản trị (owner account). Điền thông tin cần thiết và ghi nhớ mật khẩu này.
Trong giao diện n8n, bạn có thể khám phá các cài đặt chung. Các mục như múi giờ (Timezone
) nên được thiết lập phù hợp với vị trí của bạn để các tác vụ liên quan đến thời gian hoạt động chính xác.
Xử lý một số lỗi thường gặp khi cài đặt n8n trên Ubuntu
Trong quá trình cài đặt, bạn có thể gặp một số vấn đề. Dưới đây là các lỗi phổ biến và cách khắc phục nhanh.
- Lỗi Port bị chiếm dụng: Nếu n8n (port 5678) hoặc Nginx (port 80, 443) không khởi động được do port đã được sử dụng, dùng lệnh
sudo lsof -i :PORT_NUMBER
hoặcsudo netstat -tulnp | grep PORT_NUMBER
để tìm tiến trình đang chiếm port và dừng tiến trình đó hoặc đổi port cho n8n/Nginx. - Lỗi phân quyền (Permission Denied): Khi chạy các lệnh
npm install -g
hoặc thao tác với Docker, nếu gặp lỗi phân quyền, hãy đảm bảo bạn đã sử dụngsudo
đúng cách. Với Docker, việc thêm user vào groupdocker
sẽ giúp chạy lệnh không cầnsudo
. - Vấn đề phiên bản Node.js: n8n yêu cầu phiên bản Node.js cụ thể. Nếu cài sai phiên bản, n8n có thể không chạy. Sử dụng NVM để dễ dàng chuyển đổi giữa các phiên bản Node.js.
- Lỗi cấu hình Nginx: Sau khi sửa file cấu hình Nginx, luôn chạy
sudo nginx -t
để kiểm tra. Lỗi cú pháp sẽ được chỉ ra, giúp bạn sửa chữa trước khi khởi động lại Nginx. Log lỗi của Nginx thường nằm ở/var/log/nginx/error.log
. - Webhook không hoạt động sau khi thiết lập reverse proxy: Đảm bảo biến môi trường
WEBHOOK_URL
(trong filedocker-compose.yml
hoặc biến môi trường khi chạy bằng PM2) được đặt đúng thành URL công khai của bạn (ví dụ:https://n8n.yourdomain.com/
).
Mẹo và lưu ý quan trọng khi sử dụng n8n trên VPS
Để n8n hoạt động hiệu quả và an toàn lâu dài trên VPS, hãy lưu ý một số điểm sau.
- Sao lưu dữ liệu n8n thường xuyên: Dữ liệu workflows và credentials rất quan trọng. Nếu cài bằng npm, thư mục dữ liệu mặc định là
~/.n8n
. Nếu dùng Docker, đó là volume bạn đã map (ví dụ~/n8n-docker/n8n_data
). Thiết lập cơ chế sao lưu tự động cho các thư mục này. - Cập nhật n8n lên phiên bản mới: Theo dõi các bản phát hành mới của n8n để nhận các tính năng mới và bản vá bảo mật. Quy trình cập nhật sẽ khác nhau tùy thuộc vào cách bạn cài đặt (npm hoặc Docker). Luôn sao lưu trước khi cập nhật.
- Theo dõi tài nguyên VPS: Sử dụng các công cụ như
htop
,vmstat
để theo dõi việc sử dụng CPU, RAM, dung lượng đĩa của VPS. Nếu n8n xử lý nhiều workflows phức tạp, bạn có thể cần nâng cấp tài nguyên VPS. - Bảo mật VPS: Ngoài SSL cho n8n, hãy áp dụng các biện pháp bảo mật chung cho VPS Ubuntu như sử dụng mật khẩu mạnh, cập nhật hệ điều hành thường xuyên, cấu hình firewall (UFW), và có thể cài đặt Fail2ban để chống brute-force attack.
Những điều bạn có thể làm sau khi cài đặt
Việc cài đặt thành công n8n trên VPS Ubuntu mở ra vô vàn khả năng tự động hóa. Bạn đã có một nền tảng mạnh mẽ để kết nối các ứng dụng và dịch vụ, tối ưu hóa công việc hàng ngày. Hãy bắt đầu bằng việc khám phá giao diện n8n, tìm hiểu cách tạo workflow đầu tiên, kết nối các ứng dụng bạn thường dùng. Cộng đồng n8n rất lớn, bạn có thể tìm thấy nhiều ví dụ và nguồn cảm hứng từ đó.
Nếu có bất kỳ thắc mắc nào trong quá trình cài đặt hoặc sử dụng, đừng ngần ngại đặt câu hỏi hoặc tìm kiếm sự hỗ trợ từ các diễn đàn cộng đồng. Chúc bạn thành công với n8n!