0

n8n là gì? Hướng dẫn cài đặt n8n từ A đến Z

Share

Giới thiệu

Trong thời đại số, tự động hóa và tích hợp API đã trở thành chìa khóa để doanh nghiệp tối ưu hóa quy trình làm việc. n8n là một trong những công cụ tự động hóa tiên tiến giúp bạn kết nối và điều phối các ứng dụng, dịch vụ một cách dễ dàng và linh hoạt. Bài viết dưới đây sẽ giải thích chi tiết n8n là gìn8n automation mang lại lợi ích gì cho doanh nghiệp.

n8n Là Gì?

n8n là một công cụ mã nguồn mở giúp xây dựng các workflow tự động hóa mà không cần viết quá nhiều mã code. Với giao diện trực quan và khả năng tích hợp mạnh mẽ, n8n cho phép người dùng:

  • Tích hợp API và dịch vụ: Kết nối với hàng trăm ứng dụng như Google Sheets, Slack, GitHub, v.v.
  • Xây dựng workflow trực quan: Tạo các chuỗi tác vụ tự động từ đơn giản đến phức tạp thông qua việc kéo thả các node.
  • Tùy biến và mở rộng: Vì là mã nguồn mở, n8n có thể được tùy biến theo nhu cầu cụ thể của từng doanh nghiệp.

Trang chủ của n8n là n8n.io. Và n8n có thể seflhost nên chi phí triển khai thấp hơn rất nhiều so với các công cụ khác.

n8n Automation Là Gì?

n8n automation là quá trình sử dụng n8n để tự động hóa các quy trình làm việc, từ việc thu thập dữ liệu, xử lý thông tin đến giao tiếp với khách hàng. Các lợi ích nổi bật của n8n automation bao gồm:

  • Tiết kiệm thời gian và chi phí: Tự động hóa các tác vụ lặp đi lặp lại, giảm thiểu sai sót và tăng hiệu suất làm việc.
  • Tích hợp linh hoạt: Kết nối nhiều dịch vụ và ứng dụng khác nhau, giúp đồng bộ hóa dữ liệu và quy trình kinh doanh.
  • Quản trị dễ dàng: Giao diện trực quan giúp theo dõi và quản lý các workflow một cách hiệu quả, đồng thời dễ dàng cập nhật khi có thay đổi.
  • Tùy biến theo nhu cầu: Với tính năng mã nguồn mở, doanh nghiệp có thể tùy chỉnh n8n để đáp ứng các yêu cầu đặc thù.

Ứng Dụng Thực Tiễn Của n8n Automation

n8n automation được áp dụng trong nhiều lĩnh vực như:

  • Marketing Automation: Tự động gửi email, đăng bài trên mạng xã hội, và theo dõi hiệu quả chiến dịch.
  • Quản lý dữ liệu: Tự động thu thập, xử lý và phân tích dữ liệu từ nhiều nguồn khác nhau.
  • Hỗ trợ khách hàng: Tích hợp với chatbot để cải thiện quy trình trả lời và xử lý yêu cầu của khách hàng.
  • Tích hợp hệ thống nội bộ: Đồng bộ hóa dữ liệu giữa các hệ thống quản trị, CRM và ERP.

Lời Kết

Với khả năng kết nối linh hoạt và tính tùy biến cao, n8n và n8n automation mở ra cơ hội mới cho doanh nghiệp trong việc tối ưu hóa quy trình và giảm thiểu chi phí vận hành. Dù bạn là người mới làm quen hay là chuyên gia trong lĩnh vực tự động hóa, n8n là công cụ hữu ích giúp biến những ý tưởng sáng tạo thành hiện thực thông qua các workflow tự động.

Hướng dẫn cài đặt n8n

Mình có nhờ anh Việt bên 123host làm hướng dẫn cài đặt từ A->Z n8n trên VPS. Bạn có thể đọc tại đây nhé.

Sau khi đã hoàn tất việc mua VPS và trỏ domain về IP VPS, chúng ta đã có thể tiến hành cài đặt N8N và sử dụng N8N trên VPS.

Cài đặt docker

Chúng ta thực thi các lệnh sau để cài đặt docker trên VPS Ubuntu 22.04.

Đầu tiên chúng ta sẽ tiến hành update hệ thống.

apt-get update -y

Thêm các GPG key để có thể cài đặt Docker:

apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

Tiến hành thêm repository của docker:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/nul

Sau khi thêm repository chúng ta sẽ tiến hành update hệ thống.

apt-get update -y

Sau khi thêm repository chúng ta sẽ tiến hành update hệ thống.

apt-get update -y

Cài đặt docker

apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Sau khi đã cài đặt thành công docker chúng ta có thể kiểm tra bằng lệnh sau:

docker -v

Cài đặt PostgreSQL

Tiếp theo chúng ta sẽ tiến hành cài đặt PostgreSQL bằng cách thực thi lệnh sau:

apt install -y postgresql postgresql-contrib

Để PostgreSQL để listen port cả trên local và IPv4 public chúng ta thực thi lệnh sau:

sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /etc/postgresql/*/main/postgresql.conf

Tiến hành kiểm tra IP của docker, để chúng ta có thể cấu hình cho phép dãy địa chỉ IP của docker kết nối đến database

ip add | grep docker

Sau khi có IP của docker chúng ta sẽ thực hiện cấu hình cho phép dãy địa chỉ IP của docker kết nối đến database PostgreSQL.

echo "host all all 172.18.0.0/16 md5" | tee -a /etc/postgresql/*/main/pg_hba.conf

