n8n là một công cụ tuyệt vời giúp bạn kết nối các dịch vụ với nhau để xây dựng quy trình tự động hóa mạnh mẽ mà không cần viết quá nhiều mã. Trong bài viết này, CloudFly sẽ hướng dẫn bạn cách cài đặt n8n trên VPS Ubuntu sử dụng Docker để đảm bảo tính ổn định, bảo mật và dễ quản lý. Hãy cùng theo dõi!
Trước khi bắt đầu cài đặt n8n, bạn cần chuẩn bị một môi trường VPS phù hợp và đảm bảo hệ thống đáp ứng các điều kiện sau:
Nếu chưa có máy chủ, bạn có thể đăng ký dịch vụ Cloud Server tùy chỉnh cấu hình tại CloudFly. Máy chủ có cấu hình 2-4-40 có giá chỉ 470đ/giờ (tương đương với 308.000đ/tháng).
Dịch vụ máy chủ ảo tại CloudFly được trang bị cấu hình cao với CPU Intel Xeon V4/Intel Xeon Gold/Platinum Gen 2 và ổ cứng Enterprise SSD/Enterprise NVMe siêu siêu nhanh. Nhờ đó mang lại tốc độ vượt trội, giúp website tải nhanh, xử lý mượt mà và hạn chế tình trạng lag chậm. Không chỉ vậy, băng thông rộng và kết nối ổn định giúp hệ thống hoạt động tốt ngay cả khi có nhiều người truy cập cùng lúc. Bạn có thể tham khảo thêm bảng giá Cloud Server với các gói cấu hình đa dạng, phù hợp với mọi nhu cầu sử dụng của cá nhân hay doanh nghiệp.
Nếu bạn đang sử dụng Ubuntu và muốn cài đặt n8n trên VPS, hãy theo dõi các bước hướng dẫn chi tiết dưới đây:
Docker là công cụ chính giúp bạn chạy n8n dưới dạng container. Trên Ubuntu, bạn có thể làm theo các lệnh sau:
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
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 > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Tiếp theo, bạn cần cài đặt Docker Compose để dễ dàng quản lý các container:
sudo apt-get install docker-compose-plugin
Nếu bạn dùng tên miền riêng, hãy trỏ tên miền phụ đến IP của VPS bằng bản ghi A như sau:
Bạn tạo một tệp docker-compose.yml trong thư mục làm việc và dán nội dung sau:
version: "3.7"
services:
traefik:
image: "traefik"
restart: always
command:
- "--api=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
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}
volumes:
- n8n_data:/home/node/.n8n
- /local-files:/files
volumes:
traefik_data:
external: true
n8n_data:
external: true
Bạn tạo một file .env cùng thư mục với docker-compose.yml và thêm các biến môi trường như sau:
DOMAIN_NAME=shost.vn
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
N8N_DEFAULT_BINARY_DATA_MODE=filesystem
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
SSL_EMAIL=admin@shost.vn
Bạn tạo hai volume để lưu trữ dữ liệu của n8n và Traefik:
sudo docker volume create n8n_data
sudo docker volume create traefik_data
Sau khi hoàn tất các bước trên, bạn có thể khởi chạy n8n với lệnh:
sudo docker compose up -d
Để dừng container, bạn chạy lệnh:
sudo docker compose stop
Để cập nhật container, bạn chạy lệnh:
sudo docker compose pull
Hy vọng bài viết trên trên đã giúp bạn hiểu rõ hơn về hướng dẫn cách cài đặt n8n trên VPS Ubuntu. Nếu còn thắc mắc hay muốn đăng ký Cloud Server tại CloudFly, hãy liên hệ ngay với chúng tôi qua thông tin bên dưới để được tư vấn và hỗ trợ chi tiết. Đội ngũ kỹ thuật có chuyên môn cao luôn sẵn sàng 24/7 để giải quyết mọi vấn đề của bạn.
THÔNG TIN LIÊN HỆ: