Как перенести n8n на другой VPS без потери данных и ключей шифрования
Перенос сервера автоматизации n8n на новый хостинг - одна из самых ответственных процедур. Главная ошибка при миграции, с которой сталкиваются 80% пользователей - это копирование только базы данных без сохранения переменной N8N_ENCRYPTION_KEY.
⚠️ Внимание: Если вы перенесёте базу данных PostgreSQL или SQLite на новый сервер без оригинального ключа шифрования, все сохранённые пароли, API-ключи Telegram-ботов и OAuth-токены станут нечитаемыми. Сценарии перестанут работать с ошибкой дешифровки.
Как выглядят ошибки миграции в логах (поисковые маркеры)
Если переезд выполнен некорректно, в консоли или логах веб-сервера появляются ошибки:
Error: Could not decrypt credentials. The encryption key has changed!
502 Bad Gateway (nginx/1.24.0)
connect ECONNREFUSED 127.0.0.1:5432
Подводные камни при переносе сервера
При самостоятельном переезде часто не учитывают следующие критические моменты:
- Изменение внешнего IP в вебхуках внешних сервисов: Если при переезде меняется IP-адрес или DNS-запись обновляется не сразу, Telegram, CRM и платежные системы продолжают слать вебхуки на старый сервер, где они теряются.
- Рассинхрон версий n8n: Если на старом сервере стояла версия
1.36.0, а на новом вы запустили тегlatest, схемы базы данных автоматически мигрируют вперёд. Вернуться назад на старую версию без восстановления дампа уже не получится. - Потеря локальных бинарных файлов: Если сценарии сохраняли сгенерированные счета, картинки или отчёты в локальную папку контейнера, при переносе только БД все эти файлы будут утеряны.
Чек-лист подготовки к безопасному переезду
Перед остановкой старого сервера убедитесь, что у вас сохранены следующие компоненты:
- Файл конфигурации
.envили переменные окружения - в особенности значениеN8N_ENCRYPTION_KEY. - Полный дамп базы данных PostgreSQL - или файл
database.sqlite, если использовался встроенный движок. - Пользовательские файлы (если используются) - директории
/home/node/.n8nи любые примонтированные папки с бинарными данными.
Шаг 1: Создание резервной копии базы данных PostgreSQL
Если ваш n8n работает в Docker Compose вместе с PostgreSQL, выполните команду для создания полного дампа базы данных на старом сервере:
docker exec -t postgres-db pg_dump -U n8n -d n8n > n8n_migration_backup.sql
Шаг 2: Перенос конфигурации и ключа шифрования
Скопируйте ваш файл docker-compose.yml и секретный ключ на новый сервер. В новом файле конфигурации обязательно укажите тот же ключ:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your_secure_password
- N8N_ENCRYPTION_KEY=YOUR_ORIGINAL_ENCRYPTION_KEY_HERE
ports:
- "5678:5678"
Шаг 3: Восстановление базы данных на новом сервере
Поднимите пустой контейнер PostgreSQL на новом сервере, импортируйте сохранённый SQL-дамп, и только после этого запускайте сам контейнер n8n:
cat n8n_migration_backup.sql | docker exec -i postgres-db psql -U n8n -d n8n
Как избежать простоя при переключении DNS
Чтобы вебхуки от Telegram, CRM и платежных систем не потерялись во время обновления DNS-записей домена, рекомендуется на 24 часа настроить временное проксирование запросов со старого IP-адреса на новый через Nginx.
Нет времени разбираться или боитесь потерять сценарии?
Выполним бесшовный переезд вашего n8n и базы PostgreSQL на любой VPS под ключ. Сохраним всю историю, ключи и настроим автоматическое резервное копирование на новом сервере.
Заказать миграцию под ключ