Не проверен202 971

Автоматизация

n8n

n8n соединяет сервисы между собой без программирования: рабочий процесс собирается из узлов на холсте, запускается по расписанию, вебхуку или событию и умеет ветвиться, повторять шаги и обрабатывать ошибки. Больше пятисот готовых интеграций, узел с произвольным кодом на JavaScript и Python, работа с LLM. Данные и учётные записи остаются на вашем сервере.

Вместо ZapierВместо MakeВместо Microsoft Power AutomateLicenseRef-n8n-Sustainable-Use-1.0Версия 2.36.9

Обзор

n8n — конструктор автоматизаций: рабочий процесс собирается на холсте из узлов, где каждый узел получает данные от предыдущего, преобразует их и передаёт дальше. Запуск идёт по расписанию, по вебхуку, по событию во внешнем сервисе или вручную из редактора. Есть ветвления, циклы, повторные попытки и отдельные ветки обработки ошибок.

В комплекте больше пятисот готовых интеграций — почта, мессенджеры, базы данных, CRM, облачные хранилища, LLM-провайдеры. Чего нет среди узлов, добирается универсальным HTTP-запросом или узлом с собственным кодом на JavaScript и Python. В отличие от Zapier и Make, и сами процессы, и учётные данные к сервисам остаются на вашем сервере.

Рецепт запускает n8n вместе с PostgreSQL: на SQLite история выполнений быстро упирается в блокировки записи. Панель публикуется только на 127.0.0.1:5678.

Изолированный smoke-тест ещё не выполнялся, поэтому опубликованный рецепт пока нельзя считать проверенным.

Оценка безопасности

Контейнеры работают без privileged, host network и Docker socket, с no-new-privileges. PostgreSQL наружу не публикуется, порт n8n привязан к 127.0.0.1.

Главная особенность n8n в том, что инстанс собирает доступы ко всем подключённым сервисам. Они лежат в базе зашифрованными, а ключ задаётся в N8N_ENCRYPTION_KEY. Дамп базы вместе с .env равнозначен связке паролей от почты, CRM и облака сразу, поэтому архивы нужно хранить и передавать как секрет.

Второй риск — исполнение кода. Узел Code выполняет произвольный JavaScript и Python, а community-узлы устанавливают npm-пакеты внутрь инстанса. Всё это работает с правами процесса n8n внутри его контейнера. Официальный sandbox-исполнитель изолирует такой код, но требует privileged Docker-in-Docker, поэтому в рецепт он не включён: давайте доступ к редактору только тем, кому доверяете запуск кода на сервере.

Третье: вебхуки и редактор живут на одном порту. Публикация вебхука в интернет открывает снаружи и панель управления, так что HTTPS и стойкий пароль владельца обязательны.

Отслеживание обновлений

Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.

Новые релизы

Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.

Актуальная версия 2.36.931 авг. 2026 г., 23:16 UTC

Критические уязвимости

Результат отдельного сканирования Docker-образов, а не проверки Compose.

Не провереноПроверка не выполнялась

Несовместимые обновления

Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.

Не провереноПроверка не выполнялась

compose.yaml

Изменения upstream Compose относительно проверенного рецепта.

Upstream Compose не отслеживаетсяПроверка не выполнялась

Устаревшие Docker-образы

Проверка закреплённых тегов образов на наличие новых версий.

Все образы актуальны31 авг. 2026 г., 23:16 UTC

От наблюдения к действию

План обновления

Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.

2.36.92.36.9
  1. Открыть основания релиза

    Для источника с ручным отслеживанием нет точной ссылки на release notes. Начните с источников проекта ниже.

  2. Проверить границу версий

    Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.

  3. Подготовить смену тегов образов

    Смена тегов образов сейчас не планируется.

  4. Следовать документированной схеме миграции

    Миграция, мажоры нельзя пропускать. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.

  5. Защитить точку отката

    Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore не проверен.

  6. Проверить обновлённый рецепт

    В истории нет проверки, точно совпадающей с версией приложения 2.36.9; обновление нельзя называть проверенным.

Прочитать порядок обновления в инструкции по установке ↓

Характеристики

Безопасность и публикация

Уровни установки

Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.

Готово

Для дома

Минимальная конфигурация для локальной сети или доступа через VPN.

  • Один сервер
  • Локальный доступ
  • Минимум компонентов

Рецепт закрывает все требования этого уровня.

Готово

Для VPS

Публичная установка с защищённым доступом и резервными копиями.

  • Домен
  • HTTPS через reverse proxy
  • Backup вне сервера

Рецепт закрывает все требования этого уровня.

Частично

Надёжная

Конфигурация для предсказуемой эксплуатации и наблюдаемости.

  • Отдельная БД
  • Healthcheck
  • Внешний мониторинг
  • Лимиты CPU и памяти

Нужно добавить вручную: внешний мониторинг, лимиты cpu и памяти.

Собрать под свой сервер

Генератор конфигурации

Ответьте на пять вопросов и скачайте готовый комплект n8n.

Работает локально
01 Есть домен?
02 Какой reverse proxy?
03 Архитектура сервера
04 Где хранить данные?

Укажите абсолютный путь для отдельного диска, например /srv/n8n.

05 Требуется VPN-доступ?

Комплект готов к сборке

Архив создаётся в браузере. Ответы никуда не отправляются.

Скриншоты

Быстрый запуск

Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.

Подготовить настройкиcp .env.example .env
Запуститьdocker compose up -d
Проверить состояниеdocker compose ps

Пошаговая инструкция

1. Проверьте сервер Ubuntu или Debian

Минимум: 2 CPU, 1 ГБ RAM и 5 ГБ на диске. Рекомендуется 2 ГБ RAM — расход растёт вместе с числом одновременных выполнений и размером их истории. Нужны Ubuntu 22.04+ или Debian 12+ с Docker Engine и Docker Compose v2.24+. PostgreSQL поднимается из этого же Compose, отдельно ставить не нужно.

docker --version
docker compose version

2. Подготовьте файлы и переменные

Поместите compose.yaml, .env.example, backup.sh, restore.sh и каталог proxy в отдельный каталог:

mkdir -p ~/services/n8n
cd ~/services/n8n
cp .env.example .env
chmod 600 .env

Заполните два обязательных секрета — без них запускать нельзя:

sed -i "s|^N8N_ENCRYPTION_KEY=.*|N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)|" .env
sed -i "s|^N8N_DB_PASSWORD=.*|N8N_DB_PASSWORD=$(openssl rand -hex 24)|" .env

N8N_ENCRYPTION_KEY шифрует пароли и токены всех подключённых сервисов. После первого запуска его нельзя менять: со старой базой новый ключ делает сохранённые доступы нечитаемыми. Сохраните ключ в менеджере паролей отдельно от сервера.

Остальные переменные .env:

  • N8N_VERSION — закреплённый тег образа; стабильная линия 2.36.x, теги 2.37.x на Docker Hub относятся к beta-каналу;
  • N8N_PORT — локальный порт редактора, по умолчанию 5678;
  • N8N_DB_NAME и N8N_DB_USER — имя базы и пользователь, меняются только до первого запуска;
  • N8N_PUBLIC_HOST и N8N_PROTOCOL — внешнее имя хоста и схема, попадают в ссылки интерфейса;
  • N8N_WEBHOOK_URL — полный внешний адрес при публикации через reverse proxy;
  • N8N_SECURE_COOKIE — отдавать ли cookie сессии только по HTTPS и на localhost;
  • N8N_PROXY_HOPS — число reverse proxy перед n8n;
  • N8N_DIAGNOSTICS и N8N_VERSION_NOTIFICATIONS — телеметрия и проверка обновлений, по умолчанию выключены;
  • N8N_EXECUTIONS_MAX_AGE_HOURS — срок хранения истории выполнений, по умолчанию две недели;
  • N8N_DATA_VOLUME и N8N_DB_VOLUME — имена Docker volume;
  • TZ — часовой пояс, от него зависят узлы Schedule и Cron.

