Обновление n8n self-hosted: Docker Compose, backup, rollback и проверка workflow ¶
Обновлено: 2026-05-29
Обновление n8n нельзя сводить к команде docker compose pull. В self-hosted окружении вместе с версией меняются migrations базы, поведение нод, UI, task runners, community nodes и иногда breaking changes. Чем больше workflows подключено к CRM, платежам, Telegram, webhooks и AI, тем важнее обновляться часто, но контролируемо.
Хорошая стратегия: маленькие регулярные обновления, backup перед релизом, тестовый smoke-набор и готовый rollback. Плохая стратегия: полгода не обновлять, потом прыгнуть на latest ночью и смотреть, почему OAuth, Python Code node или worker ведут себя иначе.
Перед обновлением: короткая карта риска ¶
| Что используется | Риск | Что проверить |
|---|---|---|
| Webhook от внешних сервисов | потеря входящих заявок | активность workflow, production URL, быстрый ответ |
| Queue mode | workers не поднимаются после миграции | Redis, одинаковый image tag, логи worker |
| Code node Python/JS | изменение режима выполнения | task runners, зависимости, тестовые executions |
| Community nodes | несовместимость пакета | версии пакетов, changelog, тестовый стенд |
| OAuth credentials | redirect mismatch или refresh-token issue | домен, WEBHOOK_URL, callback URL |
Не используйте latest вслепую ¶
Для production лучше фиксировать версию образа:
services:
n8n:
image: n8nio/n8n:1.99.1
n8n-worker:
image: n8nio/n8n:1.99.1
Тег latest удобен на учебном стенде, но в production он ухудшает воспроизводимость. При rollback вы должны понимать, с какой версии на какую переходили.
Порядок безопасного обновления ¶
- Запишите текущую версию n8n и image tag.
- Прочитайте release notes между вашей и целевой версией.
- Сделайте backup PostgreSQL и сохраните
.env. - Остановите входящие webhooks, если есть риск двойной обработки.
- Обновите staging или временный тестовый инстанс.
- Прогоните smoke-test: webhook, HTTP Request, Telegram, CRM, worker.
- Обновите production.
Команды для Docker Compose ¶
cd /opt/n8n
# 1. зафиксировать текущую версию
docker compose exec -T n8n n8n --version || true
docker compose images
# 2. backup базы
./scripts/backup.sh
# 3. обновить образ
docker compose pull n8n n8n-worker
# 4. перезапустить сервисы
docker compose up -d n8n n8n-worker
# 5. посмотреть migrations и ошибки
docker compose logs -f --tail=200 n8n
Если у вас один сервис n8n без worker, команды проще. Если queue mode, следите, чтобы main и worker были на одной версии образа.
Smoke-test после обновления ¶
| Тест | Как выполнить | Что считается успехом |
|---|---|---|
| UI | открыть редактор, список workflows, executions | нет ошибок авторизации и бесконечных loaders |
| Webhook | curl -X POST в тестовый workflow | execution появился, response корректный |
| Worker | запустить workflow с тяжёлой HTTP/Code операцией | worker забрал job, execution завершился |
| Credentials | нажать Test в ключевых credentials | токены читаются, нет ошибки расшифровки |
| Business flow | создать тестовую заявку в Tilda/CRM | заявка прошла до конечной системы без дублей |
Rollback: как откатиться без паники ¶
Самый надёжный rollback — вернуть предыдущий image tag и восстановить backup базы, если migrations уже изменили схему. Просто откатить Docker image иногда недостаточно.
cd /opt/n8n
# вернуть старый tag в docker-compose.yml, затем:
docker compose pull n8n n8n-worker
docker compose stop n8n n8n-worker
./scripts/restore-postgres.sh backups/postgres/n8n_before_update.dump
docker compose up -d n8n n8n-worker
Если обновление затронуло только UI или ноды без migrations, может хватить возврата image tag. Но это нужно подтверждать логами и smoke-test, а не предполагать.
Типовые ошибки после обновления ¶
- Workers не стартуют. Проверьте одинаковую версию образа, Redis env и команду
worker. - Credentials cannot be decrypted. Проверьте
N8N_ENCRYPTION_KEY, он не должен меняться. - Community node сломалась. Временно отключите workflow, обновите пакет или замените на HTTP Request.
- Python Code node ведёт себя иначе. Проверьте task runners и режим выполнения кода.
- Webhook даёт 404. Проверьте, активен ли workflow, не изменился ли path, корректен ли
WEBHOOK_URL.
Связанные материалы ¶
Практическое применение страницы
Материал «Обновление n8n self-hosted: Docker Compose, backup, rollback и проверка workflow ¶» лучше использовать как точку входа в рабочий маршрут, а не как изолированную справку. Перед внедрением выберите конкретный процесс, источник данных, владельца и ожидаемый результат. Это помогает быстро понять, какая страница базы нужна дальше: рецепт, диагностика, интеграция, нода или production-playbook.
Для любой автоматизации в n8n полезно заранее описать входной item, обязательные поля, внешние сервисы, write-действия и способ отката. Если эти детали не зафиксированы, даже простой workflow может стать неуправляемым: дублирует заявки, теряет часть items, отправляет уведомления не тем людям или ломается при изменении формата API.
Минимальный чеклист
- Определите, что является успешным результатом и кто его подтверждает.
- Проверьте happy path, пустой вход, повтор события и сбой внешнего сервиса.
- Добавьте логирование execution id, source, external id и статуса без секретов.
- Свяжите страницу с ближайшим рецептом, ошибкой или playbook.
Что открыть дальше
- Навигатор — открыть связанный материал для проверки контекста.
- Диагностика — открыть связанный материал для проверки контекста.
- Рецепты — открыть связанный материал для проверки контекста.
- Playbooks — открыть связанный материал для проверки контекста.