close

Cách cập nhật n8n an toàn: Docker Compose, docker run, npm và n8n Cloud

Tác giả: Đông Tùng Ngày đăng: 14/05/2025 Chuyên mục: n8n
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Cách cập nhật n8n an toàn: sao lưu volume .n8n và database, đổi tag image sang bản stable mới (ngày 21/10/2026 là n8nio/n8n:2.44.5), chạy docker compose pull rồi docker compose up -d. Cài bằng npm thì dùng npm update -g n8n. Từ 1.x lên 2.x, đọc danh sách thay đổi lớn trước khi nâng.

Bài áp dụng cho n8n tự host trên VPS hoặc máy tính, VPS cài sẵn n8n của Tino và n8n Cloud. Chưa cài n8n thì xem cách cài đặt n8n trên VPS trước.

Vì sao nên cập nhật n8n thường xuyên?

n8n ra một bản minor gần như mỗi tuần, kèm bản vá lỗi và vá bảo mật. Tài liệu n8n khuyên cập nhật tối thiểu mỗi tháng một lần, để mỗi lần chỉ nhảy ít phiên bản và dễ khoanh vùng lỗi (Update n8n). Bỏ qua nhiều tháng rồi nhảy một lần là lúc dễ gặp lỗi khó đoán.

  • Bảo mật: n8n tự host thường mở webhook ra Internet, nên bản vá bảo mật cần được cài sớm.
  • Sửa lỗi: lỗi bạn đang gặp có thể đã được sửa ở bản mới; xem release notes trước khi tự sửa.
  • Node và tích hợp mới: node cho ứng dụng hoặc API phổ biến được bổ sung, node cũ cho dịch vụ đã ngừng bị gỡ.
  • Tương thích: dịch vụ bên ngoài đổi API thì node cũ có thể lỗi; bản mới thường cập nhật theo.

Phiên bản n8n mới hiện nay là bản nào?

Ngày 22/10/2026, bản stable của n8n là 2.44.5 (phát hành 21/10/2026), bản beta là 2.45.1 (GitHub releases n8n-io/n8n). n8n 2.0.0 phát hành ngày 08/12/2025. Nhánh 1.x vẫn nhận bản vá, mới đây là 1.123.85 ngày 14/10/2026, nên nhiều hệ thống vẫn đang chạy 1.x.

KênhTag DockerDùng khi
Stablestable hoặc số cụ thể, ví dụ 2.44.5Hệ thống đang chạy thật (production)
BetabetaMáy thử nghiệm; có thể chưa ổn định
Tag cũlatest, nextVẫn còn nhưng sẽ bị bỏ ở bản lớn sau; nên đổi sang số phiên bản
Kênh phát hành n8n theo docs.n8n.io, 22/10/2026

Từ 2.0, n8n đổi tên kênh latest/next thành stable/beta và khuyên ghim số phiên bản cụ thể (v2.0 breaking changes). Ghim số giúp bạn biết chính xác đang chạy bản nào và quay lại được khi cần.

Cách kiểm tra phiên bản n8n đang dùng

Cách kiểm tra phiên bản n8n tùy cách cài: với Docker Compose, chạy lệnh n8n --version bên trong service; với npm, chạy thẳng trên máy; trên giao diện web, xem mục About n8n. Ghi lại số phiên bản này trước khi cập nhật, vì đây là bản bạn sẽ quay về nếu có lỗi.

n8n chạy bằng Docker Compose

Chạy trong thư mục chứa compose.yaml. Compose v2 đặt tên container theo dạng <thư mục>-n8n-1, nhưng lệnh dưới gọi theo tên service nên không cần nhớ tên container.

cd ~/n8n-compose
docker compose exec n8n n8n --version
Terminal VPS chạy lệnh docker exec -it root_n8n_1 n8n --version và trả về số phiên bản n8n 1.86.1

Ảnh chụp ở bản n8n cũ (1.86.1, Docker Compose v1 nên container tên root_n8n_1); ở Compose v2 tên container có dạng root-n8n-1, hoặc dùng lệnh docker compose exec như trên.

