Установка n8n: Самостоятельно размещаемая автоматизация рабочих процессов
Установка n8n через Docker, интеграции webhook, создание рабочих процессов, подключение 400+ приложений, запланированные задачи, управление учётными данными и развёртывание в production.
Содержание
Установка n8n: Самостоятельно размещаемая автоматизация рабочих процессов
n8n — это платформа автоматизации рабочих процессов с открытым исходным кодом и визуальным интерфейсом, которая может подключать 400+ приложений и сервисов. Вы можете запустить её на собственном сервере как самостоятельно размещаемую альтернативу таким сервисам, как Zapier и Make (Integromat). Вы можете создавать сложные автоматизации без написания кода или добавлять пользовательскую логику с помощью JavaScript/Python.
Что такое n8n?
n8n (сокращение от «nodemation») позволяет создавать рабочие процессы с помощью узловой визуальной программирования. Ключевые особенности:
- 400+ интеграций: Slack, GitHub, Google Sheets, Notion, Airtable и другие
- Поддержка Webhook: Использование HTTP-запросов в качестве триггеров
- Запланированные задачи: Планирование на основе Cron
- Поддержка кода: Узлы JavaScript и Python
- Обработка ошибок: Механизм повтора и потоки ошибок
- Зашифрованные учётные данные: API-ключи хранятся безопасно
Системные требования
- Сервер с установленными Docker и Docker Compose
- Минимум 1 ГБ ОЗУ (рекомендуется 2 ГБ)
- PostgreSQL (рекомендуется для production) или SQLite
Базовая установка Docker
Быстрый старт с SQLite
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
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
- N8N_ENCRYPTION_KEY=надёжный-ключ-шифрования
volumes:
- ./n8n-data:/home/node/.n8n
ports:
- "127.0.0.1:5678:5678"
# Запустить контейнер
docker compose up -d
# Проверить логи
docker logs n8n -f
N8N_ENCRYPTION_KEY используется для шифрования учётных данных. Если вы потеряете это значение, все ваши учётные данные станут недоступными. Храните его в безопасном месте.
Production-установка с PostgreSQL
version: '3.8'
services:
postgres:
image: postgres:15
container_name: n8n-postgres
restart: unless-stopped
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: надёжный-пароль
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=надёжный-пароль
- N8N_HOST=n8n.example.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com/
- GENERIC_TIMEZONE=Europe/Moscow
- N8N_ENCRYPTION_KEY=надёжный-ключ-шифрования
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=пароль-администратора
volumes:
- ./n8n-data:/home/node/.n8n
ports:
- "127.0.0.1:5678:5678"
volumes:
postgres-data:
Nginx Reverse Proxy
server {
listen 80;
server_name n8n.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
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://127.0.0.1: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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600;
}
}
Создание базовых рабочих процессов
Первый рабочий процесс: Webhook → Уведомление в Slack
- Нажмите New Workflow
- Добавьте узел с + → выберите Webhook
- HTTP Method: POST
- Path:
/slack-notify
- Добавьте новый узел с + → выберите Slack
- Operation: Send Message
- Channel: #general
- Message:
{{ $json.message }}
- Сохраните и Активируйте
# Тест webhook
curl -X POST https://n8n.example.com/webhook/slack-notify \
-H "Content-Type: application/json" \
-d '{"message": "Привет, n8n!"}'
Типы триггеров
Cron (Расписание) Триггер
# Cron-выражения
0 9 * * 1-5 # Будни в 09:00
*/15 * * * * # Каждые 15 минут
0 0 * * * # Каждую полночь
0 8 * * 1 # Каждый понедельник в 08:00
Управление учётными данными
Настройки → Учётные данные → Добавить учётные данные
Пример: GitHub API
- Тип учётных данных: GitHub API
- Access Token: ghp_xxxxxxxxxxxx
- Проверить соединение
Популярные примеры рабочих процессов
GitHub → Уведомление в Slack
GitHub Trigger (событие push)
→ IF (branch == 'main')
→ Slack ("Новый деплой: {{ $json.commits[0].message }}")
→ Email (уведомить команду)
Ежедневный отчёт
Cron Trigger (каждое утро в 09:00)
→ PostgreSQL (получить вчерашние продажи)
→ Code (форматировать данные)
→ Google Sheets (добавить в отчёт)
→ Slack (отправить сводку)
Режим очереди (Высокая нагрузка)
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
redis:
image: redis:7-alpine
container_name: n8n-redis
restart: unless-stopped
Резервное копирование
# Резервное копирование данных n8n
tar -czf n8n-backup-$(date +%Y%m%d).tar.gz ./n8n-data/
# Резервное копирование PostgreSQL
docker exec n8n-postgres pg_dump -U n8n n8n > n8n-db-$(date +%Y%m%d).sql
С n8n на серверах REXE VPS вы можете автоматизировать все свои бизнес-процессы. С 2 ГБ ОЗУ можно запускать сотни рабочих процессов.
Связанные статьи
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.