Tự host và cài n8n trên VPS Ubuntu mang lại cho bạn toàn quyền kiểm soát, bảo mật dữ liệu và khả năng tùy biến cao. Hướng dẫn này sẽ chỉ bạn cách cài đặt n8n một cách hiệu quả và an toàn bằng Docker và Docker Compose, cùng với việc cấu hình Nginx làm reverse proxy và SSL từ Let’s Encrypt.
Những điểm chính
- Chuẩn bị môi trường VPS: Hiểu rõ các yêu cầu cơ bản về VPS để đảm bảo n8n hoạt động ổn định, bao gồm tài nguyên hệ thống và bước cập nhật hệ thống trước khi triển khai.
- Cài đặt Docker và Docker Compose: Nắm vững cách cài đặt Docker Engine và Docker Compose dưới dạng plugin chính thức, làm nền tảng cho việc triển khai ứng dụng container hoá.
- Triển khai n8n với Docker Compose: Học cách cấu hình file docker-compose.yml, khởi tạo thư mục làm việc, và chạy n8n một cách tự động hóa qua Docker Compose.
- Cấu hình Reverse Proxy với Nginx và SSL (HTTPS): Biết cách cài đặt và cấu hình Nginx làm reverse proxy, đồng thời tích hợp chứng chỉ SSL miễn phí từ Let’s Encrypt để bảo vệ kết nối an toàn.
Chuẩn bị môi trường VPS
Yêu cầu VPS trước khi cài n8n trên VPS Ubuntu
- Hệ điều hành: Ubuntu 22.04 LTS (hoặc 20.04 LTS, 24.04 LTS).
- CPU: Tối thiểu 1 vCPU (khuyến nghị 2 vCPU trở lên cho hiệu suất tốt hơn).
- RAM: Tối thiểu 2GB (khuyến nghị 4GB trở lên cho các workflow phức tạp).
- Ổ cứng: Tối thiểu 20GB SSD.
- Quyền truy cập: Root hoặc người dùng có quyền sudo.
- Tên miền (Domain): Đã trỏ về địa chỉ IP public của VPS (cần thiết cho HTTPS).
- Thời gian ước tính: 30-60 phút
- Đối tượng: Người dùng có kiến thức cơ bản về VPS và dòng lệnh Linux.
Cập nhật hệ thống
Bạn cần kết nối vào VPS qua SSH và chạy lệnh sau để đảm bảo hệ thống được cập nhật:
sudo apt update && sudo apt upgrade -y

Cài đặt Docker và Docker Compose
n8n được khuyến nghị cài đặt qua Docker để dễ dàng quản lý và nâng cấp.
Cài đặt Docker Engine
Bước 1: Đầu tiên, bạn cần gỡ cài đặt các phiên bản Docker cũ (nếu có) bằng cách chạy lệnh sau:
sudo apt remove docker docker-engine docker.io containerd runc -y

Bước 2: Bạn sử dụng lệnh sau để cài đặt các gói cần thiết:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y

Bước 3: Tiếp theo, để thêm khóa GPG chính thức của Docker bạn chạy lệnh sau:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Bước 4: Bạn có thể chạy lệnh sau để thêm kho lưu trữ Docker vào APT sources:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >

Bước 5: Tiếp đến bạn cần cài đặt Docker Engine với lệnh sau:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Bước 6: Cuối cùng, bạn cần kiểm tra phiên bản Docker hiện tại:
docker --version

Kiểm tra Docker Compose (Plugin)
Giờ đây Docker Compose hiện là một plugin của Docker CLI.
docker compose version

Việc tự triển khai n8n bằng Docker giúp bạn kiểm soát hoàn toàn hệ thống, tối ưu bảo mật và linh hoạt trong cấu hình. Tuy nhiên, để n8n hoạt động ổn định và xử lý các workflow mượt mà, bạn cần một hạ tầng VPS đủ mạnh và đáng tin cậy. Với dịch vụ VPS N8N chuyên biệt tại Vietnix – được thiết kế tối ưu cho các nền tảng tự động hóa như n8n. Với CPU hiệu năng cao, ổ cứng SSD RAID 10, uptime 99.9% và đội ngũ hỗ trợ kỹ thuật 24/7, Vietnix là lựa chọn lý tưởng giúp bạn triển khai và vận hành n8n hiệu quả, ổn định và tiết kiệm chi phí.
Triển Khai n8n với Docker Compose
Bước 1: Tạo thư mục và File cấu hình cho n8n
Đầu tiên, bạn cần tạo một thư mục để lưu trữ file cấu hình và dữ liệu của n8n:
mkdir ~/n8n_stack && cd ~/n8n_stack