n8n chạy bằng docker run

docker ps --format "table {{.Names}}\t{{.Image}}"
docker exec n8n n8n --version

n8n cài bằng npm

n8n --version

Xem trên giao diện web

Mở menu Help ở góc dưới thanh bên trái, chọn About n8n. Hộp thoại hiện số phiên bản và giấy phép của bản đang chạy.

Cần sao lưu gì trước khi cập nhật n8n?

Trước khi cập nhật n8n, cần sao lưu thư mục .n8n (volume n8n_data khi chạy Docker), database PostgreSQL nếu có và file .env. Thư mục .n8n chứa khóa mã hóa credentials; với SQLite, nó chứa luôn database. n8n khuyên sao lưu đầy đủ trước mỗi lần cập nhật (Back up and restore).

cd ~/n8n-compose
docker volume ls                       # tìm tên volume, ví dụ n8n-compose_n8n_data
docker compose stop n8n                # SQLite: dừng trước khi chép
docker run --rm -v n8n-compose_n8n_data:/data -v "$PWD":/backup alpine \
  tar czf /backup/n8n_data-$(date +%F).tar.gz -C /data .
docker compose start n8n

# Nếu dùng PostgreSQL
docker compose exec -T postgres pg_dump -U n8n -d n8n > n8n-db-$(date +%F).sql

Ghi lại tag đang chạy (ví dụ n8nio/n8n:2.43.8) để quay lại nếu cần. Chép bản sao lưu ra ngoài máy chủ. Export workflow, credentials bằng CLI và cách khôi phục: cách backup và restore workflow n8n.

Cách cập nhật n8n chạy bằng Docker Compose

Cập nhật n8n chạy bằng Docker Compose gồm 5 bước: sao lưu, đọc thay đổi, đổi tag image trong compose.yaml, kéo image và tạo lại container, rồi kiểm tra. Dữ liệu không mất vì nằm trong volume, không nằm trong container (Install with Docker).

Quy trình cập nhật n8n Docker 5 bước: 1 sao lưu volume n8n_data, database và .env, ghi lại bản đang chạy; 2 đọc release notes, lên 2.x hoặc 3.0 thì mở Migration Report; 3 ghi tag bản mới như n8nio/n8n:2.44.5 vào compose và chạy docker compose pull; 4 docker compose down rồi docker compose up -d; 5 kiểm tra phiên bản, log, chạy thử workflow có webhook. Nếu chạy ổn thì giữ bản sao lưu vài ngày; nếu lỗi thì đặt lại tag cũ, khôi phục database và volume rồi up -d

Mở compose.yaml, đổi dòng image sang bản mới:

services:
  n8n:
    image: n8nio/n8n:2.44.5

Rồi chạy:

cd ~/n8n-compose
docker compose pull
docker compose down
docker compose up -d
docker compose logs --tail=50 n8n
docker compose exec n8n n8n --version

Lần khởi động đầu sau khi nâng bản, n8n có thể chạy migration database và mất thêm vài phút. Đợi đến khi log báo “Editor is now accessible via” rồi mới mở trình duyệt.

Cài bằng lệnh một dòng get.n8n.io

Nếu bạn cài bằng lệnh curl -fsSL https://get.n8n.io | sh, n8n có sẵn lệnh nâng cấp. Lệnh này chỉ sửa dòng phiên bản trong .env, giữ nguyên dữ liệu (One-line setup):

curl -fsSL https://get.n8n.io | sh -s -- --upgrade

Cách cập nhật n8n chạy bằng lệnh docker run

Với n8n chạy bằng docker run, bạn dừng và xóa container cũ, kéo image mới, rồi chạy lại đúng lệnh cũ với cùng volume. Xóa container không mất dữ liệu; chạy lại với đường dẫn volume khác mới làm n8n hiện trống như vừa cài.

