Xin chào mọi người! Hôm nay mình sẽ chia sẻ một hướng dẫn chi tiết để cài đặt và chạy n8n – một công cụ tự động hóa workflow mạnh mẽ – cùng với cơ sở dữ liệu PostgreSQL trên Windows 11, sử dụng Docker. Sau khi hoàn thành, bạn sẽ có thể tạo các workflow tự động qua giao diện web của n8n và quản lý dữ liệu với pgAdmin. Hãy bắt đầu nào!
Dự án này dành cho ai?
- Bạn muốn tìm hiểu về tự động hóa quy trình với n8n.
- Bạn đang dùng Windows 11 và muốn thiết lập môi trường với Docker.
- Bạn cần một cơ sở dữ liệu bền vững (PostgreSQL) để lưu trữ dữ liệu từ n8n.
Những gì bạn cần chuẩn bị
- Máy tính chạy Windows 11.
- Kết nối Internet để tải các công cụ cần thiết.
- Một chút kiên nhẫn để làm quen với Docker và n8n!
Các bước thực hiện
Bước 1: Bật WSL trên Windows 11
Để chạy Docker mượt mà trên Windows 11, chúng ta cần bật Windows Subsystem for Linux (WSL). Đây là cách làm:
1. Mở PowerShell hoặc Command Prompt với quyền Administrator (nhấn chuột phải và chọn “Run as administrator”).
Chạy lệnh:
wsl --install
3. Máy sẽ yêu cầu khởi động lại – hãy làm theo.
Bước 2: Cài đặt Docker Desktop
Docker là công cụ giúp chúng ta chạy n8n và PostgreSQL trong các container. Hãy cài đặt nó:
- Tải Docker Desktop từ trang chính thức.
- Cài đặt và chọn tích hợp với WSL 2 trong quá trình cài.
- Khởi động Docker Desktop – bạn sẽ thấy biểu tượng ở thanh taskbar.
- Mở terminal và kiểm tra phiên bản Docker: Nếu thấy phiên bản hiện ra, bạn đã sẵn sàng!
docker --version

Bước 3: Chuẩn bị file docker-compose.yml
Bây giờ, chúng ta cần một file cấu hình để chạy n8n và PostgreSQL cùng lúc. File này được gọi là docker-compose.yml.
1- Tạo một thư mục, ví dụ: docker-n8n-postgres-setup.
2- Tạo file docker-compose.yml trong thư mục đó và dán nội dung sau:
version: "3.8"
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=mypassword
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8ndatabase
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8npassword
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
depends_on:
- postgres
networks:
- n8n_network
postgres:
image: postgres:14
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8npassword
- POSTGRES_DB=n8ndatabase
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n_network
volumes:
postgres_data:
networks:
n8n_network:
driver: bridge
Giải thích nhanh:
- n8n: Dịch vụ chính, chạy trên cổng 5678, sử dụng PostgreSQL làm cơ sở dữ liệu.
- postgres: Cơ sở dữ liệu PostgreSQL, chạy trên cổng 5432.
- volumes và networks: Đảm bảo dữ liệu được lưu trữ lâu dài và các dịch vụ giao tiếp với nhau.
Bước 4: Khởi động các container
1- Mở terminal (PowerShell hoặc WSL terminal), vào thư mục dự án:
2 – Chạy lệnh dưới Lệnh này sẽ khởi động cả n8n và PostgreSQL ở chế độ nền.
docker compose -f docker-compose.yml up -d


Bước 5: Kiểm tra container qua logs
Để chắc chắn mọi thứ hoạt động, hãy kiểm tra logs:
- Chạy:
docker-compose logs
- Tìm các dấu hiệu:
- PostgreSQL: Có dòng database system is ready to accept connections là ổn.
- n8n: Không có lỗi như getaddrinfo ENOTFOUND hay There was an error initializing DB.
- Nếu có lỗi, bạn có thể:
- Kiểm tra lại file docker-compose.yml.
- Xóa toàn bộ container/image và chạy lại: docker compose -f docker-compose.yml down –rmi all
Bước 6: Truy cập giao diện n8n
- Mở trình duyệt và truy cập:
http://localhost:5678
- Tạo tài khoản và đăng nhập :
- Thử tạo một workflow đơn giản, ví dụ: gửi email hoặc ghi log.

