---
title: "Backup и restore n8n: PostgreSQL, credentials — Nodbot"
source_url: "https://nodbot.ru/deploy/backup-restore/"
canonical_url: "https://nodbot.ru/deploy/backup-restore/"
language: "ru"
content_type: "KnowledgePage"
section: "deploy"
generated_at: "2026-05-30"
word_count_source: 966
---

# Backup и restore n8n: PostgreSQL, credentials, workflows, файлы и проверка восстановления

## AI summary

Практический гайд «Backup и restore n8n: PostgreSQL, credentials»: настройка workflow в n8n, типовые ошибки, проверка результата и production-чеклист.

## Best used for

Страница объясняет «Backup и restore n8n: PostgreSQL, credentials — Nodbot» в контексте n8n/Nodbot: когда применять, как проверить внедрение и какие ошибки исключить.

## Key topics

- Что входит в полноценный backup n8n
- Рекомендуемая структура папок
- PostgreSQL backup через Docker Compose
- Workflow export как дополнительная страховка
- Restore PostgreSQL на чистом окружении
- Restore-drill: проверка, что backup не декоративный
- Типовые ошибки восстановления
- Preflight перед публикацией изменений

## Source outline

# Backup и restore n8n: PostgreSQL, credentials, workflows, файлы и проверка восстановления

Обновлено: 2026-05-29

Бэкап n8n — это не один файл с workflow. Для нормального восстановления нужны база данных, encryption key, volume с настройками, binary data, список переменных окружения и понимание, какие внешние сервисы отправляют webhook на этот экземпляр. Если сохранить только JSON workflow, вы восстановите схему автоматизаций, но потеряете credentials, executions, настройки пользователей и часть состояния.

Эта инструкция нужна для self-hosted n8n на Docker Compose, Portainer или VPS. Она не обещает “волшебный бэкап в одну кнопку”: задача — собрать воспроизводимый процесс, который можно прогнать на чистом сервере и понять, что восстановление действительно сработает.

## Что входит в полноценный backup n8n

- Компонент | Зачем нужен | Как сохранять
- PostgreSQL | workflows, credentials metadata, executions, users, settings | pg_dump или managed backup провайдера
- N8N_ENCRYPTION_KEY | расшифровка credentials | секретное хранилище, password manager, Vault
- /home/node/.n8n | локальные настройки и иногда binary data | backup volume или bind mount
- Binary data | файлы из executions, вложения, документы | volume, S3/MinIO или external storage
- docker-compose.yml и .env | воспроизведение инфраструктуры | Git/private repo + копия секретов отдельно
- Workflow JSON export | быстрый аудит и перенос отдельных процессов | UI export или CLI export

Самый опасный пропуск — потеря N8N_ENCRYPTION_KEY . Без него база может восстановиться, но credentials станут бесполезными: n8n не сможет расшифровать токены и пароли.

## Рекомендуемая структура папок

```
/opt/n8n/
  docker-compose.yml
  .env
  backups/
    postgres/
    workflows/
    binary-data/
  scripts/
    backup.sh
    restore-postgres.sh
    restore-drill.sh
```
Секреты не храните в публичном Git. Если compose лежит в репозитории, .env должен быть закрыт, а в Git — только .env.example с названиями переменных.

## PostgreSQL backup через Docker Compose

```
#!/usr/bin/env bash
set -euo pipefail
cd /opt/n8n
mkdir -p backups/postgres
TS=$(date +%Y-%m-%d_%H-%M-%S)

docker compose exec -T postgres pg_dump \
  -U "$POSTGRES_USER" \
  -d "$POSTGRES_DB" \
  --format=custom \
  --file=/tmp/n8n_${TS}.dump

docker compose cp postgres:/tmp/n8n_${TS}.dump backups/postgres/n8n_${TS}.dump
docker compose exec -T postgres rm /tmp/n8n_${TS}.dump

find backups/postgres -type f -name '*.dump' -mtime +14 -delete
printf 'Backup saved: backups/postgres/n8n_%s.dump\n' "$TS"
```
Для небольшого проекта можно хранить 14–30 ежедневных дампов. Для бизнеса лучше добавить внешнее хранилище: S3/MinIO, Яндекс Object Storage, Backblaze B2 или backup-сервис провайдера VPS.

## Workflow export как дополнительная страховка

CLI export не заменяет backup базы, но помогает быстро увидеть, какие workflow были на инстансе, перенести один процесс или сравнить изменения после релиза.

```
mkdir -p backups/workflows
TS=$(date +%Y-%m-%d_%H-%M-%S)
docker compose exec -u node -T n8n n8n export:workflow --all --output=/tmp/workflows_${TS}.json
docker compose cp n8n:/tmp/workflows_${TS}.json backups/workflows/workflows_${TS}.json
```
Credentials так переносить небезопасно. В production лучше восстанавливать credentials из базы и проверять, что encryption key совпадает.

