Thứ Bảy , 22 Tháng mười một 2025

I. Hướng dẫn cài đặt n8n với docker compose và nginx

I. Yêu cầu trước khi bắt đầu

1. Docker và Docker compose được cài đặt trên máy:

– Docker: Công cụ để chạy container.
– Docker compose: Công cụ để quản lý nhiều container bằng YAML.

docker --version
docker-compose --version

– Nếu chưa cài, bạn có thể tham khảo hướng dẫn cài đặt Docker tại đây

2. Máy tính hoặc server có đủ tài nguyên.

– Ram tối thiểu: 2GB.
– CPU: tối thiểu 2 core.
– Dung lượng ổ cứng: 20GB+

II. Tạo dự án.

1. Tạo một thư mục để lưu trự file cấu hình và dữ liệu n8n:
mkdir n8n-docker
cd n8n-docker
2. Trong thư mục này, ta sẽ file compose.yaml để cấu hình n8n.

Tạo file compose.yaml với nội dung sau

nano compose.yaml
services:
n8n:
image: docker.n8n.io/n8nio/n8n:1.85.0
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=yourdomain.com/ #Thay thế bằng domain của bạn
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin  #Thay thế bằng user của bạn
- N8N_BASIC_AUTH_PASSWORD= PASSWORD123  #Thay thế bằng pass của bạn
- N8N_TRUSTED_PROXIES=nginx
- N8N_RUNNERS_ENABLED=true
- N8N_SECURE_COOKIE=true
- TZ=Asia/Ho_Chi_Minh
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5437
- DB_POSTGRESDB_DATABASE=database #Thay thế bằng database của bạn
- DB_POSTGRESDB_USER=POSTGRESTUSER #Thay thế bằng postgress user của bạn
- DB_POSTGRESDB_PASSWORD=PASSWORD123 #Thay thế bằng pass của bạn
- WEBHOOK_URL=https://yourdomain.com/ #Thay thế bằng domain của bạn
volumes:
- ./n8n-data:/home/node/.n8n
depends_on:
- postgres

postgres:
image: postgres:latest
restart: always
ports:
- "5432:5432" 
environment:
- POSTGRES_USER=POSTGRESTUSER #Thay thế bằng postgress user của bạn
- POSTGRES_PASSWORD=PASSWORD123
- POSTGRES_DB=database #Thay thế bằng postgress  database của bạn
- TZ=Asia/Ho_Chi_Minh
volumes:
- ./postgres-data:/var/lib/postgresql/data

nginx:
    image: nginx:latest
    restart: always
    ports:
      - "80:80"    # Cổng HTTP
      - "443:443"  # Cổng HTTPS
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf  # File cấu hình Nginx
      - ./certsn:/etc/nginx/certs            # Thư mục chứa chứng chỉ SSL
    depends_on:
      - n8n
    networks:
      - n8n-network

networks:
  n8n-network:
    driver: bridge
3. Tạo file cấu hình nginx

Trong thư mục n8n-docker ta tiến hành tạo file nginx.conf với nội dung như sau

nano nginx.conf

user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name youdomain.com;  # Thay bằng tên miền của bạn

        # Chuyển hướng tất cả HTTP sang HTTPS
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl;
        server_name youdomain.com;  # Thay bằng tên miền của bạn

        ssl_certificate /etc/nginx/certs/fullchain.pem;  # Đường dẫn đến chứng chỉ SSL
        ssl_certificate_key /etc/nginx/certs/privkey.pem;  # Đường dẫn đến khóa riêng

        location / {
            proxy_pass http://n8n:5678;  # Chuyển tiếp yêu cầu đến n8n
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade; # websocket support
            proxy_set_header Connection "Upgrade"; # websocket support
            proxy_set_header Host $host;
            chunked_transfer_encoding off;
            proxy_buffering off;
            proxy_cache off;
            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;
        }
    }
}

Sau khi đã cấu hình file compose.yaml và nginx xong ta tiến hành chạy project bằng lệnh

docker compose up -d

Sau đó kiểm tra container có chạy thành công không:

docker ps

nếu kết quả trả về như trên là đã chạy thành công.

Một số lệnh phổ biến để quản lý docker

# Start dockercompose 
Docker compose up -d
# Stop docker compose 
Docker compose down
# Restart docker compose 
Docker compose restart
# Check logs docker compose 
docker-compose logs -f

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Nội dung