Bước 7: Cài đặt pgAdmin để quản lý PostgreSQL
Chúng ta sẽ dùng pgAdmin để xem và quản lý cơ sở dữ liệu.
- Tải và cài đặt pgAdmin từ trang chính thức.
- Mở pgAdmin, nhấp vào Add New Server.
- Trong tab General:
- Đặt tên: n8n_postgres.
- Trong tab Connection:
- Host name/address: localhost
- Port: 5432
- Maintenance database: postgres
- Username: n8n
- Password: n8npassword
- Save password: Bật (tùy chọn).
- Nhấn Save và kiểm tra kết nối.
- Bạn có thể xem các bảng, chạy query, và quản lý dữ liệu từ đây.
1- Tải và cài đặt pgAdmin từ trang chính thức.
2- Mở pgAdmin, nhấp vào Add New Server.

3 – Trong tab General:
- Đặt tên: n8ndatabase

4 – Trong tab Connection:
- Host name/address: localhost
- Port: 5432
- Maintenance database: postgres
- Username: n8n
- Password: n8npassword
- Save password: Bật (tùy chọn).

5- Nhấn Save và kiểm tra kết nối.
Bạn có thể xem các bảng, chạy query, và quản lý dữ liệu từ đây.

Bước 8: Khắc phục sự cố (nếu có)
Nếu gặp vấn đề, hãy thử:
- Kiểm tra container đang chạy:
docker ps
- Kiểm tra cổng trên máy:
netstat -a -n -o | find "5432"
Nếu cổng 5432 bị chiếm dụng, đổi ánh xạ cổng trong docker-compose.yml (ví dụ: 5433:5432) và cập nhật trong pgAdmin. - Xóa và chạy lại nếu cần:
docker compose -f docker-compose.yml down --rmi all
docker compose -f docker-compose.yml up -d
Bước 9: Tăng cường bảo mật
- Đổi mật khẩu mặc định (mypassword, n8npassword) trong file docker-compose.yml thành giá trị an toàn hơn.
- Thêm firewall rule trên Windows cho cổng 5432 và 5678:
- Mở Windows Defender Firewall.
- Tạo rule inbound cho cổng 5432 và 5678 (TCP).
Bước 10: Thử nghiệm và hoàn thiện
- Tạo một workflow đơn giản trong n8n (ví dụ: gửi email hoặc ghi log).
- Kiểm tra dữ liệu trong n8ndatabase qua pgAdmin để xác nhận mọi thứ hoạt động.
- Chúc mừng bạn đã hoàn thành!
Lời kết
Hy vọng bài viết này giúp bạn thiết lập môi trường n8n với PostgreSQL thành công trên Windows 11! Một điểm cộng lớn là với cách cài đặt này, bạn không phải trả phí cho n8n. Bạn đang sử dụng phiên bản Community Edition (miễn phí và mã nguồn mở) bằng cách tự host qua Docker, nên mọi tính năng cơ bản đều sẵn sàng mà không tốn chi phí.
Nếu bạn muốn dùng các tính năng nâng cao hơn, bạn có thể chuyển sang n8n Cloud (trả phí). Điểm hay là bạn có thể lưu workflow từ phiên bản cục bộ này dưới dạng file JSON và import chúng lên n8n Cloud để tiếp tục sử dụng. Tuy nhiên, bạn sẽ cần cấu hình lại thông tin xác thực (như kết nối database) và chọn gói trả phí phù hợp với nhu cầu (xem chi tiết tại n8n.io/pricing).
Mã nguồn của dự án này đã được mình đăng lên GitHub tại n8n-postgres-docker. Bạn có thể tải về và thử ngay!
Chúc bạn thành công! 🚀