Блог и Новости is*hosting - Хостинг-провайдер Нового Поколения

Как перенести рабочие процессы n8n на новый сервер

Written by Александра И. | 26.03.2026 9:00:00

Честно говоря, вы можете открыть любой другой официальный гайд по переносу данных.

По сути, мы сделали то же самое, просто собрали рекомендации из нескольких гайдов в один и приправили это нашим собственным опытом работы с n8n.

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

Если вы переезжаете с cloud n8n на собственный хостинг, то вам предстоит делать экспорт воркфлоу и ручной перенос, а после настройку.

Возможно, вам удастся договориться с поддержкой n8n о дампе данных, если у вас большой объем и платный тариф. Но мы бы не рассчитывали на легкий перенос, потому что кнопки с автоматической миграцией у n8n нет.

При переезде между серверами все чуть легче.

Как работает n8n Cloud и self-hosted n8n

n8n Cloud — это полностью управляемый сервис. n8n хостит и обслуживает инстанс: инфраструктура, резервные копии, часть мер безопасности и т. д.

Self-hosted n8n на VPS или другом типе сервера — это ваш собственный экземпляр: контейнер или bare metal, база данных, свои переменные окружения, свои файлы.

Вы запускаете n8n на своем сервере и сами отвечаете за:

n8n отдельно подчеркивает, что для self-hosted шифрование данных at rest — зона ответственности хостера или владельца сервера, а TLS обычно делается через reverse proxy.

Что нужно забрать с собой

Обычно нужно забрать:

Workflows

Workflow в n8n хранятся в JSON и спокойно экспортируются и импортируются.

Экспортированный JSON содержит имена и ID credentials — сами по себе ID не секрет, но имена могут быть чувствительными (если вы назвали credential “prod-mastercard-api-key”).

Credentials

В self-hosted креды хранятся в базе данных в зашифрованном виде, и для расшифровки нужен ключ.

В n8n Cloud credentials не экспортируются (придется заводить заново).

Encryption key

n8n на первом запуске генерирует случайный ключ и сохраняет его в ~/.n8n, затем использует для шифрования credentials перед записью в БД. Этот ключ можно (и часто нужно) задавать явно через N8N_ENCRYPTION_KEY.

Если вы переносите базу или том с данными, но поменяете ключ — старые credentials не подтянутся.

Пользовательская папка .n8n / volume

В Docker-рекомендациях n8n явно сказано маппить постоянный volume на /home/node/.n8n для сохранности данных между перезапусками.

Даже при PostgreSQL persist .n8n все равно рекомендуется, потому что там остаются важные данные (ключи шифрования, логи инстанса и т. п.).

База данных (SQLite или Postgres)

По умолчанию n8n использует SQLite для credentials, workflow и executions, но поддерживает PostgreSQL через переменные окружения.

Внешние зависимости

  • переменные окружения деплоя (URL, порт, протокол и т. д.),
  • reverse proxy конфиг (если есть),
  • кастомные/приватные nodes (если использовались),
  • политика хранения execution data (если вам нужна история).

Прибавьте к этому списку еще историю выполнения и очередь задач, если они вам необходимы.

Из облака на self-hosted n8n

Сценариев миграции по сути два — точечный и полный бэкап инстанса.

В теории можно:

  1. Получить дамп БД из Cloud (но это нужно согласовывать с поддержкой n8n, и не факт, что они отдадут как есть).
  2. Восстановить его в вашей self-hosted БД.
  3. Поднять n8n, указывая на эту базу.

Но тут слишком много “если”. Поэтому лучше перейдем к более реалистичному варианту.

Точечный переезд

Если вы арендовали чистый сервер, то надо начать с Docker и установки n8n.

В терминале выполните следующие команды, заменив <YOUR_TIMEZONE> на свой часовой пояс:

docker volume create n8n_data

docker run -it --rm \

--name n8n \

-p 5678:5678 \

-e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \

-e TZ="<YOUR_TIMEZONE>" \

-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \

-e N8N_RUNNERS_ENABLED=true \

-v n8n_data:/home/node/.n8n \

docker.n8n.io/n8nio/n8n

Эта команда создает том для хранения постоянных данных, загружает необходимый образ n8n и запускает контейнер со следующими настройками:

  • Сопоставляет и открывает порт 5678 на хосте.
  • Устанавливает часовой пояс для контейнера.
  • Применяет безопасные права доступа к файлу конфигурации n8n.
  • Включает task runners для выполнения задач в n8n.
  • Монтирует том n8n_data в каталог /home/node/.n8n для сохранения ваших данных при перезапуске контейнера.

Откройте http://localhost:5678, чтобы получить доступ к n8n.

Если вы предпочитаете PostgreSQL

По умолчанию n8n использует SQLite, но также поддерживает PostgreSQL через настройку с помощью переменных среды.

Используйте эти команды, если хотите работать с n8n на PostgreSQL. Заменив плейсхолдеры (обозначенные угловыми скобками, например <POSTGRES_USER>) своими значениями:

docker volume create n8n_data

docker run -it --rm \

--name n8n \

-p 5678:5678 \

-e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \

-e TZ="<YOUR_TIMEZONE>" \

-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \

-e N8N_RUNNERS_ENABLED=true \

-e DB_TYPE=postgresdb \

-e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \

-e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \

-e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \

-e DB_POSTGRESDB_USER=<POSTGRES_USER> \

-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \

-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \

-v n8n_data:/home/node/.n8n \

docker.n8n.io/n8nio/n8n