Sau khi đã thực hiện các bước cấu hình trên tiến hành khởi động lại PostgreSQL để áp dụng cấu hình mới. Và cấu hình cho PostgreSQL chạy cùng hệ thống khi khởi động lại VPS.

systemctl restart postgresql
systemctl enable postgresql

Tiến hành kiểm tra lại trạng thái PostgreSQL:

systemctl status postgresql

Tiến hành tạo User and Database để cấu hình kết nối cho N8N bằng cách thực thi lệnh sau:

sudo -i -u postgres

Truy cập vào psql bằng lệnh sau:

psql

Sau khi kết nối postgres chúng ta sẽ thực hiện tạo User and Database

CREATE DATABASE [database_name];
CREATE USER [user_name] WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE [database_name] TO [user_name];
\q

Bạn vui lòng đổi sang thông tin User and Database phù hợp.

Sau khi tạo hoàn tất chúng ta có thể kiểm tra lại thông tin đã đúng chưa bằng cách thực thi lệnh sau:

psql -h localhost -U[user_name] -d[database_name]

Tạo thư mục docker n8n

Tiến hành tạo thư mục n8n để chứa file docker-compose.yml.

mkdir n8n

Di chuyển vào thư mục n8n.

cd n8n

Tiến hành tạo file docker-compose.yml với nội dung như sau:

version: '3.8'
services:
n8n:
image:docker.n8n.io/n8nio/n8n
restart:always
environment:
-DB_TYPE=postgresdb
-DB_POSTGRESDB_HOST=IP_VPS
-DB_POSTGRESDB_PORT=5432
-DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
-DB_POSTGRESDB_USER=${POSTGRES_USER}
-DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
-N8N_BASIC_AUTH_ACTIVE=true
-N8N_BASIC_AUTH_USER
-N8N_BASIC_AUTH_PASSWORD
-N8N_HOST=${DOMAIN_NAME}
-N8N_PORT=5678
-N8N_PROTOCOL=https
-NODE_ENV=production
-WEBHOOK_URL=https://${DOMAIN_NAME}/
-GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
-N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
-N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
-EXECUTIONS_DATA_SAVE_ON_ERROR=all
-EXECUTIONS_DATA_SAVE_ON_SUCCESS=all
-EXECUTIONS_DATA_SAVE_ON_PROGRESS=true
-EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=true
-EXECUTIONS_DATA_PRUNE=true
-EXECUTIONS_DATA_MAX_AGE=168
-EXECUTIONS_DATA_PRUNE_MAX_COUNT=30000
ports:
-5678:5678
volumes:
-./.n8n_storage:/home/node/.n8n

Bạn cần thay IP VPS của bạn vào mục DB_POSTGRESDB_HOST.

Sau đó chúng ta sẽ tạo file .env để khai báo các biến cho file docker-compose.yml với nội dung sau:

POSTGRES_USER=[user_name]
POSTGRES_PASSWORD=[password]
POSTGRES_DB=[database_name]
# The top level domain to serve from
DOMAIN_NAME=[domain_n8n]
# The user name to use for authentication - IMPORTANT ALWAYS CHANGE!
N8N_BASIC_AUTH_USER=n8n_user
# The password to use for authentication - IMPORTANT ALWAYS CHANGE!
N8N_BASIC_AUTH_PASSWORD=[password]
# Optional timezone to set which gets used by Cron-Node by default
# If not set New York time will be used
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
N8N_ENCRYPTION_KEY=[random]

Bạn cần thay đổi các giá trị trong [] cho phù hợp với khai báo của bạn.

Sau đó tiến hành run docker-compose để N8N có thể hoạt động.

docker compose up -d

Để kiểm tra container có run thành công không chúng ta thực thi lệnh sau:

docker ps

Lưu ý: Nếu trong quá trình start container bị lỗi thì lỗi liên quan đến quyền của thư mục .n8n_storage, chúng ta sẽ tiến hành phân quyền lại thư mục này bằng thực thi lệnh sau:

chmod -R 755 ./.n8n_storage

Sau đó tiến hành tắt container n8n bị lỗi trong quá trình build:

docker compose down

Rồi tiến hành start lại container:

docker compose up -d

Cài đặt nginx

Để cấu hình proxy pass cho domain n8n dùng để truy cập N8N chúng ta cần cài đặt nginx.

apt -y install nginx

Tiến hành khởi động nginx và cấu hình nginx khởi động cùng hệ thống.

systemctl start nginx
systemctl enable nginx

Sau khi đã cài đặt nginx chúng ta tiến hành tạo file cấu hình nginx /etc/nginx/conf.d/[n8n_domain].conf cụ thể như sau:

server {
listen80;
server_name [n8n_domain];
# Proxy settings
location/{
proxy_passhttp://127.0.0.1:5678;
proxy_http_version1.1;
proxy_set_headerUpgrade$http_upgrade;
proxy_set_headerConnection"upgrade";
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerX-Forwarded-Proto$scheme;
proxy_set_headerX-Frame-OptionsSAMEORIGIN;
proxy_buffers1664k;
proxy_buffer_size128k;
client_max_body_size10M;
}
}

Để cấp phát SSL cho domain chúng ta cần tiến hành cài đặt certbot

apt install certbot python3-certbot-nginx -y

Thực hiện cấp phát SSL cho domain bằng cách thực thi lệnh sau:

certbot --nginx -d [n8n_domain]

Sau khi đã cấp phát SSL chúng ta đã có thể truy cập domain và sử dụng n8n.

Qua hướng dẫn này chúng ta đã tìm hiểu về cách cài đặt N8N trên Ubuntu, chúc các bạn thao tác thành công.