← Về Blog

Cài n8n trên Docker: hướng dẫn A-Z (kèm cách 1 chạm)

· MyPanel

n8n là nền tảng tự động hoá luồng công việc (workflow automation) mã nguồn mở — một lựa chọn thay thế Zapier/Make mà bạn tự-host. Cách phổ biến và ổn định nhất để chạy n8n là dùng Docker. Bài này hướng dẫn cài n8n trên Docker từ đầu (cả docker run lẫn docker compose), rồi chỉ cách làm điều tương tự chỉ với một cú nhấp bằng MyPanel.

Vì sao nên chạy n8n bằng Docker?

Chuẩn bị

Cách 1 — Chạy nhanh bằng docker run

Tạo volume lưu dữ liệu rồi khởi động container n8n:

Terminal window
docker volume create n8n_data
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

Mở http://IP-SERVER:5678 để tạo tài khoản chủ sở hữu đầu tiên. Dữ liệu (workflow, credentials) được n8n lưu trong /home/node/.n8n — chính là volume n8n_data nên không mất khi cập nhật.

Cách 2 — Dùng docker compose (khuyến nghị)

Tạo file docker-compose.yml:

services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PROTOCOL=https
- N8N_PORT=5678
- WEBHOOK_URL=https://n8n.example.com/
- GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
- TZ=Asia/Ho_Chi_Minh
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:

Khởi động: docker compose up -d. Cập nhật sau này: docker compose pull && docker compose up -d.

Lưu ý quan trọng: WEBHOOK_URL phải là URL HTTPS thật của bạn, nếu không các trigger webhook (Telegram, GitHub…) sẽ không hoạt động đúng.

Bước khó: Reverse proxy + SSL

Container ở trên mới chạy trên cổng 5678 không mã hoá. Để dùng qua tên miền có HTTPS, bạn cần dựng reverse proxy (nginx/Caddy/Traefik) trỏ về 127.0.0.1:5678 và xin chứng chỉ SSL Let’s Encrypt (certbot). Ví dụ với nginx còn phải bật WebSocket (n8n dùng WS cho giao diện thời gian thực):

location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}

Đây chính là khâu tốn thời gian và dễ sai nhất: cấu hình proxy, gia hạn SSL, mở đúng cổng, giữ WebSocket.

Những lỗi thường gặp khi tự cài n8n trên Docker

Cách dễ hơn: n8n 1 chạm với MyPanel

Nếu không muốn tự lo proxy, SSL và volume, MyPanel có sẵn n8n trong Marketplace — cài bằng một cú nhấp:

  1. Vào Marketplace, chọn n8n, bấm Cài đặt.
  2. Nhập tên miền (đã trỏ DNS về server).
  3. Bấm Cài đặt — MyPanel tự kéo image, chạy trong Docker container cô lập, cấu hình reverse proxy + WebSocket và cấp SSL Let’s Encrypt tự động.

Sau đó bạn quản lý n8n như mọi website: xem log, bật/tắt, SSL, backup. Dữ liệu nằm trong volume bền, sống sót qua redeploy. Xem thêm tài liệu Marketplace.

Docker thủ côngMyPanel Marketplace
Cài containerGõ lệnh1 chạm
Reverse proxyTự cấu hìnhTự động
SSLTự chạy certbotTự cấp + gia hạn
WebSocketTự thêmCó sẵn
Backup & logTự làmNgay trong panel

Kết luận

Chạy n8n trên Docker cho bạn một hệ tự động hoá tự-host mạnh mẽ. Làm tay hoàn toàn khả thi, nhưng phần proxy + SSL + WebSocket dễ khiến người mới nản. Nếu muốn có n8n chạy HTTPS trong vài phút, hãy:

👉 Cài thử MyPanel miễn phí bằng một dòng lệnh, mở Marketplace và cài n8n chỉ với một cú nhấp — gói Free đủ để bắt đầu.

MyPanel — Control panel self-hosted: deploy website, WordPress, database & SSL trên server Linux của bạn.