Hướng dẫn Cài đặt n8n trên Amazon Web Services | Tài liệu n8n

Lưu trữ n8n trên Amazon Web Services#

Hướng dẫn lưu trữ này trình bày cách tự lưu trữ n8n bằng Amazon Web Services (AWS). Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend, sử dụng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Các tùy chọn lưu trữ#

AWS cung cấp một số cách phù hợp để lưu trữ n8n, bao gồm EC2 (máy ảo) và EKS (các container chạy với Kubernetes).

Hướng dẫn này sử dụng EKS làm tùy chọn lưu trữ. Sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Điều kiện tiên quyết#

Các bước trong hướng dẫn này sử dụng kết hợp giao diện người dùng AWS và công cụ eksctl CLI cho EKS.

Mặc dù không được đề cập trong tài liệu dành cho eksctl, bạn cũng cần cài đặt công cụ AWS CLIcấu hình xác thực cho công cụ.

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và mở rộng quy mô
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên gia. Sai sót có thể dẫn đến mất dữ liệu, sự cố bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản Mới nhất và Tiếp theo

n8n phát hành một phiên bản nhỏ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong sản xuất. next là bản phát hành gần đây nhất. Bạn nên xem next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Tạo một cluster#

Sử dụng công cụ eksctl để tạo một cluster bằng cách chỉ định tên và khu vực bằng lệnh sau:

eksctl create cluster --name n8n --region <your-aws-region>

Quá trình này có thể mất một chút thời gian để tạo cluster.

Sau khi cluster được tạo, eksctl sẽ tự động đặt ngữ cảnh kubectl vào cluster.

Sao chép kho cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ kho lưu trữ này. Các bước sau sẽ cho bạn biết từng tệp làm gì và những cài đặt bạn cần thay đổi.

Sao chép kho lưu trữ bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b aws

Và thay đổi thư mục đến thư mục gốc của kho lưu trữ bạn đã sao chép:

cd n8n-kubernetes-hosting

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp cơ sở dữ liệu backend mạnh mẽ hơn so với SQLite.

Cấu hình volume cho bộ nhớ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, quá trình triển khai Postgres cần một volume liên tục. Class lưu trữ mặc định của AWS, gp2, phù hợp cho mục đích này. Điều này được định nghĩa trong manifest postgres-claaim0-persistentvolumeclaim.yaml.

…
spec:
  storageClassName: gp2
  accessModes:
    - ReadWriteOnce
…

Các biến môi trường Postgres#

Postgres cần một số biến môi trường được thiết lập để chuyển cho ứng dụng đang chạy trong container.

Tệp postgres-secret.yaml mẫu chứa các trình giữ chỗ bạn cần thay thế bằng các giá trị của riêng bạn cho chi tiết người dùng và cơ sở dữ liệu để sử dụng.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo một volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng các volume liên tục giúp duy trì các tệp được tải lên trong khi sử dụng n8n và nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại, điều này sẽ lưu một tệp chứa khóa vào bộ nhớ tệp trong quá trình khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và Deployment n8n gắn claim đó vào phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn chỉ định các tài nguyên tối thiểu mà các container ứng dụng cần và giới hạn chúng có thể chạy đến. Các tệp YAML ví dụ được sao chép ở trên chứa nội dung sau trong phần resources của tệp n8n-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để tham khảo, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU có thể bùng nổ
  • Pro (10k executions): 640mb RAM, 20 millicore CPU có thể bùng nổ
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU có thể bùng nổ

Tùy chọn: Các biến môi trường#

Bạn có thể định cấu hình cài đặt và hành vi của n8n bằng cách sử dụng các biến môi trường.

Tạo tệp n8n-secret.yaml. Tham khảo Các biến môi trường để biết chi tiết về các biến môi trường n8n.

Các triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định những điều sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định image container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên
  • Các volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để gắn volume.
  • Các chính sách mở rộng quy mô và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của bạn.

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 theo mặc định.

Gửi đến cluster Kubernetes#

Gửi tất cả các manifest đến cluster bằng cách chạy lệnh sau trong thư mục n8n-kubernetes-hosting:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại cùng một lệnh hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến một địa chỉ tĩnh của phiên bản.

Để tìm địa chỉ của dịch vụ n8n đang chạy trên phiên bản:

  1. Mở phần Clusters của trang Amazon Elastic Kubernetes Service trong bảng điều khiển AWS.
  2. Chọn tên của cluster để mở trang cấu hình của nó.
  3. Chọn tab Resources, sau đó Service and networking > Services.
  4. Chọn dịch vụ n8n và sao chép giá trị Load balancer URLs. Sử dụng giá trị này với hậu tố là cổng dịch vụ n8n (5678) cho DNS.

Sử dụng HTTP

Hướng dẫn này sử dụng các kết nối HTTP cho các dịch vụ mà nó xác định, ví dụ: trong n8n-deployment.yaml. Tuy nhiên, nếu bạn nhấp vào giá trị Load balancer URLs, EKS sẽ đưa bạn đến URL “HTTPS” dẫn đến lỗi. Để giải quyết vấn đề này, khi bạn mở subdomain n8n, hãy đảm bảo sử dụng HTTP.

