N8n ("Node-based automation") là một nền tảng tự động hóa workflow mã nguồn mở, giúp bạn kết nối các ứng dụng và dịch vụ khác nhau mà không cần viết nhiều code. Nó giống như Zapier hoặc Make (Integromat) nhưng mạnh mẽ hơn, có thể tự host và tuỳ chỉnh linh hoạt.
Dưới đây là một số lý do khiến n8n trở thành lựa chọn lý tưởng:
n8n có thể được sử dụng trong nhiều lĩnh vực khác nhau, bao gồm:
Bạn có thể cài đặt n8n theo nhiều cách:
Docker là cách đơn giản nhất để chạy n8n:
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
Cài đặt trên máy local (Node.js)
npm install -g n8n
n8n start
Tạo docker compose file
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
redis:
image: redis:6-alpine
container_name: redis
restart: always
ports:
- "6379:6379"
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis_data:/data
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}
- N8N_BASIC_AUTH_ACTIVE=${BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${BASIC_AUTH_PASSWORD}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=${POSTGRES_DB_HOST}
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DATABASE}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_METRICS_ALLOW_UNAUTHORIZED=true
- TRUST_PROXY=true
- DB_POSTGRESDB_SSL=true
- DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED=false
- N8N_REDIS_HOST=redis
- N8N_REDIS_PORT=6379
- N8N_QUEUE_BULL_REDIS_HOST=redis
- N8N_QUEUE_BULL_REDIS_PORT=6379
#- N8N_SMTP_HOST=smtp.gmail.com
#- N8N_SMTP_PORT=587
#- N8N_SMTP_USER=
#- N8N_SMTP_PASS=
#- N8N_SMTP_SENDER=
#- N8N_SMTP_SSL=false
#- N8N_SMTP_TLS=true
- N8N_EMAIL_MODE=smtp
- N8N_SMTP_HOST=email-smtp.us-east-1.amazonaws.com
- N8N_SMTP_PORT=587
- N8N_SMTP_USER=
- N8N_SMTP_PASS=
- N8N_SMTP_SSL=false
- N8N_SMTP_SENDER=
- N8N_RUNNERS_ENABLED=true
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
depends_on:
- traefik
- redis
volumes:
n8n_data:
redis_data:
traefik_data:
Tạo file .env
# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
# The top level domain to serve from
DOMAIN_NAME=example.com.vn
# The subdomain to serve from
SUBDOMAIN=n8n
# The above example serve n8n at: https://n8n.example.com.vn
# Optional timezone to set which gets used by Cron and other scheduling nodes
# New York is the default value if not set
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
# The email address to use for the TLS/SSL certificate creation
SSL_EMAIL=example@gmail.com
POSTGRES_DB_HOST=
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DATABASE=
BASIC_AUTH_ACTIVE=
BASIC_AUTH_USER=
BASIC_AUTH_PASSWORD=
Chạy ứng dụng
// Start
docker-compose up -d
// Stop
docker-compose down
// Check log
docker-compose logs -f n8n
// Access app
docker-compose exec n8n sh
Mặc định sau khi cài đặt xong thì n8n sẽ chạy ở post 5678. Sau đó, truy cập http://localhost:5678 để bắt đầu sử dụng.
N8n là công cụ mạnh mẽ giúp bạn tự động hóa công việc mà không cần viết quá nhiều code. Nếu bạn muốn tiết kiệm thời gian và tăng hiệu suất làm việc, hãy thử ngay hôm nay!