Данные лежат в двух volume: n8n-data хранит ключ шифрования, настройки и бинарные данные выполнений, n8n-database — сами процессы, учётные данные и историю. В каталоге рецепта данных не остаётся.

3. Запустите на VPS

docker compose pull
docker compose up -d
docker compose ps

Первый запуск дольше обычного: n8n прогоняет миграции базы. Порт по умолчанию доступен только на 127.0.0.1, PostgreSQL наружу не публикуется вовсе.

4. Создайте владельца инстанса

ssh -L 5678:127.0.0.1:5678 user@server.example

Откройте http://localhost:5678, заведите учётную запись владельца и сохраните пароль в менеджере паролей. До создания владельца интерфейс доступен без авторизации, поэтому не публикуйте порт наружу раньше этого шага.

Локальная сеть

Без reverse proxy безопаснее оставить localhost bind и ходить через SSH-туннель. Если редактор должен быть доступен доверенной LAN, замените 127.0.0.1 в compose.yaml на конкретный адрес сервера, например 192.168.1.10, и не используйте 0.0.0.0.

При доступе по обычному HTTP не на localhost n8n не отдаст cookie сессии, и вход будет молча срываться. Для такого случая в .env:

sed -i 's/^N8N_SECURE_COOKIE=.*/N8N_SECURE_COOKIE=false/' .env
sed -i 's|^N8N_PUBLIC_HOST=.*|N8N_PUBLIC_HOST=192.168.1.10|' .env
docker compose up -d

Выключенный N8N_SECURE_COOKIE означает, что cookie сессии ходит по сети открытым текстом. Это допустимо только внутри доверенной сети; для доступа извне поднимайте HTTPS.

Домен и HTTPS

Примеры лежат в proxy/Caddyfile, proxy/nginx.conf и proxy/traefik.yaml, замените в них n8n.example.com своим доменом. Caddy получает сертификат автоматически, пример Nginx предполагает сертификат Certbot, Traefik использует resolver letsencrypt. Для Traefik в контейнере замените 127.0.0.1 на адрес host gateway, доступный контейнеру.

После публикации пропишите внешний адрес — иначе вебхуки будут выдавать ссылки на localhost, и внешние сервисы до них не достучатся:

sed -i 's|^N8N_WEBHOOK_URL=.*|N8N_WEBHOOK_URL=https://n8n.example.com/|' .env
sed -i 's|^N8N_PUBLIC_HOST=.*|N8N_PUBLIC_HOST=n8n.example.com|' .env
sed -i 's|^N8N_PROTOCOL=.*|N8N_PROTOCOL=https|' .env
sed -i 's|^N8N_PROXY_HOPS=.*|N8N_PROXY_HOPS=1|' .env
docker compose up -d

Публикация вебхуков открывает наружу и редактор: он живёт на том же порту. Ограничьте доступ по IP или базовой авторизацией на стороне proxy, если снаружи нужны только вебхуки.

Резервное копирование

Скрипт останавливает n8n, снимает дамп PostgreSQL и архивирует volume с ключом шифрования — порознь они бесполезны:

chmod +x backup.sh restore.sh
./backup.sh

Архив появится в ./backups. Он содержит доступы ко всем подключённым сервисам в расшифровываемом виде, поэтому храните копию вне сервера и шифруйте её.

Восстановление

Восстановление полностью заменяет базу и каталог данных выбранным архивом:

./restore.sh ./backups/n8n-YYYYMMDDTHHMMSSZ.tar
docker compose ps

Перед заменой скрипт создаёт страховочную копию текущего состояния. Значение N8N_ENCRYPTION_KEY в .env должно совпадать с тем, при котором делался архив, иначе процессы восстановятся, а учётные данные к сервисам — нет.

Обновление

Создайте backup, прочитайте release notes, измените N8N_VERSION в .env, затем выполните:

./backup.sh
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 n8n

Не перепрыгивайте через мажорные версии: миграции рассчитаны на последовательное обновление. Обновляйтесь в пределах стабильной линии 2.36.x, пока 2.37.x остаётся beta-каналом.

Откат

Верните прежнюю N8N_VERSION в .env и выполните docker compose pull и docker compose up -d. Если новая версия успела прогнать миграции базы, одного отката образа мало: старый n8n не умеет читать новую схему. В этом случае восстановите архив, созданный перед обновлением:

./restore.sh ./backups/n8n-YYYYMMDDTHHMMSSZ.tar

Поэтому backup перед каждым обновлением обязателен: только он делает откат возможным.

Полное удаление

Сохранить данные: docker compose down. Удалить контейнеры и все данные безвозвратно:

docker compose down
docker volume rm n8n-data n8n-database
rm -rf ~/services/n8n

Отключите вебхуки во внешних сервисах до удаления, иначе они продолжат стучаться на несуществующий адрес.

Источники: установка в Docker, переменные окружения и обновление.

Диагностика

Вход не проходит: форма принимает пароль и возвращает на логин

n8n не отдаёт cookie сессии по обычному HTTP, если адрес не localhost. Проверьте, как вы открываете интерфейс. Через SSH-туннель на localhost всё работает с настройками по умолчанию. Для доступа по IP внутри доверенной сети поставьте N8N_SECURE_COOKIE=false в .env и пересоздайте контейнер:

docker compose up -d

Правильное решение для доступа извне — HTTPS через reverse proxy, а не выключенный флаг.

Контейнер n8n не становится healthy

docker compose ps
docker compose logs --tail=200 n8n

Первый запуск занимает больше времени: идут миграции базы. Если в логах ECONNREFUSED на database, посмотрите состояние PostgreSQL — n8n стартует только после его healthcheck:

docker compose logs --tail=100 database

Учётные данные перестали открываться после переноса

Почти всегда это несовпадение N8N_ENCRYPTION_KEY. Процессы и история переносятся дампом базы, но пароли к сервисам зашифрованы ключом, а он лежит в .env и в config внутри volume n8n-data. Проверьте, что ключ тот же:

grep N8N_ENCRYPTION_KEY .env
docker compose exec n8n cat /home/node/.n8n/config

Если старый ключ утрачен, восстановить учётные данные нельзя: их придётся завести заново.

Вебхук не приходит от внешнего сервиса

Откройте узел Webhook и посмотрите Production URL. Если там localhost, значит не заполнен N8N_WEBHOOK_URL:

grep -E 'N8N_WEBHOOK_URL|N8N_PUBLIC_HOST|N8N_PROTOCOL' .env

Заполните их внешним адресом и выполните docker compose up -d. Помните, что тестовый URL узла живёт только пока открыт редактор, а рабочий появляется после активации процесса.

База растёт и место кончается

История выполнений чистится по N8N_EXECUTIONS_MAX_AGE_HOURS. Посмотрите размер:

docker compose exec -T database psql -U n8n -d n8n \
  -c "select pg_size_pretty(pg_database_size('n8n'))"

Уменьшите срок хранения в .env и пересоздайте контейнер. Отдельно проверьте настройки конкретных процессов: у них можно отключить сохранение успешных выполнений.

Процесс не запускается по расписанию

Узлы Schedule и Cron используют GENERIC_TIMEZONE, который берётся из TZ в .env. Проверьте пояс внутри контейнера:

docker compose exec n8n date

И убедитесь, что процесс активирован переключателем в редакторе: сохранённый, но неактивный процесс по расписанию не запускается.

Узел Code падает с ошибкой доступа к файлу или сети

В этом рецепте код выполняется внутри контейнера n8n, без внешнего sandbox-исполнителя. Часть операций ограничена настройками доступа к файловой системе. Не ослабляйте эти ограничения на инстансе, к редактору которого имеют доступ несколько человек: узел Code выполняет произвольный код с правами n8n.

Официальные источники

Последний релиз: 2026-08-31 · GitHub Stars: 202 971 · данные проверены 31 авг. 2026 г., 21:46 UTC

Отказ от ответственности

Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.

Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.