Xóa container cũ có mất workflow không: cách đúng là xóa container n8nio/n8n:2.43.8, tạo container mới n8nio/n8n:2.44.5 với cùng lệnh và gắn lại -v n8n_data:/home/node/.n8n, volume giữ workflow, credentials, khóa mã hóa; cách sai là gõ khác đường dẫn như -v ~/.n8n:/home/node/.n8n, n8n hiện như mới cài nhưng dữ liệu cũ vẫn nằm trong volume n8n_data, sửa bằng cách chạy lại với đúng volume
docker pull n8nio/n8n:2.44.5
docker stop n8n
docker rm n8n
docker run -d --name n8n --restart unless-stopped \
  -p 5678:5678 \
  -e GENERIC_TIMEZONE="Asia/Ho_Chi_Minh" -e TZ="Asia/Ho_Chi_Minh" \
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n:2.44.5

Thay n8n_data bằng đúng volume bạn đã dùng (xem bằng docker volume ls) và giữ mọi biến -e cũ. Trên VPS, nên chuyển sang Docker Compose để cấu hình nằm trong file, không phải nhớ lệnh: xem hướng dẫn cài n8n trên VPS bằng Docker Compose.

Cách cập nhật n8n cài bằng npm

n8n cài bằng npm được cập nhật bằng npm update -g n8n, hoặc cài đúng một bản bằng cú pháp @. n8n 2.x cần Node.js từ 20.19 đến 24.x (Install with npm). Nếu chạy nền bằng pm2, khởi động lại tiến trình sau khi cập nhật.

node -v                        # cần v20.19 đến v24.x
npm update -g n8n              # lên bản mới
# hoặc ghim một bản cụ thể
npm install -g n8n@2.44.5
pm2 restart n8n
n8n --version

Cài bằng npm đã bị đánh dấu deprecated, và n8n 3.0 sắp phát hành không còn chạy bằng npm hay npx (v3.0 breaking changes). Nếu đang chạy npm, hãy lên kế hoạch chuyển sang Docker trước khi lên 3.0.

Nâng cấp n8n 1.x lên 2.x cần lưu ý gì?

Nâng n8n từ 1.x lên 2.x có nhiều thay đổi phá vỡ: nút Publish thay công tắc Active, Start node bị gỡ, task runner bật mặc định, MySQL bị bỏ và vài node nguy hiểm bị tắt sẵn (v2.0 breaking changes). Trước khi nâng, mở Settings > Migration Report trên bản 1.x để xem workflow nào cần sửa; công cụ này chỉ tài khoản admin thấy (v2.0 migration tool).

Thay đổi ở 2.0Ảnh hưởngViệc cần làm
Publish/Unpublish thay Activate/DeactivateSửa workflow không tự lên productionBấm Publish sau khi sửa; CLI dùng publish:workflow thay update:workflow
Start node bị gỡWorkflow còn Start node báo lỗiThay bằng Manual Trigger hoặc Execute Workflow Trigger
Task runner bật mặc địnhCode node chạy trong runner; Python cần runner chế độ externalPython Code node: thêm container n8nio/runners
MySQL, MariaDB không còn làm databasen8n 2.x không khởi động với database nàyChuyển sang PostgreSQL hoặc SQLite trước khi nâng
Execute Command, Local File Trigger tắt mặc địnhWorkflow dùng hai node này ngừng chạyBật lại qua NODES_EXCLUDE nếu thật cần
Code node không đọc được biến môi trường$env trong Code node bị chặnDùng credentials; hoặc đặt N8N_BLOCK_ENV_ACCESS_IN_NODE=false
Read/Write Files chỉ trong ~/.n8n-filesĐọc ghi file ngoài thư mục này bị chặnĐặt N8N_RESTRICT_FILE_ACCESS_TO về thư mục bạn dùng
Lệnh n8n --tunnel bị gỡKhông còn tunnel tích hợp để thử webhookDùng ngrok, Cloudflare Tunnel; xem cài ngrok cho n8n
Bỏ chế độ lưu binary data trong RAMBinary data ghi ra ổ đĩa hoặc databaseKiểm tra dung lượng ổ trống
Thay đổi chính khi lên n8n 2.0 (docs.n8n.io, 22/10/2026)

