How Can We Help?
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