Xóa tài nguyên#

Nếu bạn cần xóa thiết lập, bạn có thể xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên Azure | Tài liệu n8n

Lưu trữ n8n trên Azure#

Hướng dẫn lưu trữ này sẽ chỉ cho bạn cách tự lưu trữ n8n trên Azure. Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend bằng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Điều kiện tiên quyết#

Bạn cần Công cụ dòng lệnh Azure

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng có kinh nghiệm. Sai sót có thể dẫn đến mất dữ liệu, sự cố bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản mới nhất và phiên bản tiếp theo

n8n phát hành phiên bản minor mới hầu hết các tuần. Phiên bản latest dành cho sử dụng production. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Các tùy chọn lưu trữ#

Azure cung cấp một số cách phù hợp để lưu trữ n8n, bao gồm Azure Container Instances (tối ưu hóa cho việc chạy các container), Linux Virtual Machines và Azure Kubernetes Service (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Azure Kubernetes Service (AKS) làm tùy chọn lưu trữ. Sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Các bước trong hướng dẫn này sử dụng kết hợp giao diện người dùng Azure và công cụ dòng lệnh, nhưng bạn có thể sử dụng một trong hai để hoàn thành hầu hết các tác vụ.

Mở Azure Kubernetes Service#

Từ cổng Azure, chọn Dịch vụ Kubernetes.

Tạo cụm#

Từ trang dịch vụ Kubernetes, chọn Tạo > Tạo cụm Kubernetes.

Bạn có thể chọn bất kỳ tùy chọn cấu hình nào phù hợp với nhu cầu của mình, sau đó chọn Tạo khi hoàn tất.

Đặt ngữ cảnh Kubectl#

Phần còn lại của các bước trong hướng dẫn này yêu cầu bạn đặt phiên bản Azure làm ngữ cảnh Kubectl. Bạn có thể tìm thấy chi tiết kết nối cho một phiên bản cụm bằng cách mở trang chi tiết của nó và sau đó chọn nút Kết nối. Các đoạn mã kết quả hiển thị các bước để dán và chạy vào terminal để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cụm mới.

Sao chép repository cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ repository này. Các bước sau đây sẽ cho bạn biết tệp nào cấu hình cái gì và bạn cần thay đổi những gì.

Sao chép repository bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b azure

Và thay đổi thư mục gốc của repository bạn đã sao chép:

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp một backend cơ sở dữ liệu mạnh mẽ hơn so với SQLite.

Cấu hình volume cho bộ nhớ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, triển khai Postgres cần một persistent volume. Lớp lưu trữ mặc định phù hợp cho mục đích này và được xác định trong manifest postgres-claim0-persistentvolumeclaim.yaml.

Các biến môi trường của Postgres#

Postgres cần một số biến môi trường được đặt để chuyển cho ứng dụng đang chạy trong các container.

Tệp ví dụ postgres-secret.yaml chứa các placeholder bạn cần thay thế bằng giá trị của riêng mình. Postgres sẽ sử dụng các chi tiết này khi tạo cơ sở dữ liệu.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng persistent volume là bắt buộc cho:

  • Sử dụng các node tương tác với tệp, chẳng hạn như node dữ liệu nhị phân.
  • Nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại. Điều này lưu một tệp chứa khóa vào bộ nhớ tệp trong khi khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và n8n Deployment gắn claim đó trong phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn tùy chọn chỉ định các tài nguyên tối thiểu mà container ứng dụng cần và giới hạn chúng có thể chạy đến. Các tệp YAML ví dụ được sao chép ở trên chứa nội dung sau trong phần resources của tệp n8n-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để tham khảo, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU burstable

Tùy chọn: Các biến môi trường#

Bạn có thể cấu hình cài đặt và hành vi của n8n bằng các biến môi trường.

Tạo tệp n8n-secret.yaml. Tham khảo Biến môi trường để biết chi tiết về các biến môi trường n8n.

Triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định như sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định hình ảnh container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • Các volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount các volume.
  • Chính sách mở rộng và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của mình.

Các dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 tương ứng.

Gửi đến cụm Kubernetes#

Gửi tất cả các manifest đến cụm bằng lệnh sau:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại cùng một lệnh hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến địa chỉ IP của dịch vụ n8n. Tìm địa chỉ IP của dịch vụ n8n từ mục menu Dịch vụ & ingresses của cụm bạn muốn sử dụng trong cột External IP. Bạn cần thêm cổng n8n, “5678” vào URL.

Địa chỉ IP tĩnh với AKS

Đọc hướng dẫn này để biết thêm chi tiết về cách sử dụng địa chỉ IP tĩnh với AKS.

Xóa tài nguyên#

Xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên Google Cloud | Tài liệu n8n

Lưu trữ n8n trên Google Cloud#

Hướng dẫn lưu trữ này sẽ hướng dẫn bạn cách tự lưu trữ n8n trên Google Cloud (GCP). Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend, sử dụng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Điều kiện tiên quyết#

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên gia. Các lỗi có thể dẫn đến mất dữ liệu, các vấn đề bảo mật và thời gian chết. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản nhỏ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Các tùy chọn lưu trữ#

Google Cloud cung cấp một số tùy chọn phù hợp để lưu trữ n8n, bao gồm Cloud Run (tối ưu hóa cho việc chạy các container), Compute Engine (VM) và Kubernetes Engine (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Google Kubernetes Engine (GKE) làm tùy chọn lưu trữ. Việc sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Hầu hết các bước trong hướng dẫn này sử dụng Google Cloud UI, nhưng bạn cũng có thể sử dụng công cụ dòng lệnh gcloud để thực hiện tất cả các bước.

Tạo dự án#

GCP khuyến khích bạn tạo các dự án để tổ chức hợp lý tài nguyên và cấu hình. Tạo một dự án mới cho việc triển khai n8n của bạn từ Google Cloud Console: chọn menu thả xuống dự án và sau đó nút DỰ ÁN MỚI. Sau đó chọn dự án mới tạo. Khi bạn thực hiện theo các bước khác trong hướng dẫn này, hãy đảm bảo bạn đã chọn đúng dự án.

Bật Kubernetes Engine API#

GKE không được bật theo mặc định. Tìm kiếm “Kubernetes” trong thanh tìm kiếm trên cùng và chọn “Kubernetes Engine” từ kết quả.

Chọn BẬT để bật Kubernetes Engine API cho dự án này.

Tạo một cluster#

Từ trang dịch vụ GKE, chọn Clusters > TẠO. Đảm bảo bạn chọn tùy chọn cluster “Standard”, n8n không hoạt động với cluster “Autopilot”. Bạn có thể để cấu hình cluster ở mặc định trừ khi có điều gì đó cụ thể bạn cần thay đổi, chẳng hạn như vị trí.

Đặt ngữ cảnh Kubectl#

Các bước còn lại trong hướng dẫn này yêu cầu bạn đặt phiên bản GCP làm ngữ cảnh Kubectl. Bạn có thể tìm thấy thông tin chi tiết kết nối cho một phiên bản cluster bằng cách mở trang chi tiết của nó và chọn KẾT NỐI. Đoạn mã hiển thị cho thấy một chuỗi kết nối cho công cụ gcloud CLI. Dán và chạy đoạn mã trong gcloud CLI để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cluster gcloud mới.

Sao chép kho cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ kho lưu trữ này cục bộ. Các bước sau giải thích cấu hình tệp và cách thêm thông tin của bạn.

Sao chép kho lưu trữ bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b gcp

Và thay đổi thư mục đến gốc của kho lưu trữ bạn đã sao chép:

cd n8n-kubernetes-hosting

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp một cơ sở dữ liệu backend mạnh mẽ hơn SQLite.

Tạo một volume cho lưu trữ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, việc triển khai Postgres cần một persistent volume. Chạy Postgres trên GCP yêu cầu một Storage Class Kubernetes cụ thể. Bạn có thể đọc hướng dẫn này để biết chi tiết cụ thể, nhưng manifest storage.yaml sẽ tạo nó cho bạn. Bạn có thể muốn thay đổi các vùng để tạo bộ lưu trữ trong khóa allowedTopologies > matchedLabelExpressions > values. Theo mặc định, chúng được đặt thành us-central.

…
allowedTopologies:
  - matchLabelExpressions:
      - key: failure-domain.beta.kubernetes.io/zone
        values:
          - us-central1-b
          - us-central1-c

Các biến môi trường Postgres#

Postgres cần một số biến môi trường được đặt để chuyển đến ứng dụng đang chạy trong các container.

Tệp postgres-secret.yaml mẫu chứa các trình giữ chỗ bạn cần thay thế bằng các giá trị của riêng mình. Postgres sẽ sử dụng các chi tiết này khi tạo cơ sở dữ liệu.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo một volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng persistent volume là bắt buộc đối với:

  • Sử dụng các node tương tác với tệp, chẳng hạn như node dữ liệu nhị phân.
  • Nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại. Điều này lưu một tệp chứa khóa vào bộ nhớ tệp trong quá trình khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và n8n Deployment gắn claim đó trong phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn tùy chọn chỉ định các tài nguyên tối thiểu mà các container ứng dụng cần và các giới hạn mà chúng có thể chạy. Các tệp YAML mẫu được sao chép ở trên chứa các thông tin sau trong phần resources của tệp n8n-deployment.yamlpostgres-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định mức tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để làm hướng dẫn, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU có thể burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU có thể burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU có thể burstable

Tùy chọn: Các biến môi trường#

Bạn có thể định cấu hình cài đặt và hành vi n8n bằng cách sử dụng các biến môi trường.

Tạo một tệp n8n-secret.yaml. Tham khảo Các biến môi trường để biết chi tiết về các biến môi trường n8n.

Triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định những điều sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định image container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount volume.
  • Chính sách mở rộng và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của mình.

Dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra thế giới bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 tương ứng.

Gửi đến cluster Kubernetes#

Gửi tất cả các manifest đến cluster bằng lệnh sau:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại lệnh tương tự hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến địa chỉ IP của dịch vụ n8n. Tìm địa chỉ IP của dịch vụ n8n từ mục menu Dịch vụ & Ingress của cluster bạn muốn sử dụng trong cột Điểm cuối.

GKE và địa chỉ IP

Đọc hướng dẫn GKE này để biết thêm chi tiết về cách địa chỉ IP được đặt trước hoạt động với các tài nguyên GKE và Kubernetes.

Xóa tài nguyên#

Xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên Docker Compose | Tài liệu n8n

Nếu bạn đã cài đặt Docker và Docker-Compose, bạn có thể bắt đầu từ bước 4.

Bạn có thể tìm thấy các cấu hình Docker Compose cho các kiến trúc khác nhau trong kho lưu trữ n8n-hosting.

Điều kiện tiên quyết về kiến thức tự lưu trữ

Việc tự lưu trữ n8n yêu cầu kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng thành thạo. Sai sót có thể dẫn đến mất dữ liệu, các vấn đề về bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyên bạn nên dùng n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho việc sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một phiên bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

1. Cài đặt Docker#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker. Ví dụ sau đây dành cho Ubuntu:

sudo apt-get remove docker docker-engine docker.io containerd runc
 sudo apt-get update
 sudo apt-get install ca-certificates curl gnupg lsb-release
 sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 

2. Tùy chọn: Quyền truy cập của người dùng không phải root#

Chạy khi đăng nhập với tư cách người dùng cũng được phép chạy docker:

sudo usermod -aG docker ${USER}
 su - ${USER}
 

3. Cài đặt Docker-Compose#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker.

Ví dụ dưới đây dành cho Ubuntu:

sudo apt-get install docker-compose-plugin
 

4. Thiết lập DNS#

Thêm bản ghi A để định tuyến tên miền con cho phù hợp:

Type: A
 Name: n8n (hoặc tên miền con mong muốn)
 Địa chỉ IP: <IP_OF_YOUR_SERVER>
 

5. Tạo tệp Docker Compose#

Tạo tệp docker-compose.yml. Dán nội dung sau vào tệp:

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
version: "3.7"
 
 services:
   traefik:
     image: "traefik"
     restart: always
     command:
       - "--api=true"
       - "--api.insecure=true"
       - "--providers.docker=true"
       - "--providers.docker.exposedbydefault=false"
       - "--entrypoints.web.address=:80"
       - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
       - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
       - "--entrypoints.websecure.address=:443"
       - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
       - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
       - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
     ports:
       - "80:80"
       - "443:443"
     volumes:
       - traefik_data:/letsencrypt
       - /var/run/docker.sock:/var/run/docker.sock:ro
 
   n8n:
     image: docker.n8n.io/n8nio/n8n
     restart: always
     ports:
       - "127.0.0.1:5678:5678"
     labels:
       - traefik.enable=true
       - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
       - traefik.http.routers.n8n.tls=true
       - traefik.http.routers.n8n.entrypoints=web,websecure
       - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
       - traefik.http.middlewares.n8n.headers.SSLRedirect=true
       - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
       - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
       - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
       - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
       - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
       - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
       - traefik.http.middlewares.n8n.headers.STSPreload=true
       - traefik.http.routers.n8n.middlewares=n8n@docker
     environment:
       - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
       - N8N_PORT=5678
       - N8N_PROTOCOL=https
       - NODE_ENV=production
       - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
       - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
     volumes:
       - n8n_data:/home/node/.n8n
 
 volumes:
   traefik_data:
     external: true
   n8n_data:
     external: true
 

Nếu bạn dự định đọc/ghi các tệp cục bộ bằng n8n (ví dụ: bằng cách sử dụng nút Đọc/Ghi tệp từ đĩa, bạn sẽ cần định cấu hình thư mục dữ liệu cho các tệp đó tại đây. Nếu bạn đang chạy n8n với tư cách người dùng root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

Nếu bạn đang chạy n8n với tư cách người dùng không phải root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

- /home/<YOUR USERNAME>/n8n-local-files:/files
 

Giờ đây, bạn sẽ có thể ghi các tệp vào thư mục /files trong n8n và chúng sẽ xuất hiện trên máy chủ của bạn lần lượt trong /local-files hoặc /home/<YOUR USERNAME>/n8n-local-files.

6. Tạo tệp .env#

Tạo tệp .env và thay đổi cho phù hợp.

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
# Tên miền cấp cao nhất để phục vụ từ đó
 DOMAIN_NAME=example.com
 
 # Tên miền con để phục vụ từ đó
 SUBDOMAIN=n8n
 
 # DOMAIN_NAME và SUBDOMAIN kết hợp quyết định vị trí có thể truy cập n8n
 # ví dụ trên sẽ cho kết quả: https://n8n.example.com
 
 # Múi giờ tùy chọn để đặt múi giờ nào được Cron-Node sử dụng theo mặc định
 # Nếu không đặt, giờ New York sẽ được sử dụng
 GENERIC_TIMEZONE=Europe/Berlin
 
 # Địa chỉ email để sử dụng cho việc tạo chứng chỉ SSL
 SSL_EMAIL=user@example.com
 

7. Tạo thư mục dữ liệu#

Tạo ổ đĩa Docker được xác định là n8n_data. n8n sẽ lưu tệp cơ sở dữ liệu từ SQLite và khóa mã hóa trong ổ đĩa này.

sudo docker volume create n8n_data
 

Tạo ổ đĩa cho dữ liệu Traefik, được xác định là traefik_data.

sudo docker volume create traefik_data
 

8. Bắt đầu Docker Compose#

Giờ đây, n8n có thể được bắt đầu thông qua:

sudo docker compose up -d
 

Để dừng container:

9. Hoàn tất#

Giờ đây, n8n sẽ có thể truy cập được bằng cách sử dụng tổ hợp tên miền con + tên miền được xác định ở trên.
Ví dụ trên sẽ cho kết quả: https://n8n.example.com

n8n sẽ chỉ có thể truy cập được bằng cách sử dụng https chứ không phải bằng cách sử dụng http.

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên DigitalOcean | Tài liệu n8n

Lưu trữ n8n trên DigitalOcean#

Hướng dẫn lưu trữ này sẽ hướng dẫn bạn cách tự lưu trữ n8n trên một droplet của DigitalOcean. Nó sử dụng:

  • Caddy (một reverse proxy) để cho phép truy cập vào Droplet từ internet. Caddy cũng sẽ tự động tạo và quản lý chứng chỉ SSL / TLS cho phiên bản n8n của bạn.
  • Docker Compose để tạo và xác định các thành phần ứng dụng và cách chúng hoạt động cùng nhau.

Các kiến thức cần có để tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng có kinh nghiệm. Các sai sót có thể dẫn đến mất dữ liệu, các vấn đề bảo mật và thời gian chết. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản mới nhất và phiên bản tiếp theo

n8n phát hành phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong môi trường production. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Tạo Droplet#

  1. Đăng nhập vào DigitalOcean.
  2. Chọn dự án để lưu trữ Droplet, hoặc tạo một dự án mới.
  3. Trong dự án của bạn, chọn Droplets từ menu Manage.
  4. Tạo một Droplet mới sử dụng Docker image có sẵn trên tab Marketplace.

Tài nguyên Droplet

Khi tạo Droplet, DigitalOcean yêu cầu bạn chọn gói. Đối với hầu hết các mức sử dụng, gói CPU dùng chung cơ bản là đủ.

Khóa SSH hoặc Mật khẩu

DigitalOcean cho phép bạn chọn giữa xác thực bằng khóa SSH và mật khẩu. Khóa SSH được coi là an toàn hơn.

Đăng nhập vào Droplet của bạn và tạo người dùng mới#

Phần còn lại của hướng dẫn này yêu cầu bạn đăng nhập vào Droplet bằng thiết bị đầu cuối với SSH. Tham khảo Cách kết nối với Droplets bằng SSH để biết thêm thông tin.

Bạn nên tạo một người dùng mới, để tránh làm việc với tư cách người dùng root:

  1. Đăng nhập với tư cách root.
  2. Tạo người dùng mới:
  3. Làm theo hướng dẫn trong CLI để hoàn tất việc tạo người dùng.
  4. Cấp quyền quản trị cho người dùng mới:
    usermod -aG sudo <tên người dùng>
    

    Bây giờ bạn có thể chạy các lệnh với đặc quyền siêu người dùng bằng cách sử dụng sudo trước lệnh.

  5. Làm theo các bước để thiết lập SSH cho người dùng mới: Thêm xác thực bằng Khóa công khai.
  6. Đăng xuất khỏi droplet.
  7. Đăng nhập bằng SSH với tư cách người dùng mới.

Sao chép kho cấu hình#

Docker Compose, n8n và Caddy yêu cầu một loạt các thư mục và tệp cấu hình. Bạn có thể sao chép chúng từ kho này vào thư mục home của người dùng đã đăng nhập trên Droplet của bạn. Các bước sau sẽ cho bạn biết tệp nào cần thay đổi và những thay đổi cần thực hiện.

Sao chép kho với lệnh sau:

git clone https://github.com/n8n-io/n8n-docker-caddy.git

Và thay đổi thư mục thành thư mục gốc của kho bạn đã sao chép:

Các thư mục và tệp mặc định#

Hệ điều hành máy chủ (DigitalOcean Droplet) sao chép hai thư mục bạn đã tạo vào các container Docker để chúng có sẵn cho Docker. Hai thư mục là:

  • caddy_config: Chứa các tệp cấu hình Caddy.
  • local_files: Thư mục chứa các tệp bạn tải lên hoặc thêm bằng n8n.

Tạo Docker volumes#

Để duy trì bộ nhớ cache của Caddy giữa các lần khởi động lại và tăng tốc thời gian khởi động, hãy tạo một volume Docker mà Docker sử dụng lại giữa các lần khởi động lại:

sudo docker volume create caddy_data

Tạo một Docker volume cho dữ liệu n8n:

sudo docker volume create n8n_data

Thiết lập DNS#

n8n thường hoạt động trên một tên miền phụ. Tạo bản ghi DNS với nhà cung cấp của bạn cho tên miền phụ và trỏ nó đến địa chỉ IP của Droplet. Các bước chính xác cho việc này tùy thuộc vào nhà cung cấp DNS của bạn, nhưng thông thường bạn cần tạo bản ghi “A” mới cho tên miền phụ n8n. DigitalOcean cung cấp Giới thiệu về thuật ngữ, thành phần và khái niệm DNS.

Mở cổng#

n8n chạy như một ứng dụng web, vì vậy Droplet cần cho phép truy cập đến lưu lượng truy cập trên cổng 80 cho lưu lượng không an toàn và cổng 443 cho lưu lượng an toàn.

Mở các cổng sau trong tường lửa của Droplet bằng cách chạy hai lệnh sau:

sudo ufw allow 80
sudo ufw allow 443

Cấu hình n8n#

n8n cần một số biến môi trường được thiết lập để chuyển đến ứng dụng đang chạy trong container Docker. Tệp .env ví dụ chứa các phần giữ chỗ bạn cần thay thế bằng các giá trị của riêng bạn.

Mở tệp bằng lệnh sau:

Tệp chứa các nhận xét nội tuyến để giúp bạn biết những gì cần thay đổi.

Tham khảo Biến môi trường để biết chi tiết về biến môi trường n8n.

Tệp Docker Compose#

Tệp Docker Compose (docker-compose.yml) xác định các dịch vụ mà ứng dụng cần, trong trường hợp này là Caddy và n8n.

  • Định nghĩa dịch vụ Caddy xác định các cổng nó sử dụng và các volume cục bộ để sao chép vào container.
  • Định nghĩa dịch vụ n8n xác định các cổng nó sử dụng, các biến môi trường mà n8n cần để chạy (một số được xác định trong tệp .env) và các volume nó cần sao chép vào container.

Tệp Docker Compose sử dụng các biến môi trường được thiết lập trong tệp .env, vì vậy bạn không cần thay đổi nội dung của nó, nhưng để xem qua, hãy chạy lệnh sau:

Cấu hình Caddy#

Caddy cần biết những tên miền nào nó sẽ phục vụ và cổng nào sẽ hiển thị ra bên ngoài. Chỉnh sửa tệp Caddyfile trong thư mục caddy_config.

nano caddy_config/Caddyfile

Thay đổi tên miền giữ chỗ thành của bạn. Nếu bạn làm theo các bước để đặt tên miền phụ là n8n, tên miền đầy đủ của bạn sẽ tương tự như n8n.example.com. n8n trong cài đặt reverse_proxy cho Caddy biết sử dụng định nghĩa dịch vụ được xác định trong tệp docker-compose.yml:

n8n.<tên miền>.<hậu tố> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Nếu bạn sử dụng automate.example.com, Caddyfile của bạn có thể trông như thế này:

automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Khởi động Docker Compose#

Khởi động n8n và Caddy bằng lệnh sau:

sudo docker compose up -d

Việc này có thể mất vài phút.

Kiểm tra thiết lập của bạn#

Trong trình duyệt của bạn, hãy mở URL được tạo từ tên miền phụ và tên miền đã xác định trước đó. Nhập tên người dùng và mật khẩu đã xác định trước đó và bạn sẽ có thể truy cập n8n.

Dừng n8n và Caddy#

Bạn có thể dừng n8n và Caddy bằng lệnh sau:

Cập nhật#

Nếu bạn chạy n8n bằng tệp Docker Compose, hãy làm theo các bước sau để cập nhật n8n:

# Tải phiên bản mới nhất
docker compose pull

# Dừng và xóa phiên bản cũ hơn
docker compose down

# Khởi động container
docker compose up -d

Các bước tiếp theo#

cài đặt n8n với Docker | Tài liệu n8n

Cài đặt Docker#

Docker mang lại những lợi ích sau:

  • Cài đặt n8n trong một môi trường sạch.
  • Dễ dàng thiết lập cơ sở dữ liệu ưa thích của bạn.
  • Có thể tránh các vấn đề do các hệ điều hành khác nhau, vì Docker cung cấp một hệ thống nhất quán.

Bạn cũng có thể sử dụng n8n trong Docker với Docker Compose. Bạn có thể tìm thấy các cấu hình Docker Compose cho các kiến trúc khác nhau trong kho lưu trữ n8n-hosting.

Điều kiện tiên quyết#

Trước khi tiếp tục, hãy cài đặt Docker Desktop.

Người dùng Linux

Docker Desktop có sẵn cho Mac và Windows. Người dùng Linux phải cài đặt Docker EngineDocker Compose riêng cho bản phân phối của bạn.

Các điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên nghiệp. Sai sót có thể dẫn đến mất dữ liệu, các vấn đề về bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyên bạn nên sử dụng n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Bắt đầu n8n#

Từ thiết bị đầu cuối của bạn, hãy chạy:

docker volume create n8n_data

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Lệnh này sẽ tải xuống tất cả các hình ảnh n8n cần thiết và khởi động container của bạn, được hiển thị trên cổng 5678. Để lưu công việc của bạn giữa các lần khởi động lại container, nó cũng gắn một docker volume, n8n_data, để giữ dữ liệu của bạn cục bộ.

Sau đó, bạn có thể truy cập n8n bằng cách mở:
http://localhost:5678

Sử dụng cơ sở dữ liệu thay thế#

Theo mặc định, n8n sử dụng SQLite để lưu thông tin xác thực, các lần thực thi trước đây và quy trình làm việc. n8n cũng hỗ trợ PostgresDB có thể cấu hình bằng các biến môi trường như được nêu chi tiết bên dưới.

Điều quan trọng là vẫn giữ dữ liệu trong thư mục /home/node/.n8n vì nó chứa dữ liệu người dùng n8n và quan trọng hơn là khóa mã hóa cho thông tin xác thực. Nó cũng là tên của webhook khi đường hầm n8n được sử dụng.

Nếu không tìm thấy thư mục nào, n8n sẽ tự động tạo một thư mục khi khởi động. Trong trường hợp này, thông tin xác thực hiện có được lưu bằng khóa mã hóa khác sẽ không thể sử dụng được nữa.

Lưu ý

Việc giữ thư mục /home/node/.n8n ngay cả khi sử dụng cơ sở dữ liệu thay thế là phương pháp hay nhất được khuyến nghị, nhưng không bắt buộc một cách rõ ràng. Khóa mã hóa có thể được cung cấp bằng cách sử dụng biến môi trường N8N_ENCRYPTION_KEY.

PostgresDB#

Để sử dụng n8n với Postgres, hãy cung cấp các thông tin tương ứng:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
 -e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
 -e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
 -e DB_POSTGRESDB_USER=<POSTGRES_USER> \
 -e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
 -e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

Bạn có thể tìm thấy tệp docker-compose hoàn chỉnh cho Postgres tại đây.

Cài đặt múi giờ#

Để xác định múi giờ mà n8n nên sử dụng, có thể đặt biến môi trường GENERIC_TIMEZONE. Biến này được sử dụng bởi các node dựa trên lịch biểu như node Cron.

Múi giờ của hệ thống cũng có thể được đặt riêng. Điều này kiểm soát những gì một số script và lệnh trả về như $ date. Múi giờ hệ thống có thể được đặt bằng cách sử dụng biến môi trường TZ.

Ví dụ sử dụng cùng một múi giờ cho cả hai:

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="Europe/Berlin" \
 -e TZ="Europe/Berlin" \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

Cập nhật#

Từ Docker Desktop của bạn, hãy điều hướng đến tab Images và chọn Pull từ menu ngữ cảnh để tải xuống hình ảnh n8n mới nhất:

Bạn cũng có thể sử dụng dòng lệnh để kéo phiên bản mới nhất hoặc một phiên bản cụ thể:

# Kéo phiên bản mới nhất (ổn định)
docker pull docker.n8n.io/n8nio/n8n

# Kéo phiên bản cụ thể
docker pull docker.n8n.io/n8nio/n8n:0.220.1

# Kéo phiên bản tiếp theo (không ổn định)
docker pull docker.n8n.io/n8nio/n8n:next

Dừng container và khởi động lại. Bạn cũng có thể sử dụng dòng lệnh:

# Lấy ID container
docker ps -a

# Dừng container có ID container_id
docker stop [container_id]

# Xóa container có ID container_id
docker rm [container_id]

# Khởi động container
docker run --name=[container_name] [options] -d docker.n8n.io/n8nio/n8n

Docker Compose#

Nếu bạn chạy n8n bằng tệp Docker Compose, hãy làm theo các bước sau để cập nhật n8n:

# Kéo phiên bản mới nhất
docker compose pull

# Dừng và xóa phiên bản cũ hơn
docker compose down

# Khởi động container
docker compose up -d

Đọc thêm#

Bạn có thể tìm thêm thông tin về thiết lập Docker trong tệp README của Docker Image.

n8n với đường hầm#

Nguy hiểm

Sử dụng điều này để phát triển và thử nghiệm cục bộ. Không an toàn khi sử dụng nó trong sản xuất.

Để có thể sử dụng webhook cho các node kích hoạt của các dịch vụ bên ngoài như GitHub, n8n phải có thể truy cập được từ web. n8n có một dịch vụ đường hầm chuyển hướng các yêu cầu từ máy chủ của n8n đến phiên bản n8n cục bộ của bạn.

Khởi động n8n bằng --tunnel bằng cách chạy:

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n \
 start --tunnel

Các bước tiếp theo#

  • Tìm hiểu thêm về cấu hìnhmở rộng n8n.
  • Hoặc khám phá việc sử dụng n8n: hãy thử Bắt đầu nhanh.

Cài đặt n8n với npm | Tài liệu n8n

npm là một cách nhanh chóng để bắt đầu với n8n trên máy cục bộ của bạn. Bạn phải cài đặt Node.js. n8n yêu cầu Node.js phiên bản 18 trở lên.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next là bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Thử n8n với npx#

Bạn có thể thử n8n mà không cần cài đặt bằng npx.

Từ terminal, chạy:

Lệnh này sẽ tải xuống mọi thứ cần thiết để khởi động n8n. Sau đó, bạn có thể truy cập n8n và bắt đầu xây dựng quy trình làm việc bằng cách mở http://localhost:5678.

Cài đặt toàn cục với npm#

Để cài đặt n8n trên toàn cục, hãy sử dụng npm:

Để cài đặt hoặc cập nhật lên một phiên bản cụ thể của n8n, hãy sử dụng cú pháp @ để chỉ định phiên bản. Ví dụ:

npm install -g n8n@0.126.1

Để cài đặt next:

Sau khi cài đặt, hãy khởi động n8n bằng cách chạy:

Cần nhớ

Người dùng Windows nhớ chuyển vào thư mục .n8n của thư mục Home (~/.n8n) trước khi chạy n8n start.

Các bước tiếp theo#

Thử n8n bằng cách sử dụng Hướng dẫn khởi động nhanh.

Cập nhật#

Để cập nhật phiên bản n8n của bạn lên phiên bản latest, hãy chạy:

Để cài đặt phiên bản next:

n8n với tunnel#

Nguy hiểm

Sử dụng tính năng này cho việc phát triển và thử nghiệm cục bộ. Không an toàn khi sử dụng nó trong sản xuất.

Để có thể sử dụng webhook cho các nút kích hoạt của các dịch vụ bên ngoài như GitHub, n8n phải có thể truy cập được từ web. n8n có một dịch vụ tunnel chuyển hướng các yêu cầu từ máy chủ của n8n đến phiên bản n8n cục bộ của bạn.

Khởi động n8n với --tunnel bằng cách chạy:

Hoàn nguyên nâng cấp#

Cài đặt phiên bản cũ hơn mà bạn muốn quay lại.

Nếu việc nâng cấp liên quan đến việc di chuyển cơ sở dữ liệu:

  1. Kiểm tra tài liệu tính năng và ghi chú phát hành để xem có bất kỳ thay đổi thủ công nào bạn cần thực hiện không.
  2. Chạy n8n db:revert trên phiên bản hiện tại của bạn để khôi phục cơ sở dữ liệu. Nếu bạn muốn hoàn nguyên nhiều hơn một lần di chuyển cơ sở dữ liệu, bạn cần lặp lại quy trình này.

Khắc phục sự cố Windows#

Nếu bạn gặp sự cố khi chạy n8n trên Windows, hãy đảm bảo môi trường Node.js của bạn được thiết lập chính xác. Làm theo hướng dẫn của Microsoft để Cài đặt NodeJS trên Windows.

Zalo
Cảnh báo: Hiện nay có rất nhiều đơn vị SỬ DỤNG LẠI các THÔNG TIN NỘI DUNG ĐÀO TẠO của KHÓA HỌC SALE OTA TỪ OTAVN mà không đảm bảo chất lượng và hỗ trợ về sau. Các bạn muốn đăng ký học SALE OTA uy tín hãy liên hệ trực tiếp với OTA Việt Nam. OTAVN có xây dựng các hình thức đào tạo trực tiếp offline cho doanh nghiệp, đào tạo 1-1 từ xa và tự học online. Chúng tôi có 2 tên miền là: otavietnam.com và tranxuanloc.com (founder) có chia sẻ và đăng tải các thông tin liên quan về OTA/ Sale OTA/ Digital Marketing/ Thiết kế website... Với khách hàng/ đối tác đã sử dụng dịch vụ của OTAVN sẽ được HỖ TRỢ MIỄN PHÍ các vấn đề phát sinh, tư vấn giải đáp sau khi đã hoàn thành khóa học hoặc sau khi đã sử dụng dịch vụ trọn đời. Hotline:0934552325 (iMessage/ Zalo/ Whatsapp) - Email: info@scovietnam.com
Điều khoản sử dụng chung | Chính sách bảo vệ quyền riêng tư | Chính sách hoàn tiền học | Quy trình đặt hàng | Hình thức thanh toán

Chú ý: Nội dung khóa học online có thể thay đổi mà không cần báo trước.