Thứ tự an toàn: lên bản 1.x mới trước, xử lý hết mục Critical trong Migration Report, sao lưu đầy đủ, rồi mới đổi tag sang 2.x. Nếu có máy thử, nâng trên máy thử trước.

Chuẩn bị cho n8n 3.0

n8n 3.0 chưa phát hành tại ngày 22/10/2026, nhưng tài liệu đã liệt kê thay đổi: n8n tự host phải chạy bằng Docker, không còn bản npm hay npx n8n (v3.0 breaking changes). Hệ thống đang chạy Docker Compose không phải đổi cách cài; vẫn nên mở Migration Report trước khi nâng.

Cách cập nhật n8n trên VPS n8n của Tino

VPS n8n của Tino có lệnh n8n-update để cập nhật n8n qua SSH. Đăng nhập SSH vào VPS, chạy lệnh và đợi đến khi container được tạo lại. Vẫn nên sao lưu như mục trên trước khi chạy. Cách đăng nhập và các mục quản lý khác: đăng nhập và cấu hình VPS n8n.

n8n-update
Kết quả chạy lệnh n8n-update trên VPS n8n của Tino: dừng và xóa container n8n và traefik, tạo lại network, kéo image traefik và n8n mới

Cách cập nhật n8n Cloud

n8n Cloud do n8n vận hành, bạn chỉ chọn phiên bản cho workspace trong Admin Panel. Đăng nhập n8n.io, mở Admin Panel, vào tab Manage, chọn phiên bản ở mục n8n version, rồi bấm Save Changes. Khi lưu, workspace có thể ngừng 1–2 phút để áp dụng. Khác biệt giữa Cloud và tự host: so sánh n8n self-host và n8n Cloud.

Cập nhật xong bị lỗi thì quay lại bản cũ thế nào?

Quay lại bản n8n cũ chỉ an toàn khi bạn có bản sao lưu database trước lúc cập nhật. Bản mới thường chạy migration database khi khởi động, và image cũ có thể không đọc được database đã nâng cấp.

  • Docker Compose: đặt lại tag cũ trong compose.yaml, khôi phục volume n8n_data và database từ bản sao lưu, rồi docker compose up -d.
  • npm: theo tài liệu n8n, chạy n8n db:revert trên bản hiện tại để lùi một migration (lặp lại nếu cần lùi nhiều), rồi cài bản cũ bằng npm install -g n8n@<bản cũ> (Install with npm).
  • Mọi cách cài: ghi lại lỗi trong log và thử lại trên máy thử trước khi nâng lần nữa.

Muốn chạy n8n 24/7 mà không tự cài? VPS n8n của Tino cài sẵn n8n trên VPS NVMe đặt tại Việt Nam; bạn vẫn có quyền root để cấu hình. Xem cấu hình và giá trên trang sản phẩm.

Câu hỏi thường gặp

Bao lâu nên cập nhật n8n một lần?

Tài liệu n8n khuyên cập nhật tối thiểu mỗi tháng một lần và chọn kênh stable cho hệ thống chạy thật. Bản beta chỉ nên dùng trên máy thử.

Có cần tắt workflow trước khi cập nhật không?

Không bắt buộc. Trong lúc container dừng, mọi workflow ngừng và webhook gọi vào sẽ lỗi, nên hãy cập nhật vào giờ ít việc. Workflow chạy theo lịch bị lỡ trong khoảng đó.

Cập nhật n8n có làm mất dữ liệu không?

Không, nếu container mới gắn đúng volume cũ hoặc trỏ đúng database cũ. Dữ liệu nằm trong volume n8n_data và database, không nằm trong container.

Node cộng đồng có bị ảnh hưởng khi cập nhật không?

Có thể, nếu node đó chưa tương thích bản mới. Ghi lại danh sách node cộng đồng đang dùng, xem trang node trước khi nâng và thử trên máy thử.

Nên dùng tag stable hay ghim số phiên bản?

Nên ghim số, ví dụ n8nio/n8n:2.44.5. Tag stable tự trỏ sang bản mới mỗi lần pull, nên bạn khó biết đang chạy bản nào và khó quay lại.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan