Введение
Каждый специалист по автоматизации рано или поздно проходит через этот болезненный опыт: кнопка "Save" не сработала, сервер перезагрузился, или вы случайно удалили критически важный узел в сценарии. Месяц работы над сложнейшей логикой обработки заказов испаряется за одну секунду. Чтобы этого не произошло, мудрые инженеры делают бэкапы (резервные копии).
Конечно, можно вручную нажимать "Download" для каждого отдельного Workflow, но когда у вас их 50 штук, это превращается в рутину. В этой статье мы настроим элегантное и надежное решение: n8n будет сам себя бэкапить и каждый день отправлять архив со всеми вашими сценариями вам в Telegram.
Как n8n хранит данные?
Перед тем как настраивать бэкап, нужно понимать, как всё устроено под капотом. Если вы используете
классическую установку n8n через Docker, все ваши Workflow, Credentials (пароли и API-ключи) и история
выполнений хранятся во внутренней базе данных (по умолчанию это SQLite — файл database.sqlite,
либо внешний PostgreSQL). Сами Workflow в n8n представляют собой обычные JSON-объекты.
У нас есть два пути создать бэкап:
- Системный путь: Делать дамп (копию) всей базы данных SQLite/PostgreSQL на уровне сервера. Это надежно, но сложно восстанавливать отдельные сценарии.
- Путь через n8n API: Использовать саму платформу n8n, чтобы выгрузить все сценарии в виде JSON-файлов. Мы пойдем именно этим путем — он самый гибкий и удобный.
Шаг 1: Подготовка Telegram-бота
Создадим хранилище для наших бэкапов — закрытый чат в Telegram, куда бот будет скидывать файлы.
- Откройте Telegram, найдите @BotFather и отправьте команду
/newbot. - Придумайте имя (например, My n8n Backups) и юзернейм (например, n8n_backup_d1_bot).
- Скопируйте полученный API Token (длинная строка с цифрами и буквами).
- Создайте в Telegram новую приватную группу. Добавьте туда созданного бота и дайте ему права администратора.
- Напишите в группу любое сообщение. Затем перейдите в браузере по ссылке:
https://api.telegram.org/bot[ВАШ_ТОКЕН]/getUpdates. Вы увидите массив JSON. Найдите тамchat.id(обычно это длинное число с минусом в начале, например-1004567890). Это ID вашей группы.
Шаг 2: Включаем n8n API
Чтобы n8n мог скачать свои же сценарии, нам нужно разрешить ему доступ к своему Public API.
- В интерфейсе n8n зайдите в Settings -> n8n API.
- Нажмите Create an API Key.
- Скопируйте ключ. Этот ключ дает полный доступ к вашей платформе, берегите его!
Шаг 3: Собираем Workflow бэкапа
Создайте новый пустой Workflow в n8n назовите его "Daily Backup System". Мы соберем его из трех простых узлов.
Узел 1: Schedule (Триггер)
Добавьте узел Schedule Trigger. Настройте его на срабатывание каждый день в удобное для вас время. Например: Rule -> Every Day -> 03:00 AM. Бэкапы лучше делать ночью, когда нагрузка на систему минимальна.
Узел 2: n8n Node (Выгрузка сценариев)
Да, в n8n есть встроенный узел под названием n8n, который позволяет управлять самой платформой! Добавьте его.
- В Credentials создайте новое подключение и вставьте API Key, который мы скопировали на Шаге 2.
- В Resource выберите Workflow.
- В Operation выберите Get Many.
- По умолчанию он выгрузит первые 20 сценариев. Включите опцию Return All, чтобы скачать абсолютно все ваши автоматизации.
Если сейчас нажать "Test step", узел вернет список всех ваших Workflow в формате JSON.
Узел 3: Формирование файла (Text to File) — необязательный, но полезный
Отправлять в Telegram сотню разрозненных JSON-файлов неудобно. Лучше собрать их в один файл. Добавьте узел
Item Lists (операция: Serialize) или Convert to File (в зависимости от
вашей версии n8n). Наша задача — превратить входящий массив JSON в один текстовый файл формата
.json. Назовите файл, например, backup_{{ $now.format('yyyy-MM-dd') }}.json (это
добавит текущую дату в имя файла).
Узел 4: Отправка в Telegram
Наконец, вишенка на торте. Добавляем узел Telegram.
- Создайте Credentials, вставив API Token вашего бота от BotFather.
- В Resource выберите Message, а в Operation — Send File.
- В поле Chat ID вставьте число с минусом (ID вашей закрытой группы).
- В поле File Name укажите ссылку на файл из предыдущего узла (или переключите параметр Send
Binary Data в положение True и укажите имя бинарного свойства, обычно это
data). - В поле Caption (подпись) можно добавить красивый текст:
✅ Бэкап n8n от {{ $now.format('dd.MM.yyyy') }}. Скачано сценариев: {{ $('n8n node').all().length }}.
Проверка и безопасность
Нажмите большую кнопку "Test Workflow". Через пару секунд в вашей закрытой группе Telegram должно звякнуть уведомление — бот прислал файл с вашими сценариями. Теперь активируйте Workflow (переключатель "Active" в верхнем правом углу), и можете спать спокойно.
Важное замечание по безопасности: Этот метод через n8n API выгружает только структуру
сценариев, но не выгружает ваши пароли и Credentials из соображений безопасности. Если вы
восстановите этот JSON на новом чистом сервере n8n, структура соберется, узлы появятся, но вам придется
заново авторизоваться во всех сервисах. Для 100% холодного бэкапа (вместе с паролями) необходимо
использовать Docker-volumes и копировать саму базу database.sqlite на уровне Linux.
Заключение
Потратив всего 15 минут на настройку этого сценария, вы навсегда избавите себя от страха потерять результаты своего труда. Ваш личный Telegram-бот превратился в надежное хранилище версий (почти как Git), где по датам лежат все срезы вашей автоматизации.