Hướng dẫn: Nâng cấp version N8n
Hướng dẫn: Triển khai N8n với Docker
- --- lượt xem
Việc triển khai N8n bằng Docker mang lại nhiều lợi ích hơn so với cài đặt trực tiếp:
- Dễ triển khai: chỉ cần một lệnh
docker runhoặcdocker compose. - Tách biệt môi trường: không làm ảnh hưởng các ứng dụng khác trên máy chủ.
- Dễ backup & restore bằng volume.
- Dễ nâng cấp phiên bản N8n mà không thay đổi cấu hình hệ thống.
- Ổn định hơn khi kết hợp với PostgreSQL thay vì SQLite mặc định.
Nếu bạn đang tìm cách triển khai N8n lâu dài, Docker là lựa chọn tối ưu nhất.
Yêu cầu
- Cài đặt Docker trên máy chủ của bạn. Bạn có thể tham khảo hướng dẫn cài đặt Docker.
- Bài viết này đang sử dụng môi trường:
- Hệ điều hành: MacOS 15.6.1 (Chip M)
- Docker version: 28.5.1
Tiến hành thao tác cài đặt
- Tạo network
docker network create n8n_network
- Tạo volume
docker volume create n8n_data
docker volume create postgres_data
- Tạo PostgreSQL container
Sử dụng lệnh dưới đây để tạo một container PostgreSQL:
docker run --name postgres \
--network n8n_network \
-p 5432:5432 \
-h 127.0.0.1 \
-e POSTGRES_USER=root \
-e POSTGRES_PASSWORD=Password123 \
-v postgres_data:/var/lib/postgresql/data \
--restart unless-stopped \
-d postgres:latest
- Tạo database cho n8n
Do chúng ta sử dụng PostgreSQL làm database, nên cần tạo một database riêng cho n8n, đây là lệnh để tạo database:
docker exec -it postgres psql -U root -c "CREATE DATABASE n8n;"
Trong quá trình thực thi lệnh trên, terminal sẽ yêu cầu bạn nhập mật khẩu của user root, bạn hãy nhập Password123 (mật khẩu đã khai báo ở bước 3).
- Chạy n8n container
docker run --name n8n \
--network n8n_network \
-p 5678:5678 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=n8n \
-e DB_POSTGRESDB_HOST=postgres \
-e DB_POSTGRESDB_PORT=5432 \
-e DB_POSTGRESDB_USER=root \
-e DB_POSTGRESDB_PASSWORD=Password123 \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e GENERIC_TIMEZONE="Asia/Ho_Chi_Minh" \
-e N8N_COMMUNITY_PACKAGES_REGISTRY=https://registry.npmjs.org \
-e NODE_FUNCTION_ALLOW_EXTERNAL=moment \
-e NODE_OPTIONS="--max-old-space-size=2048" \
-e N8N_HIRING_BANNER_ENABLED=false \
-v ./data:/home/node/.n8n \
-v ./my-data:/data \
--restart unless-stopped \
docker.n8n.io/n8nio/n8n
Lưu ý:
NODE_OPTIONS="--max-old-space-size=2048"để tăng dung lượng bộ nhớ cho n8n, người dùng có thể thay đổi theo ý muốn và tùy thuộc vào cấu hình Docker và máy chủ của bạn.
Trong đó:
GENERIC_TIMEZONE="Asia/Ho_Chi_Minh"cấu hình Timezone cho N8n giúp đồng bộ thời gian cho các workflow, log hệ thống, v.v.NODE_FUNCTION_ALLOW_EXTERNAL=momentđể cho phép sử dụng thư viện moment trong n8nN8N_ENFORCE_SETTINGS_FILE_PERMISSIONSđể đảm bảo quyền truy cập vào file cấu hình n8nN8N_HIRING_BANNER_ENABLED=falseđể tắt banner quảng cáo của n8n- Phần
-vđể ánh xạ thư mục trên máy chủ với thư mục trong container Docker:./datalà thư mục chứa dữ liệu hệ thống của n8n./my-datalà thư mục chứa dữ liệu mà n8n sẽ sử dụng, người dùng có thể thay đổi theo ý muốn
- Tham khảo thêm Environment Variables Overview | n8n Docs
Kiểm tra container sau khi cài đặt
Sau khi chạy cả hai container PostgreSQL và N8n, bạn có thể kiểm tra trạng thái:
docker ps
Kiểm tra log của N8n:
docker logs -f n8n
Nếu mọi thứ chính xác, bạn sẽ thấy log thông báo N8n đã khởi động thành công.
Truy cập N8n tại http://localhost:5678
Backup và Restore N8n
Ở phần này tôi sẽ có bài viết hướng dẫn chi tiết về cách backup và restore N8n sử dụng Docker, tam thời tôi sẽ hướng dẫn bạn cách backup và restore đơn giản thông qua việc sao chép thư mục dữ liệu.
-
Backup N8n
docker stop n8n tar -czvf n8n-backup.tar.gz ./data ./my-data docker start n8n -
Restore
docker stop n8n tar -xzvf n8n-backup.tar.gz docker start n8n