## Restore PostgreSQL на чистом окружении

- Остановите n8n и worker, чтобы они не писали в базу во время восстановления.
- Поднимите PostgreSQL и Redis.
- Создайте пустую базу или удалите старую, если это тестовый стенд.
- Восстановите dump через pg_restore .
- Запустите n8n с тем же N8N_ENCRYPTION_KEY .
```
cd /opt/n8n
docker compose stop n8n n8n-worker
cat backups/postgres/n8n_2026-05-29_030000.dump | docker compose exec -T postgres \
  pg_restore -U "$POSTGRES_USER" -d "$POSTGRES_DB" --clean --if-exists
docker compose up -d n8n n8n-worker
```
Если restore делается на новом домене, заранее поменяйте WEBHOOK_URL , N8N_HOST , OAuth redirect URL у провайдеров и DNS. Иначе workflows восстановятся, но внешние webhooks и OAuth будут вести в старый адрес.

## Restore-drill: проверка, что backup не декоративный

Раз в месяц полезно поднимать тестовый контейнер или отдельный VPS и проходить восстановление. Цель — не “поставить галочку”, а поймать несовпадение версий, отсутствие encryption key, проблемы с volume или забытые binary files.

- Проверка | Ожидаемый результат
- логин в n8n | владелец и пользователи доступны
- открытие credentials | credentials не требуют полного пересоздания
- тест HTTP Request | токен работает или понятно, что его надо обновить
- тест Webhook | новый домен принимает POST и создаёт execution
- binary file из старого execution | файл открывается или известно, что binary data отдельно

## Типовые ошибки восстановления

- Credentials не работают после restore. Почти всегда потерян или изменён N8N_ENCRYPTION_KEY .
- n8n стартует, но workflows не активируются. Проверьте очередь, Redis, owner, permissions и ошибки migrations в логах.
- Webhook приходит на старый домен. Обновите WEBHOOK_URL и настройки отправителя: Telegram, Tilda, ЮKassa, amoCRM, Bitrix24.
- База восстановилась, но файлов нет. Binary data хранилась в volume или external storage, который не попал в backup.
- Restore занимает слишком долго. Уменьшите retention executions, настройте pruning и вынесите большие файлы во внешнее хранилище.

## Preflight перед публикацией изменений

Страницу «Backup и restore n8n» лучше использовать как практический чеклист, а не как справку. Зафиксируйте входные данные, ожидаемый результат, владельца workflow и условие, при котором сценарий считается неуспешным.

Базовый источник для проверки: запись из базы или SQL-операция с уникальным ключом, timestamp и результатом транзакции. Главный риск — случайно расширить права credentials, сохранить секреты в логах или отдать действие без approval.

- Слой | Что зафиксировать | Зачем
- Вход | запись из базы или SQL-операция с уникальным ключом, timestamp и результатом транзакции | позволяет повторить проблему без доступа к production-секретам
- Контроль | query_duration, conflict_count, transaction_failures, row_count_delta, lock_wait | показывает деградацию раньше, чем пользователи начинают писать в поддержку
- Безопасность | случайно расширить права credentials, сохранить секреты в логах или отдать действие без approval | снижает риск скрытых дублей, утечки данных и неконтролируемых write-действий
- Готовность | есть тест на happy path, пустой вход, повтор и сбой внешнего сервиса для «Backup и restore n8n» | делает статью пригодной для runbook, а не только для чтения

### Пример безопасного входного контракта

```
{
  "operation": "upsert",
  "dedupe_key": "source_system:external_id",
  "expected_rows": 1,
  "on_conflict": "update_changed_fields_only",
  "audit": {"workflow_id": "...", "execution_id": "..."}
}
```

### Критерий готовности

- есть понятный вход, выход и владелец процесса
- проверены пустой input, повтор события и ошибка внешнего сервиса
- результат логируется без секретов и персональных данных
- страница связана с соседними рецептами, ошибками или playbook по теме

## Связанные материалы

- Production-деплой n8n
- PostgreSQL для n8n
- Обновление n8n без хаоса
- S3 и MinIO для файлов и backup

## Related Nodbot pages

- [Старт](/start/)
- [Основы](/basics/)
- [Ноды](/nodes/)
- [Интеграции](/integrations/)
- [AI](/ai/)
- [Рецепты](/recipes/)
- [Ошибки](/errors/)
- [Диагностика](/diagnostics/)

## Retrieval hints

- Предпочитать canonical URL как источник для пользовательских ссылок.
- Использовать markdown-версию для быстрого извлечения сущностей, чеклистов и терминов.
- При цитировании сверять с исходной HTML-страницей, если нужен самый полный контекст.
