VPS с самостоятельным администрированием
Бэкап n8n: база, файлы и ключ шифрования
Сохраняйте комплект для восстановления
Экспорт workflow не заменяет полный бэкап. Этой установке нужны база PostgreSQL, постоянный каталог n8n и прежний ключ шифрования. В БД находятся сценарии, аккаунты, credentials и состояние выполнений. В volume могут храниться бинарные файлы выполнений и другие данные. .env содержит секреты для чтения credentials и связи сервисов.
В архиве есть backup.py. Запускайте его из распакованного каталога установки через Python 3.11 или новее. Он приостанавливает n8n и runner на время дампа и архива файлов, затем запускает сервисы, работавшие до бэкапа. Будет короткий простой: заранее остановите приём важных событий или настройте повторную доставку у отправителя. Процедура рассчитана на один экземпляр n8n без других процессов, меняющих эти volumes.
mkdir -p "$HOME/n8n-backups"
python3 backup.py "$HOME/n8n-backups/$(date -u +%Y%m%dT%H%M%SZ)"
docker compose ps
В закрытом каталоге появятся конфигурация, database.dump, n8n-data.tar.gz и manifest SHA-256. При сбое любого шага или запуска сервисов остаётся метка INCOMPLETE. Не используйте такой каталог как успешный snapshot. После неудачного бэкапа также проверьте состояние контейнеров: доступность сервиса и пригодность копии — разные задачи.
В копии есть секреты в открытом виде. Зашифруйте её и перенесите с VPS выбранным закрытым каналом. Второй каталог на том же диске не защищает от потери сервера. Кэш сертификатов Caddy не включён: новый сервер получит сертификаты заново с учётом лимитов центра сертификации.
Репетиция на новой изолированной установке
Восстанавливайте только доверенные копии. Контрольные суммы обнаруживают повреждение, но не подтверждают автора архива. Используйте новый VPS или пустой тестовый Compose-проект без прежних volumes n8n и БД. Эти команды не предназначены для восстановления поверх действующей установки. При любой ошибке остановитесь и не переходите к запуску приложения.
Распакуйте тот же комплект в новый каталог и выполните:
SNAPSHOT_DIR=/secure/path/to/your-snapshot
python3 verify-backup.py "$SNAPSHOT_DIR"
install -m 600 "$SNAPSHOT_DIR/.env" .env
cp "$SNAPSHOT_DIR/compose.yaml" "$SNAPSHOT_DIR/compose.bootstrap.yaml" \
"$SNAPSHOT_DIR/compose.recovery.yaml" "$SNAPSHOT_DIR/Caddyfile" \
"$SNAPSHOT_DIR/init-db.sh" .
docker compose pull postgres n8n runners archive restore-data
docker compose -f compose.yaml -f compose.recovery.yaml up -d --wait postgres
docker compose run --rm --no-deps -T restore-data \
'test -z "$(ls -A /data)" || { echo "Refusing non-empty volume" >&2; exit 1; }; tar -xzf - -C /data; chown -R 1000:1000 /data' \
< "$SNAPSHOT_DIR/n8n-data.tar.gz"
docker compose -f compose.yaml -f compose.recovery.yaml exec -T postgres \
pg_restore -U n8n -d n8n --no-owner --no-acl --exit-on-error \
< "$SNAPSHOT_DIR/database.dump"
docker compose -f compose.yaml -f compose.recovery.yaml run --rm --no-deps -T n8n \
unpublish:workflow --all
docker compose -f compose.yaml -f compose.recovery.yaml up -d postgres n8n runners
Recovery override помещает n8n, runner и БД во внутреннюю Docker-сеть и не запускает публичный proxy. Пока вы проверяете восстановленную установку, запросы к внешним API заблокированы. Подключитесь через SSH-туннель из инструкции установки.
Проверьте повторы до подключения к сервисам
Снятие с публикации отключает production-триггеры, но не удаляет queued, waiting и уже записанные выполнения. Просмотрите и отмените устаревшие ожидающие задачи. Snapshot откатывает состояние к моменту копирования; внешние системы могли уже обработать события, которые в копии ещё считаются незавершёнными. Повтор способен отправить дубликат сообщения, повторить запись или платный запрос.
Проверьте вход, наличие workflow, файлов и credentials на безвредных данных. Выберите сценарии для отдельной повторной публикации. Только после проверки ожидающих задач остановите recovery-сервисы и верните обычную конфигурацию:
docker compose -f compose.yaml -f compose.recovery.yaml stop n8n runners postgres
docker compose --profile public up -d
Не генерируйте .env заново, не меняйте ключ шифрования без процедуры и не запускайте старый n8n поверх обновлённой БД. Для восстановления после обновления сохраняйте отдельную копию до смены версии.
Официальные источники: n8n CLI recovery commands, Docker internal networks.
Тарифы из текущего каталога
Сейчас не удалось загрузить планы. Смотрите актуальные тарифы на странице цен.