Hướng Dẫn Chi Tiết Cài Đặt n8n + Postgres + Traefik + Cloudflared
n8n là một công cụ tự động hóa mạnh mẽ, cho phép tích hợp và kết nối nhiều dịch vụ. Trong hướng dẫn này, chúng ta sẽ cài đặt n8n kết hợp với cơ sở dữ liệu Postgres để lưu trữ dữ liệu, sử dụng Traefik làm reverse proxy và quản lý định tuyến, cũng như sử dụng Cloudflared để tạo đường hầm bảo mật kết nối đến Cloudflare.
Hướng dẫn này được xây dựng dựa trên nội dung của repository txq92/n8n-cloudfare và được tùy chỉnh thêm để giúp người dùng có thể triển khai trên môi trường của mình một cách dễ dàng.
1. Yêu Cầu
- Cài đặt Docker và Docker Compose.
- Tài khoản Cloudflare và cấu hình Cloudflared (cần token tunnel).
- Một tên miền (ví dụ:
n8n.yourdomain.com
) đã được cấu hình trong Cloudflare.
2. Cấu Trúc Dự Án
Dự án sẽ bao gồm các thành phần sau:
- Postgres: Cơ sở dữ liệu lưu trữ cho n8n.
- n8n: Ứng dụng tự động hóa chạy dưới dạng container.
- Traefik: Reverse proxy, định tuyến và quản lý chứng chỉ SSL thông qua Let's Encrypt.
- Cloudflared: Tạo đường hầm kết nối từ máy chủ tới Cloudflare, giúp truy cập an toàn từ bên ngoài.
3. Cấu Hình Docker Compose
Tạo file docker-compose.yml
với nội dung như sau:
version: '3'
services:
postgres:
image: postgres:13
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8n_password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8n_password
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=admin_password
- GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
depends_on:
- postgres
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.yourdomain.com`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls=true"
- "traefik.http.routers.n8n.tls.certresolver=myresolver"
networks:
- web
traefik:
image: traefik:v2.9
restart: always
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=your-email@example.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_letsencrypt:/letsencrypt
networks:
- web
cloudflared:
image: cloudflare/cloudflared:latest
restart: always
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=${CLOUDFLARED_TOKEN}
networks:
- web
volumes:
postgres_data:
traefik_letsencrypt:
networks:
web:
driver: bridge
Lưu ý:
- Thay
n8n_password
vàadmin_password
bằng mật khẩu an toàn của bạn. - Trong phần Traefik, thay
your-email@example.com
và tên miềnn8n.yourdomain.com
bằng thông tin thực tế của bạn. - Tạo file
.env
để chứa biếnCLOUDFLARED_TOKEN
lấy từ Cloudflared.

4. Cấu Hình Cloudflared
Để sử dụng Cloudflared, bạn cần:
- Đăng nhập vào tài khoản Cloudflare và tạo một tunnel mới.
- Sao chép
TUNNEL_TOKEN
vào file.env
hoặc cấu hình biến môi trường.
5. Khởi Chạy Dịch Vụ
-
Clone Repository (Tùy chọn):
git clone https://github.com/txq92/n8n-cloudfare.git
-
Điều chỉnh cấu hình:
- Chỉnh sửa file
docker-compose.yml
theo cấu hình của bạn. - Tạo file
.env
chứa biếnCLOUDFLARED_TOKEN
.
- Chỉnh sửa file
-
Chạy Docker Compose:
docker-compose up -d
-
Kiểm tra trạng thái:
docker-compose ps
6. Kiểm Tra và Truy Cập n8n
Sau khi các container được khởi chạy thành công:
-
Truy cập n8n thông qua URL:
https://n8n.yourdomain.com
(theo cấu hình Traefik). -
Đăng nhập vào giao diện n8n với tài khoản đã thiết lập (ở biến
N8N_BASIC_AUTH_USER
vàN8N_BASIC_AUTH_PASSWORD
). - Kiểm tra dashboard của Traefik qua URL mặc định (nếu bạn cấu hình) để theo dõi các route và chứng chỉ SSL.
7. Kết Luận
Với hướng dẫn này, bạn đã thiết lập thành công hệ thống n8n sử dụng Postgres làm cơ sở dữ liệu, Traefik làm reverse proxy để định tuyến và quản lý chứng chỉ SSL, cũng như Cloudflared để tạo đường hầm an toàn kết nối từ Cloudflare. Đây là một giải pháp toàn diện giúp bạn triển khai môi trường tự động hóa chuyên nghiệp với bảo mật và khả năng mở rộng cao.
Nếu có thắc mắc hoặc cần hỗ trợ thêm, hãy tham khảo tài liệu chính thức của n8n, Traefik và Cloudflared.
Nhận xét
Đăng nhận xét