n8n là loại công cụ bạn bắt đầu dùng nhẹ nhàng rồi lặng lẽ định tuyến một nửa các hoạt động của mình qua. Ở điểm đó "nó chạy trên một ghế cloud của ai đó, đo theo lần thực thi, với các API key của tôi sống trên máy chủ của họ" bắt đầu cảm giác kém tuyệt. Tự host sửa cả ba — chi phí cố định, không trần thực thi, và các khóa của bạn ở lại trên một cỗ máy bạn sở hữu. Với Docker nó là một việc mười lăm phút.
Nó thực sự cần bao nhiêu máy chủ
Các con số trung thực trước, để bạn không mua thừa hay thiếu:
- ~2 GB RAM là điểm ngọt — n8n cộng cơ sở dữ liệu Postgres của nó cộng các workflow bình thường nằm thoải mái ở đây.
- 1 GB hoạt động nếu các workflow của bạn nhẹ, nhưng bạn sẽ để ý nó trong các lần chạy lớn hơn.
- 4 GB nếu bạn làm thực thi song song nặng hoặc đẩy payload lớn qua.
n8n không đói CPU lúc nghỉ; nó tăng vọt trong các lần chạy. Một cỗ máy 2 lõi ổn cho hầu hết các thiết lập. (Nhiều hơn về khớp thông số với khối lượng công việc trong hướng dẫn chọn kích cỡ.)
Thiết lập Docker
Trên một cỗ máy Ubuntu/Debian mới, cài Docker:
curl -fsSL https://get.docker.com | sudo sh
Tạo một thư mục và một docker-compose.yml — n8n với một volume bền bỉ và Postgres:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PASSWORD=change-me
volumes:
- ./n8n-data:/home/node/.n8n
depends_on: [db]
db:
image: postgres:16
restart: always
environment:
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=n8n
volumes:
- ./db-data:/var/lib/postgresql/data
sudo docker compose up -d
Hai điều đáng chỉ ra: các volume (n8n-data, db-data) là cái giữ các workflow của bạn sống qua các lần khởi động lại và nâng cấp — đừng bỏ qua chúng. Và n8n gắn vào 127.0.0.1, không phải 0.0.0.0 — nó không phơi ra internet trực tiếp. Đó là có chủ đích; bước tiếp theo xử lý truy cập một cách an toàn.
Truy cập: HTTPS hoặc một tunnel
- URL công khai (cần cho các node OAuth và webhook): trỏ một subdomain tới máy chủ và chạy một reverse proxy (Caddy ít công sức nhất — HTTPS tự động) ở phía trước
127.0.0.1:5678. Đây là chỗ một gói IP riêng vừa, vì bạn kiểm soát các cổng và DNS. - Chỉ cho bản thân bạn, không tên miền: bỏ qua proxy và tới nó qua một SSH tunnel —
ssh -L 5678:127.0.0.1:5678 user@server, rồi mởlocalhost:5678. Hoạt động tốt trên một VPS NAT.
Khóa nó lại và giữ nó lên
n8n giữ các API key và thông tin đăng nhập của bạn, nên cỗ máy phải chặt: làm danh sách kiểm tra bảo mật (các khóa SSH, tường lửa, không đăng nhập mật khẩu) trước khi bạn đặt thông tin đăng nhập thật vào. restart: always trong tập tin compose đã nghĩa là Docker đưa n8n trở lại sau một lần sập hoặc khởi động lại — đó là thời gian hoạt động của bạn được xử lý.
Nó có đáng không?
Trung thực với bản thân về khối lượng. Nếu bạn chạy các tự động hóa liên tục, tự host thắng về chi phí (cố định so với theo-lần-thực-thi) và loại bỏ mọi giới hạn workflow/lần chạy. Nếu bạn kích hoạt vài luồng một tháng, một ghế được host ít phiền hơn. Nhưng lập luận kiểm soát đứng vững bất kể: các workflow của bạn, dữ liệu của bạn, các khóa của bạn — trên máy chủ của bạn, không thuê. Cho hầu hết những người trở nên nghiêm túc về n8n, đó là yếu tố quyết định.
Một cỗ máy 2 GB, một tập tin compose, một tên miền (hoặc một tunnel), và bạn đang chạy trung tâm tự động hóa của riêng mình — thanh toán được bằng crypto không KYC, hoạt động trong vài phút.
Thiết lập sẵn: xem VPS cho n8n — gói khuyến nghị và một triển khai crypto một phút.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.