Bạn đã đọc về n8n, muốn tự động hóa báo cáo nhưng chưa muốn trả phí cloud, hoặc công ty yêu cầu dữ liệu phải nằm trên máy chủ nội bộ. Giải pháp là cài n8n self-host bằng Docker: bản Community Edition miễn phí bản quyền, chạy trên máy của bạn. Bài viết này đi từng bước theo hai chặng: chạy thử trên máy cá nhân trong khoảng 10 phút, rồi đưa lên máy chủ công ty có tên miền và HTTPS để workflow chạy 24/7.
🐳 HAI LỘ TRÌNH TRONG BÀI
📂 NỘI DUNG BÀI VIẾT
Vì sao nên cài n8n bằng Docker?
Docker đóng gói n8n cùng mọi thứ nó cần vào một “container”, nên bạn không phải tự cài Node.js hay xử lý xung đột phiên bản. Cùng một câu lệnh chạy giống nhau trên Windows, macOS và Linux. Khi cần cập nhật, bạn chỉ tải bản mới và khởi động lại, dữ liệu vẫn nằm nguyên trong một “volume” riêng.
Chọn nơi cài: máy cá nhân hay máy chủ?
| Tiêu chí | 💻 Máy cá nhân | 🖥 Máy chủ công ty (VPS) |
|---|---|---|
| Phần mềm cần có | Docker Desktop | Docker Engine và Docker Compose |
| Địa chỉ truy cập | http://localhost:5678 |
https://n8n.tencongty.vn |
| Thời gian chạy | Chỉ khi máy đang bật | 24/7 |
| Nhận webhook từ bên ngoài (Telegram, form) | ✕ Không | ✓ Có |
| Phù hợp để | Học, thử workflow | Chạy workflow thật cho công việc |
Lời khuyên: hãy bắt đầu trên máy cá nhân để làm quen, khi workflow đã ổn mới chuyển lên máy chủ.
Cách 1: Cài n8n trên máy cá nhân
💻 LỘ TRÌNH 1 · MÁY CÁ NHÂN 1234
BƯỚC 1/4💻 MÁY CÁ NHÂN
Bước 1: Cài Docker Desktop
Tải Docker Desktop từ trang chính thức của Docker cho Windows, macOS hoặc Linux rồi cài như phần mềm thông thường. Trên Windows, trình cài đặt sẽ yêu cầu bật WSL 2, hãy đồng ý và khởi động lại máy nếu được hỏi. Mở Docker Desktop và đợi biểu tượng cá voi báo đang chạy. Kiểm tra bằng cách mở Terminal (hoặc PowerShell) và gõ lệnh sau, nếu thấy số phiên bản là đã sẵn sàng:
BƯỚC 2/4💻 MÁY CÁ NHÂN
Bước 2: Tạo volume và chạy n8n
Volume là nơi lưu workflow, tài khoản và khóa mã hóa của n8n. Nhờ volume, bạn có thể xóa hay cập nhật container mà không mất dữ liệu. Chạy lần lượt hai lệnh:
Ý nghĩa từng phần:
🔍 GIẢI PHẪU LỆNH DOCKER RUN
-d --name n8nChạy nền và đặt tên container là n8n--restart unless-stoppedTự khởi động lại khi Docker khởi động, trừ khi bạn chủ động dừng-p 5678:5678Mở cổng 5678 để truy cập từ trình duyệtGENERIC_TIMEZONE, TZMúi giờ Việt Nam cho lịch chạy workflow và cho container-v n8n_data:/home/node/.n8nGắn volume vào thư mục dữ liệu của n8nNếu dùng PowerShell trên Windows, dấu \ cuối dòng không hoạt động. Hãy viết cả lệnh docker run trên một dòng, hoặc thay dấu \ bằng dấu ` (backtick).
BƯỚC 3/4💻 MÁY CÁ NHÂN
Bước 3: Mở n8n và tạo tài khoản chủ
Mở trình duyệt và vào http://localhost:5678. Lần đầu, n8n yêu cầu tạo tài khoản chủ (owner) gồm email, tên và mật khẩu. Đây là tài khoản quản trị cao nhất, hãy dùng mật khẩu mạnh và ghi lại cẩn thận. Sau đó bạn có thể tạo workflow đầu tiên ngay.
BƯỚC 4/4💻 MÁY CÁ NHÂN
Bước 4: Kiểm tra dữ liệu không bị mất
Tạo thử một workflow, lưu lại, rồi chạy hai lệnh dưới đây để khởi động lại n8n. Mở lại localhost:5678, workflow vẫn còn nghĩa là volume đã hoạt động đúng.
Giới hạn của cách này: workflow chỉ chạy khi máy đang bật, và các dịch vụ bên ngoài như Telegram không gọi được webhook vào địa chỉ localhost. Để chạy thật, bạn cần cách 2.
Cách 2: Cài n8n trên máy chủ công ty
🖥 LỘ TRÌNH 2 · MÁY CHỦ CÔNG TY 12345
Ở cách này, n8n chạy trên một máy chủ Linux (VPS hoặc máy chủ nội bộ) cùng Traefik, một công cụ tự động xin và gia hạn chứng chỉ HTTPS miễn phí. Kiến trúc gồm: trình duyệt hoặc webhook gọi tới tên miền qua HTTPS, Traefik nhận yêu cầu ở cổng 443, chuyển vào container n8n, dữ liệu lưu trong volume.
🏗 KIẾN TRÚC TRÊN MÁY CHỦ
BƯỚC 1/5🖥 MÁY CHỦ CÔNG TY
Bước 1: Chuẩn bị máy chủ và cài Docker
Bạn cần một máy chủ Ubuntu có địa chỉ IP công khai và quyền sudo. Với vài chục workflow nhẹ, một VPS 2 GB RAM thường đã đủ để bắt đầu. Đăng nhập qua SSH, cài Docker Engine kèm Docker Compose bằng script chính thức của Docker, rồi kiểm tra:
BƯỚC 2/5🖥 MÁY CHỦ CÔNG TY
Bước 2: Trỏ tên miền về máy chủ
Trong trang quản lý tên miền, tạo một bản ghi A: tên là n8n, giá trị là địa chỉ IP của máy chủ. Sau vài phút đến vài giờ, n8n.tencongty.vn sẽ trỏ về máy chủ. Nếu máy chủ bật tường lửa, hãy mở cổng 80 và 443, không mở cổng 5678 ra ngoài.
BƯỚC 3/5🖥 MÁY CHỦ CÔNG TY
Bước 3: Tạo thư mục và file .env
Dán nội dung sau vào file .env, thay tên miền và email bằng thông tin của bạn:
BƯỚC 4/5🖥 MÁY CHỦ CÔNG TY
Bước 4: Tạo file compose.yaml
Tạo file compose.yaml trong cùng thư mục với nội dung dưới đây, rút gọn từ mẫu trong tài liệu chính thức của n8n:
Hai dòng quan trọng nhất: cổng 5678 chỉ mở cho 127.0.0.1 nên mọi truy cập từ bên ngoài đều phải đi qua HTTPS của Traefik, và WEBHOOK_URL giúp n8n tạo đúng địa chỉ webhook công khai cho Telegram hay form. Tài liệu n8n ghi chú: từ phiên bản 2.30.0 có thêm biến N8N_WEBHOOK_URL, hãy xem trang cài đặt chính thức để dùng tên biến đúng với phiên bản bạn cài.
BƯỚC 5/5🖥 MÁY CHỦ CÔNG TY
Bước 5: Khởi động và đăng nhập
Đợi khoảng một phút để Traefik xin chứng chỉ HTTPS, rồi mở https://n8n.tencongty.vn và tạo tài khoản chủ như ở cách 1. Nếu trang chưa mở được, xem nhật ký bằng lệnh sudo docker compose logs -f để biết lỗi nằm ở tên miền, cổng hay chứng chỉ.
Vận hành n8n sau khi cài
💾 VẬN HÀNH
Sao lưu workflow và credential
Lệnh dưới đây xuất toàn bộ workflow và credential, mỗi thứ một file, vào thư mục /files/backups. Vì thư mục /files được gắn ra ./local-files, bạn sẽ thấy các file ngay trên máy chủ để chép đi nơi khác:
Credential được mã hóa bằng một khóa mà n8n tự tạo lần đầu chạy và lưu trong volume n8n_data. Nếu mất khóa này, bản sao lưu credential sẽ không dùng được trên máy mới. Vì vậy, ngoài file xuất, hãy sao lưu cả volume n8n_data, hoặc tự đặt khóa qua biến N8N_ENCRYPTION_KEY và cất giữ khóa ở nơi an toàn.
⬆ VẬN HÀNH
Cập nhật n8n lên phiên bản mới
Trước khi cập nhật, hãy sao lưu và đọc ghi chú phát hành, nhất là khi lên phiên bản lớn. Sau đó chạy:
Với cách 1 trên máy cá nhân, các bước tương ứng là docker pull n8nio/n8n, docker stop n8n, docker rm n8n rồi chạy lại đúng lệnh docker run ở bước 2. Dữ liệu vẫn còn vì nằm trong volume. Nếu muốn kiểm soát chặt, hãy ghi rõ số phiên bản trong tên image thay vì luôn lấy bản mới nhất.
🔒 VẬN HÀNH
Giữ n8n an toàn
🔒 Chỉ mở HTTPS ra ngoài
cổng 5678 không được mở trực tiếp ra internet.
🔒 Mật khẩu mạnh cho tài khoản chủ
người có tài khoản này xem được mọi credential.
🔒 Cập nhật đều đặn
bản mới thường kèm bản vá bảo mật.
🔒 Hỏi bộ phận IT trước khi cài lên máy chủ công ty
để đúng quy định về mạng, tường lửa và sao lưu.
Checklist sau khi cài đặt
☑ SAU KHI CÀI ĐẶT
Asia/Ho_Chi_Minh, lịch chạy workflow đúng giờ6/6 mục đạt → n8n sẵn sàng chạy workflow thật
📅 Muốn học xây workflow tự động hóa bài bản trên n8n? Xem lịch khai giảng tháng 10/2026 của MCNA để chọn lớp Data Analyst và AI Automation phù hợp.
Câu hỏi thường gặp
?
n8n self-host có mất phí không?
Bản Community Edition không tốn phí bản quyền. Trên máy cá nhân, bạn không tốn thêm gì. Trên máy chủ, chi phí chỉ gồm tiền thuê VPS và tên miền, hoặc tài nguyên máy chủ nội bộ của công ty.
?
Không biết Linux có cài được không?
Cách 1 trên máy cá nhân chỉ cần cài Docker Desktop và chạy hai lệnh, không cần biết Linux. Cách 2 cần vài thao tác cơ bản qua SSH như tạo thư mục và sửa file, làm theo từng bước trong bài là đủ. Nếu công ty có bộ phận IT, hãy nhờ họ hỗ trợ phần máy chủ và tên miền.
?
SQLite mặc định có đủ dùng không, hay phải dùng PostgreSQL?
Mặc định n8n lưu dữ liệu bằng SQLite trong volume, đủ cho cá nhân và nhóm nhỏ. Khi số workflow và lượt chạy tăng nhiều, hoặc công ty muốn quản lý cơ sở dữ liệu tập trung, hãy chuyển sang PostgreSQL bằng các biến môi trường DB_TYPE và DB_POSTGRESDB theo tài liệu của n8n.
?
Vì sao webhook Telegram không hoạt động trên máy cá nhân?
Telegram cần gọi tới một địa chỉ HTTPS công khai, còn localhost chỉ máy của bạn truy cập được. Hãy dùng cách 2 với tên miền và HTTPS, và đặt WEBHOOK_URL đúng tên miền đó.
?
Chuyển workflow từ máy cá nhân lên máy chủ thế nào?
Cách đơn giản nhất là mở từng workflow, chọn Download để lưu file JSON, rồi Import from File trên n8n máy chủ. Credential không đi kèm file workflow, bạn cần tạo lại trên máy chủ. Với nhiều workflow, hãy dùng lệnh export và import ở phần sao lưu.
Kết luận
Cài n8n self-host bằng Docker không khó như nhiều người nghĩ: hai lệnh là có n8n chạy trên máy cá nhân để học và thử, một file compose.yaml là có n8n chạy 24/7 trên máy chủ công ty với HTTPS. Đừng quên ba việc sau khi cài: sao lưu cả khóa mã hóa, cập nhật đều đặn và gán Error Workflow để được báo khi có lỗi.
Nếu bạn muốn học bài bản cách xử lý, phân tích dữ liệu và tự động hóa với AI, các khóa học tại MCNA Technology School sẽ đồng hành cùng bạn. Đọc thêm: n8n, Power Automate hay Make, Xử lý lỗi trong n8n và Tự động hóa báo cáo tuần với n8n và AI.
👉 Xem lịch khai giảng tháng 10/2026: Power BI, SQL, Python, AI – MCNA

