הערה: כאשר מספר זרימות העבודה ב-n8n עולה על מאה ופעולות יומיות עולות על 10,000, ה-SQLite המובנה הופך לצוואר בקבוק. נתקלנו בכך במהלך פריסה אצל לקוח עם זרימת מסמכים אינטנסיבית — זמן האחזור גדל, ביצועים מקבילים חסמו זה את זה. הפתרון: n8n מתארח עצמאית על PostgreSQL עם תור Redis. תצורה זו נבדקה על יותר מ-50 פרויקטים ומטפלת בעד 500 זרימות עבודה במקביל.
להתקנת n8n מתארחת עצמאית בסביבת production, דרישות השרת המינימליות הן 2 vCPU ו-2 GB RAM עבור 10–20 זרימות עבודה; עבור 50+ זרימות עבודה פעילות, אנו ממליצים על 4 GB RAM ו-SSD מהיר. נדרשים Docker ופורטים פתוחים 80/443.
אם אתה צריך לפרוס n8n על השרת שלך עם שליטה מלאה בנתונים וללא מגבלות תוכנית ענן, אתה במקום הנכון. אנו מביאים ניסיון של 10+ שנים ב-DevOps. אנחנו לא רק מריצים קובץ Docker Compose; אנו מגדירים SSL, ניטור Prometheus, גיבויים אוטומטיים וסקיילינג באמצעות workers. התוצאה היא מערכת מוכנה ל-production שלא תאכזב אותך. התצורה הבסיסית שלנו מתחילה ב-$500, תצורת production מלאה ב-$1500. צור קשר — נעריך את הפרויקט שלך ונבחר את התצורה המתאימה.
אילו טכנולוגיות מבטיחות סובלנות תקלות ל-n8n?
לעומסי production, תצורת n8n ברירת המחדל עם SQLite אינה מתאימה. PostgreSQL מטפל בכתיבות במקביל פי 10 מהר יותר מ-SQLite, ו-Redis Queue מחלק ביצועים בין workers — אם worker אחד נכשל, משימות נאספות על ידי אחר. להלן תצורת Docker Compose בסיסית ל-production.
---
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.example.com/
- GENERIC_TIMEZONE=Europe/Moscow
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_EMAIL_MODE=smtp
- N8N_SMTP_HOST=smtp.example.com
- N8N_SMTP_PORT=587
- [email protected]
- N8N_SMTP_PASS=${SMTP_PASSWORD}
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- N8N_CONCURRENCY_PRODUCTION_LIMIT=10
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
n8n-worker:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
command: worker
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- QUEUE_BULL_REDIS_HOST=redis
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
depends_on:
- n8n
- redis
postgres:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --requirepass ${REDIS_PASSWORD}
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
volumes:
n8n_data:
postgres_data:
למה תור Redis קריטי ל-production?
ללא תור, כל ביצועי זרימות העבודה רצים בתהליך n8n יחיד. אם זרימת עבודה אחת נתקעת או צורכת יותר מדי זיכרון, אחרות ממתינות. Redis Queue מחלק משימות בין workers, כל אחד רץ באופן עצמאי. בעומסים העולים על 10 זרימות עבודה במקביל, n8n מתחיל להאט ללא תור. עם תור, הסקיילינג הוא ליניארי: הוסף worker, קבל +10 ביצועים במקביל. בפרויקטים שלנו, מעבר מ-SQLite ל-PostgreSQL והוספת Redis הפחיתו את זמן הביצוע הממוצע של זרימות עבודה ב-40%.
אילו מדדי ביצועים משתפרים?
- מקביליות: PostgreSQL מטפל בעד 100 שאילתות בו-זמנית ללא חסימה; SQLite מטפל ב-1 לכל היותר.
- מהירות כתיבה: PostgreSQL מהיר פי 10 בהכנסות נתונים.
- סקיילינג: Redis מאפשר הגדלת תפוקה ב-300% על ידי הוספת workers.
השוואת תצורות: בסיסית מול Production
| רכיב | בסיסי | Production |
|---|---|---|
| מסד נתונים | SQLite | PostgreSQL 15 |
| תור | אין | Redis 7 |
| ניטור | אין | Prometheus + Grafana |
| גיבוי | ידני | אוטומטי ל-S3 |
| SSL | לא | Let's Encrypt (חידוש אוטומטי) |
| כתובת Webhook | HTTP | HTTPS |
מדדי ביצועים לפני ואחרי
| מדד | ללא אופטימיזציה (SQLite) | עם PostgreSQL + Redis |
|---|---|---|
| מקסימום זרימות עבודה במקביל | 5 | 50+ |
| זמן ביצוע עבור 100 זרימות עבודה | 10 דקות | 2 דקות |
| זמן אחזור בגישה במקביל | 500 ms | 10 ms |
Nginx Reverse Proxy + SSL
server {
listen 443 ssl;
server_name n8n.example.com;
ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Для длинных workflow
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
} סקריפט גיבוי
#!/bin/bash
# backup-n8n.sh
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/backups/n8n
# Дамп PostgreSQL
docker exec n8n-postgres-1 pg_dump -U n8n n8n > "$BACKUP_DIR/n8n_db_$DATE.sql"
# Бэкап credentials и workflow
docker cp n8n-n8n-1:/home/node/.n8n "$BACKUP_DIR/n8n_files_$DATE"
# Загрузка в S3
aws s3 cp "$BACKUP_DIR/n8n_db_$DATE.sql" "s3://backups-bucket/n8n/"
# Удалить бэкапы старше 30 дней
find $BACKUP_DIR -mtime +30 -delete
איך להגדיר ניטור ל-n8n?
n8n מייצא מדדים ב-version: '3.8' services: n8n: image: docker.n8n.io/n8nio/n8n:latest restart: unless-stopped ports: - "5678:5678" environment: - N8N_HOST=n8n.example.com - N8N_PORT=5678 - N8N_PROTOCOL=https - NODE_ENV=production - WEBHOOK_URL=https://n8n.example.com/ - GENERIC_TIMEZONE=Europe/Moscow - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD} - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} - N8N_EMAIL_MODE=smtp - N8N_SMTP_HOST=smtp.example.com - N8N_SMTP_PORT=587 - [email protected] - N8N_SMTP_PASS=${SMTP_PASSWORD} - EXECUTIONS_MODE=queue - QUEUE_BULL_REDIS_HOST=redis - N8N_CONCURRENCY_PRODUCTION_LIMIT=10 volumes: - n8n_data:/home/node/.n8n depends_on: postgres: condition: service_healthy redis: condition: service_healthy n8n-worker: image: docker.n8n.io/n8nio/n8n:latest restart: unless-stopped command: worker environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD} - QUEUE_BULL_REDIS_HOST=redis - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} depends_on: - n8n - redis postgres: image: postgres:15-alpine restart: unless-stopped environment: POSTGRES_DB: n8n POSTGRES_USER: n8n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U n8n"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s volumes: n8n_data: postgres_data: בפורמט Prometheus. הוסף יעד לתצורת Prometheus:
# prometheus.yml scrape_configs: - job_name: 'n8n' static_configs: - targets: ['n8n:5678'] metrics_path: /metrics לאחר מכן, תוכל לייבא לוח מחוונים מוכן של Grafana — התיעוד הרשמי של n8n מכיל תבניות. ניטור מאפשר מעקב אחר זרימות עבודה פעילות, עומס workers, שגיאות וזמני אחזור. בפרויקטים שלנו, זה עזר לזהות צווארי בקבוק מוקדם ולהימנע מהשבתות.
תהליך העבודה שלנו
- ביקורת — אנו בוחנים את התשתית הקיימת, דרישות העומס והאינטגרציות.
- עיצוב — אנו בוחרים גרסאות תמונות Docker, תצורת מסד נתונים ותוכנית גיבוי.
- פריסה — אנו מריצים את הערימה דרך Docker Compose, מגדירים Nginx ו-SSL, ומחברים Redis.
- בדיקות — אנו מריצים בדיקות עומס ובודקים סובלנות תקלות (כשל worker, כשל Redis).
- תיעוד והדרכה — אנו מוסרים את לוח הניהול, התצורות והסקריפטים. אנו מאמנים את הצוות שלך על פעולות בסיסיות.
מה כלול
- Docker Compose עם הערות המותאמות לדומיין ולתשתית שלך.
- Nginx reverse proxy עם חידוש SSL אוטומטי.
- PostgreSQL 15 עם פרמטרים מותאמים.
- Redis 7 עם סיסמה והגדרות שמירה.
- לוח מחוונים של Prometheus + Grafana לניטור.
- סקריפט גיבוי עם העלאה ל-S3.
- תיעוד נלווה (כתובות, פורטים, משתני סביבה).
- שעת הדרכה אחת לצוות (Zoom/teamviewer).
- תמיכה טכנית לשבוע אחד לאחר הפריסה.
לוח זמנים ועלות
התקנה בסיסית (Docker + PostgreSQL + Nginx + SSL) — יום אחד (החל מ-$500). עם Redis, workers, ניטור וגיבויים — 2-3 ימים (החל מ-$1500). העלות מחושבת באופן פרטני לפי מורכבות האינטגרציה ומספר ה-workers. קבל ייעוץ — נשלח הערכת מחיר תוך יום.
אנו מבטיחים פעולה יציבה של n8n המתארח עצמאית שלך תחת כל עומס. הזמן את ההתקנה — ותשכח מבעיות ביצועים ואבטחה.







