Tài liệun8n

n8n

Cài n8n từ Kho ứng dụng, tạo tài khoản chủ sau khoá thiết lập, sao lưu workflow và khoá mã hoá, cập nhật và làm việc trong giới hạn mạng của container.

n8n là công cụ tự động hoá quy trình bằng giao diện kéo thả, một lựa chọn tự host thay cho Zapier hay Make: một sự kiện kích hoạt (webhook, lịch hẹn giờ, email mới) chạy một chuỗi bước gọi API, xử lý dữ liệu và gửi tin nhắn. Hãy chọn n8n khi bạn tự động hoá công việc giữa nhiều dịch vụ online, không muốn trả phí theo số tác vụ và muốn dữ liệu nằm trên máy chủ của mình. Trang này hướng dẫn cài từ Kho ứng dụng, thiết lập lần đầu, sao lưu, cập nhật và những gì container được hoặc không được kết nối tới.

Yêu cầu

Mục Giá trị
Image n8nio/n8n:2.42.5
Giới hạn RAM 1024 MB, 1 CPU
Đĩa trống để cài Khoảng 2,6 GB trên ổ của Docker ở lần cài đầu (image cộng 1 GB chừa lại cho máy chủ)
Docker Đã cài trên máy chủ (Kho ứng dụng → Cài Docker)
Tên miền Tên miền hoặc tên miền phụ có bản ghi A trỏ về máy chủ, ví dụ n8n.example.com

Giới hạn RAM được tính vào RAM của gói hosting. Workflow lớn giữ nhiều item hoặc file lớn trong bộ nhớ có thể cần hơn 1 GB; xem mục Xử lý sự cố.

Cài n8n

Với quản trị viên

  1. Mở Kho ứng dụng. Nếu thấy Cần cài Docker, bấm Cài Docker trước và chờ tác vụ chạy xong.

  2. Trên thẻ n8n, bấm Cài đặt.

  3. Điền hộp thoại:

    Trường Nội dung
    Tên miền Tên miền ứng dụng chạy, không gồm http://, ví dụ n8n.example.com. Hệ thống tạo một website mới cho tên miền này.
    Chủ sở hữu Tài khoản hosting sở hữu ứng dụng. Giới hạn của gói tài khoản áp dụng cho container.
    SSL miễn phí (Let's Encrypt) Để bật. Chứng chỉ được cấp ở cuối quá trình cài nếu tên miền đã trỏ về máy chủ.
  4. Bấm Cài đặt. Log tác vụ hiển thị quá trình tải image, khởi động container và cuối cùng là n8n is available at http://<tên miền>.

  5. Nếu log báo SSL could not be issued yet, trỏ bản ghi A của tên miền về máy chủ rồi bấm Cấp chứng chỉ trong tab SSL của website (xem Chứng chỉ SSL).

n8n không có trường cài đặt bổ sung. ZoPanel tự đặt các biến sau:

Biến Giá trị Mục đích
N8N_HOST, N8N_PROTOCOL, N8N_PORT tên miền của bạn, https, 5678 Địa chỉ n8n dùng để tạo đường dẫn
WEBHOOK_URL https://<tên miền>/ URL webhook trong trình soạn thảo dùng tên miền của bạn qua HTTPS
GENERIC_TIMEZONE Asia/Ho_Chi_Minh Múi giờ của trigger hẹn giờ và các hàm ngày giờ
N8N_ENCRYPTION_KEY khoá ngẫu nhiên, riêng cho mỗi lần cài Mã hoá credential lưu trong n8n
N8N_PROXY_HOPS 1 n8n tin nginx đứng trước để lấy IP người truy cập

Các biến này không sửa được từ panel. Muốn dùng múi giờ khác, đặt riêng cho từng workflow trong n8n (Workflow settings → Timezone).

Với khách hàng

Khách tự cài từ Kho ứng dụng trong panel của mình khi gói hosting cho phép. Đầu trang hiển thị hạn mức, ví dụ "Gói của bạn: 0/2 ứng dụng · RAM 0/4096 MB." Không có trường Chủ sở hữu: ứng dụng thuộc tài khoản của bạn.

Quản trị viên đặt hạn mức tại Gói hosting → Ứng dụng Docker (0 = không cho phép) và RAM (MB). n8n cần 1024 MB trong RAM của gói. Xem Gói hosting và giới hạn.

Thiết lập lần đầu

n8n vừa cài nằm sau khoá thiết lập: người đầu tiên mở n8n sẽ tạo tài khoản chủ, nên ZoPanel hiển thị trang "đang được thiết lập" cho mọi người khác tới khi bạn làm xong.

Quan trọng: chờ SSL được cấp rồi mới thiết lập n8n. ZoPanel chạy n8n với N8N_PROTOCOL=https, và cookie đăng nhập của n8n chỉ hoạt động qua HTTPS.

  1. Mở website (Website → n8n.example.com) và vào tab Docker. Chờ trạng thái là running.
  2. Trong thẻ Đang khoá thiết lập, bấm Mở ứng dụng (chỉ mình tôi). Một tab mới mở tên miền; trình duyệt này được đi qua khoá (trong 30 ngày).
  3. Lần khởi động đầu mất khoảng nửa phút. Nếu trang báo site đang bận hoặc "n8n is starting up", hãy chờ, trang tự tải lại.
  4. Ở màn hình tạo tài khoản chủ, nhập email, họ tên và mật khẩu (tối thiểu 8 ký tự, có số và chữ hoa), rồi bấm Next.
  5. Trả lời hoặc bỏ qua bảng câu hỏi ngắn. n8n có thể mời bạn nhận license key miễn phí cho một số tính năng cộng đồng; việc này không bắt buộc.
  6. Quay lại tab Docker, bấm Đã thiết lập xong — mở công khai. Khoá được gỡ và webhook bắt đầu nhận yêu cầu từ bên ngoài.

Lưu ý: khi khoá còn bật, lời gọi webhook từ dịch vụ bên ngoài cũng nhận trang "đang được thiết lập". Hãy mở công khai trước khi thử webhook production.

Thiết lập cần thiết

  • Người dùng: mở Settings → Users → Invite để thêm đồng nghiệp. Bình thường n8n gửi lời mời qua email; bản n8n của ZoPanel không có cấu hình SMTP cho việc này, nên hãy sao chép link mời n8n hiển thị và tự gửi. Không có tính năng đặt lại mật khẩu qua email, vì vậy hãy lưu mật khẩu tài khoản chủ trong trình quản lý mật khẩu.
  • Webhook: URL webhook production có dạng https://n8n.example.com/webhook/<path>, URL thử nghiệm là https://n8n.example.com/webhook-test/<path>. Workflow phải được kích hoạt (active) thì URL production mới trả lời.
  • Credential: API key và mật khẩu lưu trong Credentials được mã hoá bằng N8N_ENCRYPTION_KEY. Hãy giữ khoá này cùng bản sao lưu (xem bên dưới).
  • Gửi email từ workflow: node Send Email dùng được với mọi máy chủ SMTP. Hộp mail tạo trên panel dùng được: host = tên máy chủ mail của bạn, cổng 587 (STARTTLS) hoặc 465 (SSL), địa chỉ đầy đủ và mật khẩu.

Container kết nối được tới đâu

Mọi container của Kho ứng dụng chạy sau tường lửa container của ZoPanel:

Đích Được phép?
Dịch vụ và API trên internet (HTTPS, mọi địa chỉ công khai) Có
Website trên máy chủ này qua tên miền công khai (cổng 80/443) Có
Mail trên máy chủ này (cổng 25, 465, 587) Có
DNS Có
MariaDB, PostgreSQL, Redis hoặc panel trên máy chủ này Không
Mạng nội bộ (10.x, 172.16–31.x, 192.168.x, 100.64.x), loopback, metadata của cloud Không
Container khác Không

Ý nghĩa với n8n:

  • Node MySQL/MariaDB, Postgres hay Redis trỏ vào máy chủ này sẽ không kết nối được. localhost và 127.0.0.1 bên trong container là chính container đó, và cổng database của máy chủ bị chặn với container, kể cả khi đã bật Truy cập từ xa. Thay vào đó, hãy:
    • đặt một endpoint HTTPS nhỏ trên một website của bạn (ví dụ script PHP đọc/ghi database bằng thông tin đăng nhập riêng của nó) rồi gọi bằng node HTTP Request;
    • dùng database trên máy chủ khác, cho phép kết nối từ IP công khai của máy chủ này.
  • Gọi chính các website của bạn qua tên miền công khai vẫn được, gọi API công khai cũng vậy.
  • Dịch vụ trong mạng nội bộ (Ollama hay database ở địa chỉ VPC, NAS ở nhà) không kết nối được.

Dữ liệu nằm ở đâu và sao lưu

Dữ liệu ứng dụng nằm trong /var/lib/zopanel-apps/<instance>/, với <instance> là tên miền đổi dấu chấm thành gạch ngang (n8n.example.com → n8n-example-com). Container có tên zp-app-<instance>.

Đường dẫn trên máy chủ Nội dung
/var/lib/zopanel-apps/<instance>/data/ Thư mục /home/node/.n8n của n8n: database SQLite chứa workflow, credential và lịch sử chạy, cùng file cấu hình của n8n
/var/lib/zopanel-apps/<instance>/.env Các biến ở trên, gồm N8N_ENCRYPTION_KEY (chỉ root đọc được)

ZoPanel sao lưu gì và không sao lưu gì:

  • Thẻ Sao lưu trong tab Docker của website sao lưu toàn bộ thư mục ứng dụng, gồm dữ liệu và file .env chứa khoá mã hoá.
  • Bản sao lưu tài khoản và sao lưu gia tăng gồm thư mục website, database và hộp mail của tài khoản. Chúng không gồm /var/lib/zopanel-apps, nên workflow và credential của n8n chỉ nằm trong bản sao lưu riêng của ứng dụng.
  • Bản sao lưu cấu hình (.zpb, xem Cứu hộ thảm họa) chứa database của panel, nơi lưu thiết lập của ứng dụng và các biến được tạo tự động, gồm cả khoá mã hoá. Nó không chứa dữ liệu của n8n.

Để sao lưu n8n, bấm Sao lưu ngay trong thẻ Sao lưu. Quản trị viên còn đặt được Lịch (Tắt, Mỗi ngày hoặc Mỗi tuần; mặc định tắt) và số bản Giữ lại (1–60, mặc định 7), rồi bấm Lưu. Mỗi bản sao lưu nén /var/lib/zopanel-apps/<instance>/ thành /var/backups/zopanel-apps/<instance>/YYYYMMDD-HHMMSS.tar.gz, trong thư mục chỉ root đọc được và không tính vào dung lượng đĩa của tài khoản. Container được tạm dừng (pause, không phải stop) trong vài giây sao chép, nên bản sao nhất quán. Các bản cũ vượt quá số Giữ lại bị xoá, và khi một lần sao lưu theo lịch thất bại, quản trị viên nhận cảnh báo Sao lưu thất bại.

Để khôi phục, quản trị viên bấm Khôi phục cạnh một bản sao lưu (khách hàng nhờ nhà cung cấp). n8n được dừng và dữ liệu được thay bằng nội dung file nén; dữ liệu hiện tại được giữ riêng tới khi ứng dụng khôi phục khởi động được, và được đặt lại nếu nó không khởi động. Mọi thay đổi sau thời điểm sao lưu sẽ mất. Mỗi bản sao lưu còn có nút xoá (chỉ quản trị viên), và xoá ứng dụng kèm file của nó cũng xoá luôn các bản sao lưu.

Các file nén này không nằm trong bản sao lưu tài khoản và vẫn ở trên cùng máy chủ. Hãy chép những bản quan trọng ra ngoài (ví dụ bằng scp hoặc rclone từ /var/backups/zopanel-apps/<instance>/) và lưu ở dạng mã hoá: chúng chứa khoá mã hoá. Hãy khôi phục file nén vào chính bản cài đó; bản cài mới trên máy chủ khác có khoá mã hoá riêng, nên hãy chuyển workflow và credential sang bằng bản xuất bên dưới.

Bản xuất di động, nhập được vào bất kỳ n8n nào:

docker exec -u node zp-app-n8n-example-com n8n export:workflow --all --output=/home/node/.n8n/workflows.json
docker exec -u node zp-app-n8n-example-com n8n export:credentials --all --decrypted --output=/home/node/.n8n/credentials.json

Các file xuất hiện trong /var/lib/zopanel-apps/n8n-example-com/data/. File credential chứa bí mật ở dạng chữ thường: chuyển nó tới nơi an toàn và xoá khỏi máy chủ. Nhập vào n8n khác bằng n8n import:workflow --input=… và n8n import:credentials --input=….

Khách hàng không chạy được các lệnh này, nhưng có thể bấm Sao lưu ngay trong tab Docker; việc đặt lịch và khôi phục do nhà cung cấp thực hiện. Để tự giữ một bản, hãy tải các workflow quan trọng từ trình soạn thảo (Download trong menu của workflow).

Cập nhật n8n

  1. Sao lưu trước (Sao lưu ngay trong thẻ Sao lưu). n8n chuyển đổi database khi khởi động và bản cập nhật không hoàn tác được từ panel.
  2. Trong tab Docker của website, bấm Cập nhật bản mới (chỉ quản trị viên; khách hàng nhờ nhà cung cấp).
  3. Tác vụ kéo image có trong danh mục ZoPanel hiện tại và tạo lại container. Dữ liệu và khoá mã hoá được giữ. n8n gián đoạn khoảng một phút trong lúc khởi động lại.

Danh mục ghim một phiên bản n8n cụ thể (2.42.5), nên Cập nhật bản mới cài phiên bản đi kèm bản ZoPanel bạn đang dùng; các bản n8n mới hơn đến cùng bản cập nhật ZoPanel.

Xử lý sự cố

Hiện tượng hoặc thông báo Cách xử lý
Khách truy cập hoặc webhook nhận trang "This app is being set up" Khoá thiết lập vẫn bật. Bấm Đã thiết lập xong — mở công khai trong tab Docker.
n8n cảnh báo về secure cookie, hoặc đăng nhập bị lặp Bạn đang mở qua http://. Cấp SSL cho tên miền rồi mở https://<tên miền>.
not enough disk space: this app needs about 2.6 GB free and the server has … GB; free some space first Giải phóng dung lượng đĩa trên máy chủ rồi cài lại.
your plan does not include applications; ask your provider / your plan allows N application(s) Hạn mức Ứng dụng Docker của gói bằng 0 hoặc đã dùng hết.
n8n needs 1024 MB of memory; your plan has … MB and your apps use … MB Tăng RAM (MB) của gói hoặc gỡ một ứng dụng khác.
the app did not start listening: … Container không trả lời trong 2 phút. Đọc phần cuối thông báo và Log ứng dụng trong tab Docker, rồi bấm Khởi động lại.
Node MySQL/Postgres/Redis bị timeout hoặc bị từ chối Đúng như thiết kế với database trên máy chủ này hoặc trong mạng nội bộ; xem mục Container kết nối được tới đâu.
Workflow lớn bị dừng giữa chừng và container khởi động lại Đã chạm giới hạn 1024 MB. Xử lý item theo lô nhỏ (Loop Over Items) và tránh giữ file lớn trong bộ nhớ.
n8n không khởi động sau khi khôi phục dữ liệu vào một bản cài mới, báo lỗi khoá mã hoá không khớp Dữ liệu đến từ bản cài có khoá khác. Khôi phục bản sao lưu vào bản cài gốc, hoặc chuyển workflow và credential bằng lệnh export/import.
Mất quyền vào tài khoản chủ Bằng root: docker exec -u node zp-app-<instance> n8n user-management:reset, rồi thiết lập lại tài khoản chủ. Lệnh này xoá mọi người dùng; workflow và credential được giữ.

Xem thêm


← Nextcloud Metabase →