Полный файл docker-compose для PostgreSQL в репозитории хостинга n8n.

Обновления n8n

Обновите n8n в Docker Desktop через вкладку «Images» и выберите «Pull» в контекстном меню, чтобы загрузить последнюю версию образа n8n.

Или обновитесь через командную строку.

Загрузить последнюю (стабильную) версию:

docker pull docker.n8n.io/n8nio/n8n

Загрузить определенную версию:

docker pull docker.n8n.io/n8nio/n8n:1.81.0

Загрузить следующую (нестабильную) версию:

docker pull docker.n8n.io/n8nio/n8n:next

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

Сперва найдите ID вашего контейнера:

docker ps -a

Замените <container_id> в командах ниже.

Остановите контейнер:

docker stop <container_id>

Удалите контейнер:

docker rm <container_id>

Запустите контейнер:

docker run --name=<container_name> [options] -d docker.n8n.io/n8nio/n8n

Обновление Docker Compose

Если вы запускаете n8n с помощью файла Docker Compose, то вот шаги для вас:

Перейдите в каталог, содержащий файл docker compose:

cd </path/to/your/compose/file/directory>

Загрузите последнюю версию:

docker compose pull

Остановите и удалите старую версию:

docker compose down

Запустите контейнер:

docker compose up -d

Именно этот шаг вы можете пропустить, если у вас VPS с предустановленным n8n. Подходящий тариф можно выбрать вот тут.

Экспорт воркфлоу из n8n Cloud

В интерфейсе n8n Cloud:

  1. Открываете нужный workflow.
  2. В меню выбираете Export (или через список workflows).
  3. Сохраняете JSON-файлы на локальный компьютер.

На self-hosted:

  1. Открываете ваш новый инстанс n8n.
  2. Нажимаете Import и подгружаете JSON.

Так можно быстро перенести только нужные сценарии.

Что делать с Credentials

Учетные данные (credentials) не могут быть экспортированы из облака по соображениям безопасности. Их придется вводить заново вручную.

  1. В Cloud смотрите, какие интеграции использует каждый workflow (HTTP Request, Google Sheets, Telegram, Slack и т. д.).
  2. В self-hosted n8n заходите в раздел Credentials и создаете те же подключения с теми же ключами.
  3. В workflow перепривязываете нужные credentials.

Переменные, вебхуки и прокси

Если вы используете триггеры (GitHub, Stripe, Telegram, формы, вебхуки), почти всегда есть reverse proxy и публичный домен. Тогда:

  • задайте WEBHOOK_URL=https://your-domain/
  • задайте N8N_PROXY_HOPS=1
  • настройте X-Forwarded-For/Host/Proto на прокси

Если вы использовали или глобальные переменные, то в Cloud они настроены на стороне n8n. Поэтому в self-hosted вы прописываете их сами в .env файле контейнера или в настройках Docker Compose.

Тест

Запустите самые критичные сценарии вручную. После убедитесь, что OAuth callback URL и webhooks соответствуют новому домену.

И вот только потом меняйте DNS и интеграции на новый endpoint.

Переезд между самостоятельными серверами

Переезд с сервера на сервер провести легче чем из облака. Можно перенести все как есть (volume/db) или провести экспорт и импорт через CLI.

Вариант 1: Перенос данных инстанса

Подходит, если вы хотите максимально идентичный инстанс.

  1. Остановите n8n на старом сервере, это важно для консистентности данных.
  2. Перенесите папку/volume .n8n (или то, что задано в N8N_USER_FOLDER) и базу данных (SQLite-файл или дамп Postgres).
  3. На новом сервере убедитесь, что.n8n подключена как persistent volume и что N8N_ENCRYPTION_KEY совпадает со старым (если вы задавали его явно)
  4. Запустите n8n и проверьте доступность credentials и запуск рабочих workflow.

Вариант 2: Экспорт и импорт через CLI

Такой переезд подходит, если вы хотите перенос workflows и credentials, а не всего состояния.

Экспорт workflows

n8n export:workflow --all --output=backups/latest/workflows.json

# или в раздельные файлы

n8n export:workflow --backup --output=backups/latest/

Экспорт credentials

n8n export:credentials --all --output=backups/latest/credentials.json

Есть флаг --decrypted, который экспортирует credentials в открытом виде. Это удобно, если вы мигрируете на инстанс с другим secret key, но это чувствительные данные — храните и передавайте такой файл максимально осторожно.

Импорт workflows

n8n import:workflow --input=workflows.json

# или импорт из директории (если экспортировали отдельными файлами)

n8n import:workflow --separate --input=backups/latest/

Импорт credentials

n8n import:credentials --input=credentials.json

n8n import:credentials --separate --input=backups/latest/

После тест как обычно.

Парочка важных моментов на конец

docs.n8n.io и support.n8n.io — два ресурса, которые расскажут про все дополнительные нюансы переноса. Или можно сразу написать в поддержку is*hosting, если вы переезжаете на n8n VPS.

Если у webhook URL все еще старый домен, часть триггеров просто перестанет приходить. А для reverse proxy у n8n есть отдельный гайд с обязательными переменными и заголовками.

Даже если вы используете Postgres, n8n рекомендует сохранять .n8n как persistent volume, потому что там остаются ключи, логи и другие данные инстанса.

Если используете --decrypted для credentials, вы фактически делаете дамп секретов. Всегда помните, что вся чувствительная информация будет видна в файлах.

Останется только проверить несколько рабочих цепочек и можно считать переезд завершенным.