Отметим: когда количество workflow в n8n переваливает за сотню, а число операций в день превышает 10 000, встроенный SQLite становится узким горлышком. Мы столкнулись с этим при развертывании n8n для клиента с интенсивным документооборотом — задержки росли, параллельные выполнения блокировали друг друга. Решение — self-hosted n8n на PostgreSQL с очередью Redis. Эта конфигурация проверена на 50+ проектах и выдерживает нагрузку до 500 параллельных workflow.
Если вам нужно развернуть n8n на собственном сервере с полным контролем над данными и без ограничений облачных планов, — вы по адресу. У нас за плечами 10+ лет опыта в DevOps. Мы не просто установим Docker Compose, но и настроим SSL, мониторинг Prometheus, автоматические бэкапы и масштабирование через воркеры. На выходе получите production-ready систему, которая не подведёт. Свяжитесь с нами — оценим ваш проект и подберём конфигурацию.
Какие технологии обеспечивают отказоустойчивость n8n?
Для production-нагрузки стандартная установка n8n с SQLite не подходит. PostgreSQL справляется с конкурентными записями в 10 раз быстрее SQLite, а Redis Queue распределяет выполнения между воркерами — если один воркер падает, задачи подхватывает другой. Ниже — базовая конфигурация Docker Compose для продакшна.
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?
Без очереди все выполнения workflow запускаются в одном процессе n8n. Если один workflow завис или потребляет много памяти, остальные ждут. Redis Queue распределяет задания между воркерами, каждый работает независимо. При нагрузке > 10 параллельных workflow без очереди n8n начинает тормозить. С очередью — линейное масштабирование: добавили воркер — получили +10 параллельных выполнений. В наших проектах замена SQLite на PostgreSQL и добавление Redis сократило время выполнения workflow в среднем на 40%.
Какие показатели производительности улучшаются?
- Конкурентность: PostgreSQL выполняет до 100 одновременных запросов без блокировок, SQLite — не более 1.
- Скорость записи: PostgreSQL в 10 раз быстрее при вставке данных.
- Масштабирование: Redis позволяет увеличить пропускную способность на 300% добавлением воркеров.
Сравнение конфигураций: базовая vs production
| Компонент | Базовая | Production |
|---|---|---|
| База данных | SQLite | PostgreSQL 15 |
| Очередь | Нет | Redis 7 |
| Мониторинг | Нет | Prometheus + Grafana |
| Резервное копирование | Ручное | Автоматическое в S3 |
| SSL | Нет | Let's Encrypt (auto-renew) |
| Webhook URL | HTTP | HTTPS |
Метрики производительности до и после
| Метрика | Без оптимизации (SQLite) | С PostgreSQL + Redis |
|---|---|---|
| Макс. параллельных workflow | 5 | 50+ |
| Время выполнения 100 workflow | 10 минут | 2 минуты |
| Задержка при конкурентном доступе | 500 мс | 10 мс |
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 экспортирует метрики на /metrics в формате Prometheus. Добавляем таргет в конфиг Prometheus:
# prometheus.yml
scrape_configs:
- job_name: 'n8n'
static_configs:
- targets: ['n8n:5678']
metrics_path: /metrics
После этого вы можете импортировать готовый дашборд для Grafana — официальная документация n8n содержит шаблоны. Мониторинг позволяет отслеживать количество активных workflow, загрузку воркеров, ошибки и задержки. В наших проектах это помогло заранее выявить узкие места и избежать простоев.
Процесс работы над проектом
- Аудит — изучаем текущую инфраструктуру, требования к нагрузке, интеграции.
- Проектирование — выбираем версии Docker-образов, конфигурацию БД, схему бэкапов.
- Развертывание — поднимаем стек по Docker Compose, настраиваем Nginx и SSL, подключаем Redis.
- Тестирование — прогоняем нагрузочные тесты, проверяем отказоустойчивость (падение воркера, Redis).
- Документация и обучение — передаем админку, конфиги, скрипты. Обучаем команду базовым операциям.
Что входит в работу
- Docker Compose с комментариями под ваш домен и инфраструктуру.
- Nginx reverse proxy с автоматическим обновлением SSL.
- PostgreSQL 15 с оптимизированными параметрами.
- Redis 7 с паролем и настройками персистентности.
- Prometheus + Grafana дашборд для мониторинга.
- Скрипт бэкапа с загрузкой в S3.
- Сопроводительная документация (адреса, порты, переменные окружения).
- 1 час обучения команды (Zoom/teamviewer).
- Техподдержка на неделю после внедрения.
Сроки и стоимость
Базовая установка (Docker + PostgreSQL + Nginx + SSL) — 1 день. С Redis, воркерами, мониторингом и бэкапами — 2-3 дня. Стоимость рассчитывается индивидуально в зависимости от сложности интеграций и количества воркеров. Получите консультацию — пришлем оценку в течение дня.
Мы гарантируем стабильную работу вашего n8n под любой нагрузкой. Закажите настройку — и забудьте о проблемах с производительностью и безопасностью.