Tiếp theo, tạo file docker-compose.yml
bằng trình soạn thảo văn bản (ví dụ vim), bạn sử dụng lệnh sau:
vim docker-compose.yml
Bước 2: Thêm nội dung file docker-compose.yml
Ở bước này, bạn sao chép và dán nội dung sau vào file docker-compose.yml
:
services:
init_n8n_permissions:
image: alpine:latest
command: ["sh", "-c", "chown -R 1000:1000 /data"]
volumes:
- ./n8n-data:/data
entrypoint: ["sh", "-c", "chown -R 1000:1000 /data"]
restart: "no"
postgres:
image: postgres:latest
container_name: postgres_n8n_docker
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8npassword
- POSTGRES_DB=n8ndb
volumes:
- ./postgres-data:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
container_name: n8n_docker
restart: always
depends_on:
- postgres
- init_n8n_permissions
ports:
- "127.0.0.1:5678:5678"
user: "1000:1000"
environment:
- N8N_BASIC_AUTH_ACTIVE=false
- N8N_HOST=n8n2.vietnix.tech
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n2.vietnix.tech/
- N8N_RUNNERS_ENABLED=true
- GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8ndb
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8npassword
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
volumes:
- ./n8n-data:/home/node/.n8n
- ./local_files:/files
Giải thích một số điểm quan trọng:
Biến môi trường | Mô tả & ý nghĩa |
---|---|
DB_POSTGRESDB_DATABASE | Tên database n8n sẽ sử dụng. |
DB_POSTGRESDB_USER | Username dùng để kết nối tới database. |
DB_POSTGRESDB_PASSWORD | Mật khẩu tương ứng với user trên. |
N8N_HOST | Domain hoặc IP truy cập vào n8n từ bên ngoài. Quan trọng để cấu hình cookie, webhook,… |
WEBHOOK_URL | URL webhook đầy đủ (gồm https://…). Dùng để n8n sinh các webhook chính xác |
GENERIC_TIMEZONE | Múi giờ mặc định cho workflow (ảnh hưởng đến schedule, logs, cron). VD: Asia/Ho_Chi_Minh . |
POSTGRES_USER | Username dùng để kết nối tới database. |
POSTGRES_PASSWORD | Mật khẩu tương ứng với user trên. |
POSTGRES_DB | Tên database n8n sẽ sử dụng. |
Lưu ý
Để đảm bảo hệ thống n8n an toàn, hoạt động đúng trong môi trường thực tế, bạn hãy thay đổi các thông tin trên.
Bước 3: Khởi chạy n8n
Từ bên trong thư mục ~/n8n_stack
(nơi chứa file docker-compose.yml
), bạn chạy lệnh:
docker compose up -d

Cấu Hình Reverse Proxy với Nginx và SSL (HTTPS)
Để truy cập n8n qua tên miền với HTTPS, chúng ta sẽ dùng Nginx làm reverse proxy và Certbot để lấy chứng chỉ SSL miễn phí từ Let’s Encrypt.
Bước 1: Cài Đặt Nginx và Certbot (Let’s Encrypt)
sudo apt install nginx certbot python3-certbot-nginx -y

Bước 2: Cấu hình Nginx
Bước đầu, bạn cần tạo file cấu hình Nginx cho n8n (thay n8n2.vietnix.tech
bằng tên miền của bạn):
vim /etc/nginx/sites-available/n8n2.vietnix.tech
Bước tiếp theo, bạn sẽ dán nội dung sau vào file, nhớ thay n8n2.vietnix.tech
bằng tên miền thực của bạn, khi đã nhập xong bạn lưu và đóng file lại.
server {
listen 80;
server_name n8n2.vietnix.tech;
access_log /var/log/nginx/n8n2.vietnix.tech.access.log;
error_log /var/log/nginx/n8n2.vietnix.tech.error.log;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
# proxy_cache off;
}
}
Tiếp đến, cần kích hoạt file cấu hình bằng cách tạo symbolic link và kiểm tra cú pháp Nginx, thực hiện bằng cách bạn nhập lần lượt các câu lệnh sau:
sudo ln -s /etc/nginx/sites-available/n8n2.vietnix.tech /etc/nginx/sites-enabled/
nginx -t
Sau đó, bạn cần khởi động lại Nginx và chạy Certbot để lấy và cài đặt chứng chỉ SSL (thay n8n2.vietnix.tech):
systemctl restart nginx
sudo certbot --nginx -d n8n2.vietnix.tech

Certbot sẽ hỏi bạn các câu như sau:
- Email: Nhập email của bạn (dùng để nhận thông báo hết hạn và các vấn đề bảo mật).
- Terms of Service: Đồng ý với điều khoản (A).
- Share email: Có thể chọn Y hoặc N.
Sau khi thành công, Certbot sẽ tự động cấu hình Nginx để sử dụng SSL và tự động gia hạn chứng chỉ. Để kiểm tra trạng thái tự động gia hạn, bạn nhập lệnh sau:
sudo systemctl status certbot.timer

Vietnix – Nhà cung cấp dịch vụ VPS toàn diện, tối ưu chi phí và an toàn dữ liệu
Dịch vụ thuê VPS tại Vietnix là một giải pháp hạ tầng ổn định, bảo mật và hiệu năng cao cho các dự án web, hệ thống tự động hóa hoặc ứng dụng doanh nghiệp. Toàn bộ máy chủ sử dụng ổ cứng SSD RAID 10 và CPU mạnh mẽ, giúp xử lý tác vụ nhanh chóng, kể cả với khối lượng công việc lớn. Hệ thống hoạt động trên nền tảng ảo hóa tối ưu, đảm bảo hiệu suất ổn định và khả năng mở rộng linh hoạt khi cần thiết. Bên cạnh đó, Vietnix cam kết uptime lên đến 99.9% và cho phép toàn quyền kiểm soát tài nguyên – giúp bạn yên tâm triển khai và vận hành bất kỳ dự án nào.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Việc cài đặt n8n trên VPS Ubuntu bằng Docker không chỉ giúp bạn chủ động kiểm soát hệ thống mà còn đảm bảo hiệu suất, tính ổn định và khả năng mở rộng cao. Chỉ với vài bước cấu hình, bạn đã có thể triển khai một nền tảng tự động hóa mạnh mẽ, sẵn sàng phục vụ các workflow từ đơn giản đến phức tạp. Đừng quên thường xuyên sao lưu và cập nhật để hệ thống luôn an toàn và hoạt động trơn tru.