Các công việc lặp đi lặp lại thường tiêu tốn rất nhiều thời gian và nguồn lực nhân sự mà không mang lại giá trị gia tăng đáng kể. Tự động hóa chúng có thể dẫn đến hiệu suất lao động cao hơn, giảm thiểu sai sót và nâng cao khả năng phản ứng của doanh nghiệp với sự thay đổi. Bằng cách loại bỏ các công việc lặp đi lặp lại, nhân viên có thể tập trung vào các hoạt động sáng tạo và chiến lược mà con người làm tốt hơn. Một công cụ tự động hóa công việc có thể giúp các doanh nghiệp tiếp cận hiệu quả cao hơn trong việc tự động hóa. N8n cho phép tạo ra các luồng làm việc linh hoạt, kết nối các ứng dụng và dịch vụ khác nhau một cách hiệu quả. Với giao diện trực quan và dễ sử dụng, ngay cả những ai không có kinh nghiệm chuyên sâu cũng có thể xây dựng các luồng tự động hóa phức tạp. Việc triển khai n8n trên máy server là một bước đi chiến lược, giúp doanh nghiệp không chỉ cải thiện hiệu quả hoạt động mà còn có thể phát triển và điều chỉnh các luồng tự động hóa để phù hợp với các yêu cầu mới.
n8n trên Raspberry Pi chạy Debian 12 (Raspbian Bookworm).
Raspberry Pi 4 là một thiết bị phổ biến để chạy các máy chủ nhỏ hoặc các dự án DIY, và cài đặt n8n trên nó có thể rất hữu ích cho việc tự động hóa các tác vụ.
Cập Nhật Hệ Thống: sudo apt update && sudo apt upgrade -y
Raspberry Pi OS (Debian 12) thường không đi kèm với phiên bản mới nhất của Node.js, nên bạn cần tải và cài đặt từ nguồn chính thức.
curl -fsSL //deb.nodesource.com/setup_18.x | sudo bash –
– Sau đó, cài đặt Node.js và npm (quản lý gói cho Node): sudo apt install -y nodejs
Xác nhận rằng Node.js và npm đã được cài đặt thành công: node -v npm -v
Sử dụng lệnh sau để cài đặt n8n toàn cục (trên toàn hệ thống): sudo npm install -g n8n
bạn có thể khởi chạy n8n bằng lệnh sau: n8n start
Để đảm bảo rằng n8n khởi động lại khi Raspberry Pi của bạn khởi động, bạn có thể sử dụng `systemd` để tạo một service. Tạo file cấu hình cho systemd: sudo nano /etc/systemd/system/n8n.service
Thêm nội dung sau vào file đó (thay `<your-user>` bằng tên người dùng của bạn):
[Unit]Description=n8n Workflow Automation Tool
After=syslog.target network-online.target
[Service]Type=simple
User=<your-user>
Group=pi
Environment=”PATH=/usr/bin:/usr/local/bin”
WorkingDirectory=/home/<your-user>
ExecStart=/usr/local/lib/node_modules/n8n/dist/index.js start –tunnel=false –host=0.0.0.0 –port=5678
Restart=on-failure
[Install]WantedBy=multi-user.target
Lưu và thoát (`CTRL + X`, sau đó `Y` để lưu thay đổi).
Sau khi tạo file service, hãy khởi động và kích hoạt n8n với các lệnh sau:
sudo systemctl daemon-reload
sudo systemctl start n8n.service
sudo systemctl enable n8n.service
PM2 (Process Manager 2) là một trình quản lý tiến trình mã nguồn mở, miễn phí và phổ biến dành cho các ứng dụng Node.js. Nó giúp bạn quản lý và duy trì các ứng dụng Node.js trong môi trường sản xuất một cách dễ dàng và hiệu quả.
Cài đặt pm2: npm install -g pm2
Khởi động n8n với pm2: pm2 start n8n
Dừng n8n với pm2: pm2 stop n8n
Khởi động lại n8n với pm2: pm2 restart n8n
Xem nhật ký n8n với pm2: pm2 logs n8n
Khởi động n8n khi khởi động hệ thống: pm2 startup systemd và làm theo hướng dẫn.
Cấu hình biến môi trường
Bạn có thể thiết lập các biến môi trường để ghi đè lên các cấu hình n8n mặc định. Ví dụ, thiết lập biến môi trường N8N_EMAIL_MODE=smtp
pm2 restart n8n –update-env
Bạn có thể tìm hiểu thêm về tất cả các cấu hình có thể cótại đây.
pm2 env id sẽ hiển thị tất cả các biến môi trường được tải vào quy trình pm2 với được chỉ định số id khi chạy pm2 start n8n sẽ thấy, hoặc có thể lấy được id bằng cách chạy pm2 l
PM2 cũng cho phép bạn cấu hình các biến này thông qua tệp cấu hình. Thực hiện lệnh `pm2 init simple` để tạo tệp cấu hình đơn giản.
nano ecosystem.config.js
Mở tệp đã tạo và thay thế mã hiện có bằng đoạn mã bên dưới:
module.exports = {
apps : [{
name : “n8n”,
script : “n8n”,
args: “start –host=0.0.0.0”, // Thêm –host=0.0.0.0 vào đây
cwd: “/home/minhtoan/.n8n”, // Thay bằng đường dẫn thực tế
autorestart: true,
watch: false,
env: {
N8N_PORT: 5678,
N8N_EDITOR_BASE_URL: “//minhtoan209.ddns.net:8003/”,
WEBHOOK_URL: “//minhtoan209.ddns.net:8003/”,
N8N_BASIC_AUTH_ACTIVE:true,
N8N_BASIC_AUTH_USER:”USERNAME”,
N8N_BASIC_AUTH_PASSWORD:”PASSWORD”,
N8N_PROTOCOL: “https”,
WEBHOOK_TUNNEL_URL: “//subdomain.example.com/”,
N8N_HOST: “subdomain.example.com”,
},
}]
};
Bây giờ, để khởi động n8n, hãy thực hiện lệnh:
pm2 start ecosystem.config.js
Lệnh trên sẽ tải cấu hình từ tệp ecosystem.config.js và khởi động n8n.
khởi động lại Nginx và PM2 bằng lệnh sudo systemctl restart nginx và pm2 restart ecosystem.config.js.
Điều hướng đến tên miền của bạn và bây giờ bạn sẽ có thể truy cập n8n.
//blog.n8n.io/how-to-set-up-n8n-via-pm2/
Tự động khởi động n8n khi khởi động lại máy: pm2 startup Lệnh trên yêu cầu bạn chạy một lệnh khác. Sao chép và dán lệnh được đề xuất. PM2 hiện sẽ tự động khởi động lại khi khởi động.
Để cho phiên bản n8n của bạn được cập nhật, bạn cần cài đặt phiên bản n8n mới nhất.
1. Dừng dịch vụ n8n
pm2 stop n8n
2. Cài đặt phiên bản mới nhất của n8n
npm install -g n8n@latest
3. Khởi động lại dịch vụ n8n
pm2 restart n8n
N8N_PORT=6789 n8n start
Tiếp theo Activate “You’re on the Community Edition” bằng email. Lưu ý 1 tài khoản mail chỉ nhận 2 key. Giờ hệ thống phải đúng, điều chỉnh thời gian hệ thống, Đặt lại timezone (ví dụ: Asia/Ho_Chi_Minh) sudo timedatectl set-timezone Asia/Ho_Chi_Minh # GMT+7
Cấu hình Nginx
Tạo hoặc chỉnh sửa một file cấu hình Nginx, thường được lưu trong `/etc/nginx/sites-available/`, để phục vụ giao diện web của n8n. Sau đó, bạn sẽ kích hoạt file cấu hình đó và khởi động lại dịch vụ Nginx.
sudo nano /etc/nginx/sites-available/n8n.conf
Thêm nội dung sau vào file cấu hình;
server {
listen 80;
server_name <your-domain>;
location / {
proxy_pass //localhost:5678; # Địa chỉ của n8n
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} }
server {
listen 443 ssl http2;
server_name <your-domain>;
ssl_certificate /etc/letsencrypt/live/<your-domain>/fullchain.pem; # Đường dẫn tới chứng chỉ SSL của bạn
ssl_certificate_key /etc/letsencrypt/live/<your-domain>/privkey.pem; # Đường dẫn tới khóa riêng tư của bạn
location / { proxy_pass //localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} }
Tạo một liên kết tượng trưng từ `/etc/nginx/sites-available/` đến `/etc/nginx/sites-enabled/`.
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
Lỗi connection lost
Do nó không thể kết nối websocket. Kiểm tra lại cấu hình
location / { proxy_pass //localhost:5678;
chunked_transfer_encoding off;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_ssl_server_name on;
proxy_read_timeout 3600;
proxy_send_timeout 3600;
proxy_set_header Host $host;
proxy_set_header Connection “upgrade”;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Cookie $http_cookie;
proxy_set_header Authorization $http_authorization;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
}
location /webhook/ {
proxy_pass //localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /webhook-test/ {
proxy_pass //localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Sau đó tải lại cấu hình, bạn có thể tìm hiểu thêm trong devtools trong Chrome để xem có thông báo nào giải thích tại sao lại có sự cố kết nối không.
cách chạy lệnh kiểm tra. sudo nginx -t
sudo systemctl restart nginx
Phiên bản miễn phí trên n8n đặt ra một số giới hạn về số lượng quy trình làm việc và người dùng. Ngoài ra, tài liệu có phần hạn chế và ứng dụng này đòi hỏi tư duy kỹ thuật. n8n được tổ chức xung quanh ba khái niệm chính, quy trình làm việc , nút và kết nối .
- Luồng công việc : Luồng công việc chứa toàn bộ chuỗi sự kiện trong một đường ống. Nó bao gồm nhiều nút được liên kết với nhau bằng logic nội bộ.
- Node : Một node là một tác vụ hoặc hành động cụ thể trong một quy trình làm việc lớn hơn. Mỗi node đại diện cho một tác vụ mô-đun và độc lập, chẳng hạn như truy xuất dữ liệu hoặc chạy một tập lệnh. Người dùng có thể dựa các node vào một thư viện các node Core hoặc Actions . Các node Core chứa các chức năng cơ bản được sử dụng rộng rãi, trong khi các Actions tương tác với các ứng dụng và dịch vụ bên ngoài. Người dùng cũng có thể tạo các node tùy chỉnh.
- Kết nối : Kết nối liên kết hai nút với nhau, tạo thành chuỗi thực thi trong quy trình làm việc. Thông thường, đầu ra của một nút bao gồm đầu vào của nút tiếp theo.
Thực thi đề cập đến một trường hợp chạy một quy trình công việc. Mỗi lần thực thi được liên kết với một trình kích hoạt. Trình kích hoạt bắt đầu quy trình công việc khi nó nhận được một sự kiện hoặc điều kiện đủ điều kiện. Ở chế độ thủ công, người dùng phải cố ý thực hiện quy trình công việc bằng trình kích hoạt thủ công. Các quy trình công việc không hoạt động chỉ có thể được khởi chạy thủ công. Ở chế độ sản xuất, một sự kiện hoặc điều kiện bên trong hoặc bên ngoài có thể tự động kích hoạt quy trình công việc. Ví dụ: bộ hẹn giờ có thể khởi chạy quy trình công việc theo lịch trình được xác định trước. n8n chứa một thư viện cốt lõi của các trình kích hoạt tích hợp sẵn .
Để triển khai chuỗi các nút, người dùng có thể chọn từ thư viện n8n lớn về tích hợp tích hợp . Tích hợp là mẫu cho một loại tác vụ nhất định. Người dùng tùy chỉnh từng nút bằng các chi tiết cụ thể của ứng dụng để tích hợp vào quy trình làm việc.
Thư viện tích hợp chứa một số lượng lớn các Nút lõi và Hành động tích hợp sẵn . Các Nút lõi triển khai các tác vụ cơ bản như thực thi tập lệnh shell, logic có điều kiện và truy cập tệp/cơ sở dữ liệu. Bộ sưu tập này cũng hỗ trợ các giao thức và tiêu chuẩn phổ biến bao gồm FTP, GraphQL, Git, HTML, LDAP, Markdown, SSH và XML. Các nút được chỉ định là Hành động có thể kết hợp các ứng dụng, dịch vụ và công cụ bên ngoài. Thư viện Hành động bao gồm hỗ trợ cho nhiều nền tảng khác nhau, bao gồm Facebook, Eventbrite, GitHub, Jira, Gmail, Shopify, Trello, Twitter và nhiều nền tảng khác. Ví dụ: nút Bitly cho phép quy trình làm việc tự động hóa các tác vụ Bitly, ví dụ như tạo, truy xuất hoặc cập nhật liên kết Bitly.
Là một nguồn tài nguyên bổ sung, các nút cộng đồng và tích hợp của bên thứ ba có sẵn. Người dùng cũng có thể tạo các nút của riêng họ để kết hợp chức năng tùy chỉnh hoặc tích hợp với các hệ thống nội bộ. Để biết thông tin về cách tạo nút tùy chỉnh, hãy xem tài liệu nút tùy chỉnh n8n.
//www.linode.com/docs/guides/how-to-use-n8n-to-automate-workflows/
Cài đặt n8n trên Hosting cPanel
Tạo domain có ssl.
Vào SSL/TLS Status. Nhấn Run AutoSSL để cấp chứng chỉ cho domain. Nếu cài đặt SSL thành công sẽ hiển thị dòng màu xanh lá cây và thời hạn của chứng chỉ.
Cấu hình Node.js App trong cPanel
Vào Setup Node.js App trong nhóm Software. Nhấn Create Application, chọn phiên bản Node.js mới nhất > 20.nChọn thư mục gốc đúng với thư mục của domain và chế độ Development.
Application Startup File ghi: node_modules/n8n/bin/n8n
Để ứng dụng sẽ tự vô thư mục nodevenv sử dụng ứng dụng trong đó.
Nhấn Create để khởi tạo ứng dụng.
Sao chép lệnh kích hoạt môi trường Node.js từ phần đầu của trang trong phần Setup Node.js App.
Cài đặt n8n trên hosting cPanel
Truy cập cPanel Terminal, sau đó dán lệnh trên vào Terminal và nhấn Enter.
Khởi tạo npm: npm init -y
Cài đặt n8n: npm install n8n
Biến môi trường
N8N_EDITOR_BASE_URL = //n8n.wpvn.xyz/
N8N_SECURE_COOKIE = false
WEBHOOK_URL = //n8n.wpvn.xyz/

Bấm vào Open của Application URL để mở trang web.
Thêm Workflow
Vào trang //n8n.io/workflows/
Ví dụ:
//n8n.io/workflows/3018-automated-content-generation-and-publishing-wordpress/
//n8n.io/workflows/3085-automate-seo-optimized-wordpress-posts-with-ai-and-google-sheets/
Bấm vào Use for free, chọn copy template Json, dán vào tạo thành 1 file json, hoặc bấm Ctrl + V để dán vào Workflow.
Tạo 1 Workflow mới, bấm vào nút … trên cùng bên phải chọn import form file và chọn file json.
Sao đó xem những node có dấu tam giác thì chỉnh sửa thay các chính thực API.
gỡ cài đặt n8n
sudo npm uninstall -g n8n
Xem có còn chạy ps -ef | grep n8n
Để xác định chính xác vị trí của thư mục .n8n, bạn có thể chạy lệnh find ~ -type d -name “.n8n”
Cài đặt trong Mac
Phiên bản Node.js 23.11.0 của bạn hiện không được n8n hỗ trợ. Vui lòng sử dụng Node.js v18.17.0 (khuyến nghị), v20 hoặc v22 thay thế! Xem phiên bản brew search node
Bước 0: Mở Terminal
Bước 1: brew install node@18
Bước 2: npm install n8n -g
Bước 3: n8n -> Hiển thị mở trình duyệt: //localhost:5678/
Bước 4: curl -o- //raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Bước 5: Đóng và mở lại terminal
Bước 6: nvm — version
Bước 7: nvm install 18.17.0
Bước 8: nvm use 18.17.0
Bước 9: npm install -g n8n
Bước 10: n8n
Bước 11: mở trình duyệt: //localhost:5678/
ứng dụng Trò chuyện đơn giản sử dụng Azure OpenAI
Thêm nút kích hoạt: Khi nhận được tin nhắn trò chuyện.
Thêm AI Agent. Khi bạn thêm một mô hình, có một số tùy chọn. Tôi sẽ sử dụng Azure Open AI. Để sử dụng, bạn cần thêm thông tin xác thực. Đây là curl mà tôi sử dụng trong Postman: ‘ //myresource.openai.azure.com/openai/deployments/gpt-4o-mini/chat/completions?api-version=2024-02-xxx’ \
Điền các phần bắt buộc như thế này:
- tên tài nguyên: myresource
- Khóa API: khóa API Azure của bạn
- Phiên bản API: 2024–02-xxx
Sau đó, bạn cần viết tên triển khai của mình ở đây (không phải tên mô hình mà là tên triển khai của bạn). Sau đó, bạn có thể chạy quy trình công việc đầu tiên của mình.
KẾT NỐI VỚI GROQ
Groq cung cấp quyền truy cập vào các mô hình mở như Mixtral và LLaMA với khả năng suy luận cực kỳ nhanh.
Khi bạn mở tài khoản từ //console.groq.com/home , bạn sẽ thấy một thông báo như thế này:
curl //api.groq.com/openai/v1/chat/completions -s \
-H “Content-Type: application/json” \
-H “Authorization: Bearer APIKEY” \
-d ‘{ “model”: “meta-llama/llama-4-scout-17b-16e-instruct”,
“messages”: [{ “role”: “user”,
“content”: “Giải thích tầm quan trọng của các mô hình ngôn ngữ nhanh” }] }’
Nếu bạn bối rối về phần “openai” trong URL, đừng lo lắng!
n8n nodes mcp
//medium.com/@balci.pelin/n8n-with-mcp-13e9ba0c10c9
n8n cục bộ trên máy Mac bằng Docker
Ưu điểm (Ưu điểm):
Không có chi phí định kỳ cho đám mây (dành cho n8n cục bộ): Bạn đang tận dụng phần cứng hiện có của mình, do đó không có phí theo giờ hoặc theo mức sử dụng cho chính n8n. Điều này hoàn hảo cho việc học tập và thử nghiệm.
Thiết lập ban đầu được đơn giản hóa: So với việc cấu hình dịch vụ đám mây, cơ sở dữ liệu và quy tắc mạng, việc thiết lập và chạy vùng chứa Docker trên máy Mac của bạn cực kỳ đơn giản.
Quyền riêng tư và kiểm soát dữ liệu hoàn chỉnh: Dữ liệu n8n của bạn (quy trình làm việc, thông tin xác thực, lịch sử thực hiện) hoàn toàn nằm trên máy của bạn. Bạn có toàn quyền kiểm soát dữ liệu của mình, điều này rất quan trọng đối với các hoạt động tự động hóa nhạy cảm.
Khả năng ngoại tuyến: Xây dựng và thử nghiệm quy trình làm việc ngay cả khi không có kết nối internet (mặc dù các nút dịch vụ bên ngoài vẫn cần có kết nối).
Nhược điểm (Nhược điểm):
Tính khả dụng: n8n sẽ chỉ chạy khi máy Mac của bạn được bật và Docker Desktop đang hoạt động. Nếu máy tính xách tay của bạn chuyển sang chế độ ngủ, tắt máy hoặc mất điện, n8n sẽ dừng lại, khiến nó không phù hợp với quy trình sản xuất cần chạy liên tục (ví dụ: tác vụ theo lịch trình, trình nghe webhook).
Thách thức về quyền truy cập công khai: Nếu quy trình công việc của bạn cần nhận webhook từ các dịch vụ bên ngoài (ví dụ: Stripe, Shopify, API tùy chỉnh), thì phiên bản n8n cục bộ của bạn thường sẽ không thể truy cập trực tiếp từ internet. Bạn sẽ cần các dịch vụ đường hầm như ngrokđể thử nghiệm hoặc một phiên bản được triển khai công khai cho webhook trực tiếp.
Chi phí bảo trì: Bạn chịu trách nhiệm cập nhật Docker Desktop, Node.js (nếu cài đặt trực tiếp) và n8n.
Không dành cho sản xuất: Như đã đề cập, cơ sở dữ liệu SQLite mặc định được sử dụng trong thiết lập cục bộ nhanh này không đủ mạnh cho môi trường sản xuất . Nó có thể dẫn đến hỏng dữ liệu hoặc sự cố hiệu suất khi tải.
Tóm lại: Tự lưu trữ n8n trên máy Mac của bạn là cách tốt nhất để bắt đầu nếu bạn đang học, phát triển hoặc tạo mẫu. Nó cung cấp một môi trường nhanh, miễn phí và dễ dàng. Khi quy trình làm việc của bạn mạnh mẽ và yêu cầu hoạt động liên tục hoặc quyền truy cập công khai, đó là lúc bạn chuyển sang triển khai đám mây như Google Cloud Run.
Bước 1: Cài đặt Docker Desktop cho Mac
Tải xuống Docker Desktop: Truy cập trang web chính thức của Docker: //docs.docker.com/desktop/install/mac-install/
Chọn Chip của bạn: Tải xuống phiên bản tương thích với bộ xử lý của máy Mac (Apple Chip cho dòng M, Intel Chip cho máy Mac cũ hơn).
Cài đặt: Mở .dmg tệp đã tải xuống và kéo Docker Desktop.app vào thư mục Ứng dụng của bạn.
Khởi chạy & Cấu hình: Mở Docker Desktop từ thư mục Applications của bạn. Làm theo bất kỳ lời nhắc nào trên màn hình để cấp các quyền cần thiết (bạn có thể cần nhập mật khẩu của máy Mac). Đợi biểu tượng cá voi Docker xuất hiện trên thanh menu của máy Mac, cho biết máy đã khởi động hoàn toàn.
Bước 2: Tạo một thư mục chuyên dụng cho n8n
Mở Terminal: Tìm Terminal Applications/Utilities/Terminalhoặc sử dụng Spotlight (Cmd + Space, nhập “Terminal”).
Tạo và điều hướng:
mkdir ~/n8n-local
cd ~/n8n-local
Thao tác này sẽ tạo một thư mục có tên n8n-localtrong thư mục gốc của bạn và đặt bạn vào bên trong thư mục đó.
Bước 3: Tạo docker-compose.ymltệp của bạn
Tệp YAML này hướng dẫn Docker cách chạy vùng chứa n8n của bạn, bao gồm các cấu hình cần thiết và tính bền vững của dữ liệu.
Tạo tệp: Trong ~/n8n-localthư mục của bạn, hãy tạo một tệp có tên docker-compose.yml. Bạn có thể sử dụng trình soạn thảo mã yêu thích của mình (như VS Code, Sublime Text) hoặc trình soạn thảo đầu cuối như nano:
Giả sử bạn đã cài đặt vscode:
code docker-compose.yml
- Dán Nội dung: Sao chép và dán cấu hình sau vào docker-compose.ymltệp của bạn:
- YAML
services:
n8n:
image: n8nio/n8n # Uses the official n8n Docker image
restart: always # Ensures n8n restarts if it crashes or after a system reboot
ports:
– “5678:5678” # Maps your Mac’s port 5678 to the container’s port 5678
volumes:
# This is CRUCIAL for data persistence! It maps a hidden folder in your Mac’s home directory
# to the n8n data directory inside the container. All your workflows, credentials, etc.,
# will be saved here and persist across container restarts or removals.
– ~/.n8n:/home/node/.n8n
environment:
# — ESSENTIAL SECURITY & CONFIGURATION SETTINGS (EDIT THESE!) —
– N8N_BASIC_AUTH_ACTIVE=true # Enables basic HTTP authentication for n8n access
– N8N_BASIC_AUTH_USER=your_admin_username # <— CHANGE THIS to your desired username
– N8N_BASIC_AUTH_PASSWORD=your_strong_secure_password # <— CHANGE THIS to a VERY STRONG, UNIQUE PASSWORD
– N8N_ENCRYPTION_KEY=a_long_random_string_for_encryption_1234567890 # <— CHANGE THIS to a long, complex, random key (e.g., 32+ chars). DO NOT LOSE THIS!
# ——————————————————————
# General n8n network settings for local access
– N8N_HOST=localhost
– N8N_PORT=5678
– N8N_PROTOCOL=http
– N8N_PATH=/
– NODE_ENV=development # Good for local debugging (more verbose logging)
– TZ=America/Los_Angeles # <— CHANGE THIS to your actual timezone (e.g., Europe/London, Asia/Tokyo)
# Database settings: SQLite is the default for convenience here.
# REMINDER: SQLite is NOT recommended for production environments.
# For production, you’d configure PostgreSQL or MySQL here.
# – DB_TYPE=sqlite (not strictly necessary as it’s the default if no other DB is configured)
Tùy chỉnh Biến môi trường: Đây là bước quan trọng nhất để đảm bảo bảo mật và hoạt động bình thường!
+ N8N_BASIC_AUTH_USER: Đổi your_admin_usernametên người dùng bạn muốn.
+ N8N_BASIC_AUTH_PASSWORD: Thay thế your_strong_secure_passwordbằng mật khẩu mạnh và duy nhất. Đây là thông tin đăng nhập chính của bạn.
+ N8N_ENCRYPTION_KEY: Tạo một chuỗi dài, ngẫu nhiên (ví dụ: 32 ký tự trở lên) và sử dụng ở đây. Khóa này mã hóa dữ liệu nhạy cảm như thông tin xác thực trong n8n. Mất khóa này có nghĩa là mất quyền truy cập vào thông tin xác thực đã lưu của bạn!
+ TZ: Cập nhật America/Los_Angelestheo múi giờ chính xác của bạn (ví dụ: Europe/Berlin, Asia/Singapore). Bạn có thể tìm danh sách các múi giờ hợp lệ tại đây .
Lưu tệp: Lưu docker-compose.yml(Ctrl+X, sau đó nhấn Y, sau đó nhấn Enter nếu sử dụng nano).
Bước 4: Khởi chạy n8n với Docker Compose
Bây giờ, hãy để Docker thực hiện phép thuật của nó!
Đảm bảo bạn đang ở đúng thư mục:
cd ~/n8n-local
Bắt đầu n8n:
docker compose up -d
+ docker compose up: Đọc dữ liệu của bạn docker-compose.ymlvà khởi động các dịch vụ đã xác định.
+ -d: Chạy các container ở chế độ “tách biệt” để chúng hoạt động ở chế độ nền, giải phóng thiết bị đầu cuối của bạn.
Lần đầu tiên, Docker sẽ tải xuống hình ảnh n8n, có thể mất vài phút. Các lần khởi động tiếp theo sẽ nhanh hơn nhiều. Bạn sẽ thấy đầu ra tương tự như những gì bạn đã chia sẻ, cho biết hình ảnh đang được kéo và container đang khởi động.
Để kiểm tra xem nó có đang chạy không:
docker compose ps
Bạn nên xem STATUSxét dịch vụ Upnày n8n.
Để dừng n8n chạy:
docker compose down
Bước 5: Truy cập vào phiên bản n8n cục bộ của bạn
Bạn đã sẵn sàng để bắt đầu xây dựng quy trình làm việc!
- Mở trình duyệt web Chrome của bạn: Truy cập //localhost:5678.
- Đăng nhập: Bạn sẽ được nhắc nhập tên người dùng và mật khẩu đã cấu hình trong docker-compose.yml( your_admin_usernamevà your_strong_secure_password).
- Thiết lập ban đầu: Lần đầu tiên bạn đăng nhập, n8n sẽ hướng dẫn bạn thiết lập tài khoản quản trị viên nhanh chóng.
Xin chúc mừng! Bây giờ bạn đã có một phiên bản n8n đầy đủ chức năng chạy cục bộ trên máy Mac của mình. Bạn có thể bắt đầu tạo quy trình làm việc, thử nghiệm với các nút và khám phá sức mạnh của tự động hóa ngay lập tức.
Tiếp theo là gì?
Khi n8n chạy cục bộ, bạn có thể:
+ Khám phá UI: Làm quen với giao diện n8n, bảng điều khiển nút và khung làm việc.
+ Xây dựng quy trình làm việc đầu tiên của bạn: Hãy thử một quy trình làm việc đơn giản, như gửi tin nhắn Slack khi bạn kích hoạt webhook hoặc thay đổi kích thước hình ảnh từ thư mục cục bộ.
+ Thử nghiệm với các nút: Kéo và thả các nút khác nhau vào canvas và xem chúng có thể làm gì.
+ Tìm hiểu gỡ lỗi: Cài đặt này NODE_ENV=developmentsẽ cung cấp cho bạn nhật ký chi tiết hơn để khắc phục sự cố.
Khi quy trình làm việc cục bộ của bạn được hoàn thiện và bạn đã sẵn sàng cho hoạt động liên tục, truy cập công khai hoặc quy mô lớn hơn, bước tiếp theo sẽ là khám phá việc triển khai n8n lên môi trường đám mây như Google Cloud Run, nơi bạn sẽ chuyển sang cơ sở dữ liệu mạnh mẽ như PostgreSQL. Nhưng hiện tại, hãy tận hưởng sự tự do và linh hoạt của việc tự lưu trữ cục bộ!
Lỗi
Error: connect ECONNREFUSED 127.0.0.1:443
thay đổi file /etc/hosts khi đang loay hoay với việc khác để trỏ tên miền nextcloud đến 127.0.0.1
sudo nano /etc/hosts
Dữ liệu thực hiện sau khi chạy
Cơ sở dữ liệu n8n của bạn có thể tăng kích thước và hết dung lượng lưu trữ. Để tránh điều này, n8n khuyên bạn không nên lưu dữ liệu không cần thiết và bật tính năng cắt bỏ dữ liệu thực thi cũ. //docs.n8n.io/hosting/scaling/execution-data/
Tài liệu và mẫu tham khảo
Đã xây dựng một GPT tùy chỉnh tạo luồng công việc n8n từ các lời nhắc. Bạn chỉ cần nhập nội dung bạn muốn (“lấy tweet, lọc theo từ khóa, gửi đến Slack”) và nó sẽ tạo một phiên bản có thể sao chép và dán để bạn có thể nhập trực tiếp vào n8n. //chatgpt.com/g/g-68281c0ba40c8191adcf931c4a1c44f0-n8n-workflow-generator
kho lưu trữ 200 mẫu: //github.com/enescingoz/awesome-n8n-templates
Trường hợp không thể active free n8n license key trên self host Community Edition
FROM docker.n8n.io/n8nio/n8n:latest
USER root
RUN sed -i “s/getValue(feature) {/getValue(feature) {return undefined;/g” /usr/local/lib/node_modules/n8n/dist/license.js && \
sed -i “s/isAPIDisabled() {/isAPIDisabled() {return false;/g” /usr/local/lib/node_modules/n8n/dist/license.js && \
sed -i “s/isLicensed(feature) {/isLicensed(feature) {if (feature == ‘feat\:showNonProdBanner’) {return false} else {return true};/g” /usr/local/lib/node_modules/n8n/dist/license.js && \
sed -i “s/getPlanName() {/getPlanName() {return ‘Entreprise’;/g” /usr/local/lib/node_modules/n8n/dist/license.js && \
sed -i “s/async renew() {/async renew() {return;/g” /usr/local/lib/node_modules/n8n/dist/license.js
USER node
Giải thích rõ cho `sed` là viết tắt của **stream editor**, công cụ thường dùng trong Linux để **tìm và thay thế chuỗi trong file**.
Cú pháp cơ bản: sed -i “s/chuỗi_cũ/chuỗi_mới/g” file
* `-i` : sửa trực tiếp trong file (in-place).
* `s/…/…/g` : nghĩa là “substitute” (thay thế) tất cả (`g = global`) chuỗi cũ bằng chuỗi mới.
Trong lệnh
sed -i “s/getValue(feature) {/getValue(feature) {return undefined;/g” /usr/local/lib/node_modules/n8n/dist/license.js
Nó sẽ:
* Tìm đoạn code `getValue(feature) {`
* Thay bằng `getValue(feature) {return undefined;`
\=> Tức là ép hàm `getValue` trong file `license.js` luôn **trả về `undefined`**.
Tương tự:
sed -i “s/isAPIDisabled() {/isAPIDisabled() {return false;/g” …
* Biến hàm `isAPIDisabled()` thành **luôn trả về `false`**.
sed -i “s/isLicensed(feature) {/isLicensed(feature) {if (feature == ‘feat\:showNonProdBanner’) {return false} else {return true};/g” …
* Thay đổi logic của hàm `isLicensed`:
* Nếu kiểm tra feature `”feat:showNonProdBanner”` → trả về `false` (tắt banner cảnh báo).
* Ngược lại, luôn trả về `true` (coi như có bản quyền đầy đủ).
sed -i “s/getPlanName() {/getPlanName() {return ‘Entreprise’;/g” …
* Ép hàm `getPlanName()` luôn trả về `’Entreprise’`.
sed -i “s/async renew() {/async renew() {return;/g” …
* Làm cho hàm `renew()` (dùng để làm mới license) **không làm gì cả**.
//git.ibaraki.app/crack/n8n/-/blob/master/Dockerfile?ref_type=heads
Chia luồng cho nhiều máy làm
Cấu hình biến môi trường:
EXECUTIONS_MODE: “queue”,
QUEUE_BULL_WORKER_COUNT: 2,
REDIS_HOST: “127.0.0.1”,
REDIS_PORT: 6379,
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: true,
DB_TYPE: “postgresdb”,
DB_POSTGRESDB_HOST: ‘localhost’,
DB_POSTGRESDB_PORT: 5432,
DB_POSTGRESDB_USER: “…user”,
DB_POSTGRESDB_PASSWORD: “…”,
DB_POSTGRESDB_DATABASE: “…db”,
Khi chạy ở chế độ hàng đợi queue (phân tán, dùng Redis và worker), bạn sẽ thiết lập nhiều phiên bản n8n, với một phiên bản chính nhận thông tin quy trình làm việc (chẳng hạn như kích hoạt) và các phiên bản worker thực hiện các thao tác thực thi.
Mỗi worker là một phiên bản Node.js riêng, chạy ởmainchế độ riêng biệt, nhưng có thể xử lý nhiều quy trình làm việc đồng thời do IOPS (số thao tác đầu vào-đầu ra mỗi giây) cao.
Bằng cách sử dụng các phiên bản worker và chạy ở chế độ hàng đợi, bạn có thể tăng quy mô n8n (bằng cách thêm worker) và giảm quy mô n8n (bằng cách xóa worker) khi cần để xử lý khối lượng công việc.
Đây là quy trình:
- Phiên bản n8n chính xử lý bộ đếm thời gian và lệnh gọi webhook, tạo (nhưng không chạy) quá trình thực thi quy trình công việc.
- Nó chuyển ID thực thi đến một trình môi giới tin nhắn,Redis, nơi duy trì hàng đợi các lệnh thực thi đang chờ xử lý và cho phép công nhân tiếp theo có thể tiếp nhận chúng.
- Một công nhân trong hồ bơi nhận được tin nhắn từ Redis.
- Người lao động sử dụng ID thực thi để lấy thông tin quy trình làm việc từ cơ sở dữ liệu.
- Sau khi hoàn tất quá trình thực thi quy trình công việc, người lao động:
- Ghi kết quả vào cơ sở dữ liệu.
- Gửi bài tới Redis, nói rằng việc thực hiện đã hoàn tất.
- Redis thông báo cho phiên bản chính.
[Main process] → Tạo execution và “enqueue” vào Redis
↓
[Redis] → Lưu job trong hàng đợi
↓
[Worker] → Lấy job từ Redis và thực thi
↓
[Lưu kết quả vào DB]

//docs.n8n.io/hosting/scaling/queue-mode/
Xem video: //www.youtube.com/watch?v=QpyJ5B_hOdk
Redis có đang chạy không: redis-cli ping
Nếu trả về PONG thì Redis đang hoạt động.
PostgreSQL (PostgresQL) hay chưa: psql –version
tạo database riêng cho n8n: sudo -u postgres psql
Trong PostgreSQL shell:
CREATE USER n8n_user WITH PASSWORD ‘mật_khẩu_mạnh’;
CREATE DATABASE n8n_db OWNER n8n_user;
GRANT ALL PRIVILEGES ON DATABASE n8n_db TO n8n_user;
\q
PostgreSQL phù hợp hơn SQLite khi bạn dùng n8n ở quy mô lớn hoặc có nhiều worker.
Nút Telegram, zalo đòi hỏi subdomain
Trong quy trình làm việc thêm một nút Telegram Trigger. Nút Telegram sẽ tự động tạo một webhook khi quy trình làm việc được thực thi. Nút này sử dụng tên miền của bạn: //my-n8n.example.com/webhooks/<unique-id>. Đảm bảo URL này có thể truy cập được từ internet công cộng và HTTPS/TLS được cấu hình chính xác (chứng chỉ tự ký hoạt động nếu bạn tắt xác minh nghiêm ngặt, nhưng nên sử dụng chứng chỉ CA hợp lệ). Khi bạn chạy quy trình làm việc lần đầu tiên, n8n sẽ gửi yêu cầu setWebhook đến Telegram với URL ở trên. Nếu bạn đang chạy n8n cục bộ, hãy sử dụng proxy ngược (NGINX/Traefik) hoặc dịch vụ đường hầm như:
– [ngrok](//ngrok.com/)
– [localtunnel](//github.com/localtunnel/localtunnel)
– Cloudflare Tunnel (Argo Tunnel)
Mục tiêu là có một URL HTTPS trỏ đến phiên bản n8n của bạn, ví dụ: //my‑n8n.example.com
localtunnel, ngrok cho phép bạn dễ dàng kiểm tra và chia sẻ máy chủ cục bộ của mình! Không cần phải loay hoay với DNS hay triển khai chỉ để người khác kiểm tra các thay đổi của bạn.Thích hợp để làm việc với các công cụ kiểm tra trình duyệt như browserling hoặc các dịch vụ gọi lại api bên ngoài như twilio yêu cầu url công khai cho lệnh gọi lại. Mỗi lần chạy sẽ tạo URL mới.
Dùng Cloudflare
Truy cập Cloudflare Dashboard > Zero Trust > Tunnels.
Cài và kiểm tra: cloudflared –version
tạo tunnel mới: cloudflared tunnel create <tunnel-name>
cấu hinh route: cloudflared tunnel route dns <tunnel-name> <hostname>
chạy và xem lỗi: cloudflared tunnel run –token <new-tunnel-token>
Tạo file Certificate: cloudflared tunnel login
Mở link và đăng nhập xác thực thì lúc này sẽ tạo ra file, copy file đến thư mục chung:
sudo mkdir -p /etc/cloudflared
sudo mv ~/.cloudflared/cert.pem /etc/cloudflared/cert.pem
gán quyền truy cập:
sudo chmod 600 /etc/cloudflared/cert.pem
sudo chown $(whoami): /etc/cloudflared/cert.pem
Mở file cấu hình ~/.cloudflared/config.yml or /etc/cloudflared/config.yml bổ sung thêm:
tunnel: <your-tunnel-id>
credentials-file: /etc/cloudflared/<tunnel-id>.json
cert-file: /etc/cloudflared/cert.pem
ingress:
– hostname: abc.n.com
service: //localhost:5678
– service: http_status:404
Vào kiểm tra DNS, //dash.cloudflare.com/…./n.com/dns/records
xem CNAME lưu abc.n.com hiện đang có trỏ <tunnel-id>.cfargotunnel.com
Type: CNAME
Name: abc
Target: <tunnel-id>.cfargotunnel.com
Proxied: Yes
Nếu không có, tạo nó: cloudflared tunnel route dns <tunnel-name> abc.n.com
xem log: cloudflared –loglevel debug tunnel run –token <your-tunnel-token>
Xem trang thái //one.dash.cloudflare.com/…./networks/tunnels
Xóa tunnel đã tồn tại
cloudflared tunnel delete <tunnel-name>
và cách file đã tạo: rm ~/.cloudflared/<tunnel-id>.json
sudo systemctl status cloudflared
để cài dịch vụ tự chạy khi khởi động: sudo cloudflared service install
Cần gở ra: sudo cloudflared service uninstall
Xong thì cấu hinh môi trường:
Nếu webhooks không hoạt động, hãy kiểm tra chúng: curl //abc.n.com/webhook/<your-webhook-path>
Dùng console trong code node
Bạn có thấyconsole.logthông báo này không? Nó thực sự được in trong bảng điều khiển Chrome Dev Tools khi tôi nhấp vào nút “Thực thi quy trình làm việc” hoặc nút “Kiểm tra bước”.

Và đây là một tính năng cực kỳ hữu ích: các gói npm bên ngoài có thể được khởi chạy bên trong nút mã JS của n8n (chỉ trong thiết lập tự lưu trữ, bạn không thể làm điều này trên n8n Cloud, ít nhất là vào tháng 4 năm 2024). Bạn không thể làm điều này trong: Make, Zapier. Pipedream ngang bằng với n8n (hoặc thậm chí tốt hơn) về khả năng thực thi mã JS.
Tuy nhiên, nó không thể đọc/ghi vào hệ thống tập tin hoặc mạng.
10 trường hợp sử dụng n8n
//kalashvasaniya1.medium.com/10-insane-n8n-use-cases-c8f6a819be2d
1. Bộ định tuyến quy trình làm việc AI -> Chọn mô hình thông minh nhất mọi lúc
Hãy tưởng tượng bạn hỏi ChatGPT điều gì đó, nhưng tóm lại, Claude tốt hơn, còn về mặt lập trình, GPT-4 lại vượt trội hơn.
Với n8n, bạn có thể tự động chuyển hướng yêu cầu của mình đến LLM tốt nhất dựa trên nhiệm vụ.
Tiết kiệm chi phí API
Luôn sử dụng mô hình chính xác nhất
Có khả năng mở rộng hoàn hảo nếu bạn làm việc với nhiều công cụ AI
Giống như có một cảnh sát giao thông AI cá nhân vậy.
2. Trợ lý nghiên cứu sâu tự động
Cung cấp cho n8n một chủ đề -> công cụ này sẽ thu thập thông tin trên web -> tóm tắt các điểm chính -> tạo báo cáo PDF có định dạng rõ ràng -> gửi email cho bạn.
Hoàn hảo cho:
Học sinh
Những người sáng lập đang nghiên cứu đối thủ cạnh tranh
Các nhà văn chuẩn bị nội dung nhanh hơn
Một cú nhấp chuột. Xong.
3. Tìm kiếm trên YouTube như Google
Bạn đã bao giờ xem một hướng dẫn dài 45 phút chỉ để tìm một dòng thông tin chưa?
Ừ… cũng vậy.
Với n8n, bạn có thể:
Lấy bản ghi từ các video trên YouTube
Lưu trữ chúng trong cơ sở dữ liệu vector
Làm cho chúng có thể tìm kiếm đầy đủ
Nhập từ khóa -> boom -> kết quả có dấu thời gian.
Không còn phải mất công xem lại video như người tiền sử nữa.
4. Tự động tạo bảng thông tin từ Google Trang tính
Bảng tính rất nhàm chán.
Bảng điều khiển thì không.
Sử dụng n8n để:
Lấy dữ liệu trực tiếp từ Google Trang tính
Tự động tạo đồ thị và biểu đồ
Gửi báo cáo trực quan hàng tuần tới Slack hoặc email
Hoàn hảo cho việc theo dõi tài chính, số liệu sản phẩm hoặc báo cáo khách hàng.
5. Xây dựng cơ sở dữ liệu bằng tiếng Anh đơn giản
Hãy nói to điều này:
“Tôi muốn có một cơ sở dữ liệu để theo dõi đơn hàng, trạng thái và thanh toán của khách hàng.”
n8n + AI = thiết lập Airtable tức thì .
Bạn mô tả cấu trúc theo ngôn ngữ tự nhiên → n8n sẽ tạo cơ sở dữ liệu cho bạn.
Không cần thiết kế sơ đồ thủ công. Không đau đầu.
6. Trình quản lý cuộc họp thông minh
Tất cả chúng ta đều ghét việc lên lịch trình phức tạp.
n8n giúp bạn làm điều đó dễ dàng hơn:
Kiểm tra lịch trống của bạn
Tìm các khe mở
Đề xuất thời gian tối ưu
Tự động gửi liên kết Zoom/Meet
Nhắc nhở người tham dự qua WhatsApp hoặc email
Bạn có thể bỏ qua việc phải qua lại.
7. Nhà máy sản xuất phim ngắn lan truyền trên YouTube
Cái này thật điên rồ:
Kéo ý tưởng nội dung đang thịnh hành
Tự động tạo tập lệnh bằng ChatGPT
Tạo giọng nói qua 11 Labs
Khâu hình ảnh bằng Creatomate
Tải trực tiếp lên YouTube Shorts
Có, bạn thực sự có thể tự động hóa một nhà máy sản xuất nội dung .
Bí quyết tăng trưởng của bạn giờ đây… rảnh tay.
8. PostgreSQL Query Genius
Không biết SQL? Không sao cả.
Đưa cho n8n một câu hỏi bằng ngôn ngữ tự nhiên như sau:
“Cho tôi xem 10 sản phẩm có lợi nhuận cao nhất trong tháng này.”
Nó sẽ:
Dịch sang SQL
Chạy truy vấn trên DB PostgreSQL của bạn
Trả lại những hiểu biết sâu sắc tuyệt đẹp ngay lập tức
Hoàn hảo cho những người sáng lập, nhà tiếp thị hoặc nhà phân tích muốn có câu trả lời nhanh chóng mà không cần động đến mã.
9. Chiến dịch tiếp thị được hỗ trợ bởi AI
Hãy để n8n xử lý hoạt động tiếp thị của bạn:
Lấy đánh giá của khách hàng
Sử dụng ChatGPT để tạo bản sao email được cá nhân hóa
Gửi chiến dịch qua Gmail, SendGrid hoặc WhatsApp
Theo dõi lượt mở, lượt nhấp và lượt chuyển đổi theo thời gian thực
Nhóm tiếp thị của bạn = bị thay thế bằng một quy trình làm việc duy nhất.
10. Quy trình làm việc tự động hóa kết hợp
Đây chính là bí quyết:
n8n không cần phải tự mình làm mọi việc nặng nhọc.
Sử dụng nó như một người điều phối :
Kích hoạt tập lệnh Python
Gọi API bên ngoài
Kết nối nhiều dịch vụ thành một luồng thông suốt
Hãy coi n8n như nhạc trưởng của dàn nhạc tự động hóa của bạn.
Suy nghĩ cuối cùng
Hầu hết mọi người sử dụng n8n như một trình duyệt Zapier cao cấp hơn.
Nhưng đó chỉ là những thứ bề nổi .
10 quy trình làm việc này là gì?
Họ ở đẳng cấp tiếp theo.
Chúng tiết kiệm thời gian , cắt giảm chi phí và mở ra những quy trình làm việc mà bạn không nghĩ là có thể thực hiện được .

Bài viết liên quan: