Что случилось и при чём здесь ваш сайт
В ночь с 7 на 8 октября 2026 года дата-центр Яндекса в Сасово был серьёзно повреждён атакой беспилотника, его работу полностью остановили. Утром 9 октября атаке подвергся дата-центр в Калуге, часть инфраструктуры там вышла из строя. В ночь на 11 октября пострадал третий объект, во Владимире. Это подтверждает сама компания в обращении «„Железное сердце“ Яндекса — что происходит с нашими дата-центрами». Сроки восстановления оборудования в Яндексе пока не называют.
Сбои вышли за пределы сервисов самого Яндекса. На мощностях Yandex Cloud работают тысячи сторонних компаний, и после остановки владимирской площадки сбои были у «Циана», «Магнита», Flowwow, DDX Fitness. «Додо Пицца» сообщила, что её сайт и приложение недоступны из-за «масштабной аварии у облачного провайдера». Канал Yandex Cloud Alerts написал клиентам прямо: «Оставшуюся конфигурацию ресурсов считаем неустойчивой. Режим работы платформы является аварийным — рекомендуем задействовать любые другие альтернативные планы по аварийному восстановлению» (Forbes).
По данным «Коммерсанта», Yandex Cloud договорилась с Selectel, K2Cloud и VK Cloud об ускоренном размещении клиентов, а в пользовательское соглашение сервисов Яндекса добавили пункт о форс-мажоре, где упомянуты и атаки БПЛА. Для владельца бизнеса вывод простой: если проект живёт у одного провайдера и у вас нет своей копии, переезд начнётся с вопроса «а что у нас вообще есть», и ответ придётся искать в аварийном режиме.
Хорошая новость в том, что сделать копию проекта, который работает в Docker, сейчас можно за один вечер. Большую часть рутины берёт на себя AI-агент: он смотрит, что запущено на сервере, раскладывает копии по папкам и скачивает их к вам на компьютер. Ниже пошаговая инструкция и готовый промпт.
Что именно нужно сохранить
Docker-проект состоит из нескольких слоёв, и копировать нужно каждый. Если сохранить только образы, после переезда вы получите пустое приложение без базы и загруженных файлов.
- Образы (images). Это код приложения с зависимостями. Если образы собираются в CI и лежат в registry, копия всё равно нужна: registry тоже может оказаться у пострадавшего провайдера.
- Тома и примонтированные папки (volumes, bind mounts). Здесь живут базы данных, загруженные пользователями файлы, кэш поиска. Это самое ценное и самое невосстановимое.
- Дампы баз данных. Копия файлов работающей PostgreSQL или MySQL может оказаться несогласованной, потому что база пишет в них прямо во время копирования. Логический дамп через
pg_dumpилиmysqldumpнадёжнее. - Описание запуска. Файлы
docker-compose.yml, Dockerfile, настройки nginx или Traefik, задания cron, список открытых портов. Без них образы и данные придётся собирать в рабочую систему по памяти. - Секреты. Файлы
.env, ключи API, пароли к базам. О них ниже отдельно: в нашем промпте агенту запрещено их трогать, и это сделано намеренно.
Сюда же стоит добавить то, что живёт вне сервера: DNS-записи домена, SSL-сертификаты, если они не выпускаются автоматически, доступы к почте и платёжным сервисам. Агент их не скопирует, но список составить поможет.
Почему эту работу удобно отдать AI-агенту
Под AI-агентом здесь понимается программа вроде Claude Code, Codex или другого агента, который умеет выполнять команды в терминале и подключаться к серверу по SSH. Подробнее о том, как такие агенты устроены и чем отличаются от чат-бота, мы писали в материале «ИИ-агенты для бизнеса».
Ручной бэкап Docker обычно ломается не на сложных командах, а на внимательности. Нужно пройти по каждому контейнеру, посмотреть его тома в docker inspect, понять, где база, а где кэш, ничего не пропустить и не перепутать имена. На сервере с пятнадцатью контейнерами это час монотонной работы, в которой легко забыть один том с загрузками пользователей.
Агент делает ту же работу по шагам и показывает каждую команду до выполнения. Он составляет опись контейнеров, сам находит тома, предлагает способ дампа для каждой базы и пишет отчёт: что сохранено, какой размер, что осталось за рамками. Человеку остаётся читать команды и нажимать «разрешить». Для владельца бизнеса без команды DevOps это разница между «когда-нибудь сделаем» и «сделано сегодня».
При этом агент остаётся инструментом с правами на ваш сервер. Ниже мы отдельно разберём, как ограничить его права, чтобы ошибка агента не стоила вам данных.
Подготовка перед запуском
- Место на компьютере. Посмотрите, сколько занимают данные на сервере (
docker system dfи размер папок с томами), и освободите на локальном диске хотя бы вдвое больше. Сжатие помогает, но базы и медиафайлы сжимаются по-разному. - Доступ по SSH-ключу. Агенту не нужно знать пароль от сервера. Подключение по ключу, который уже лежит у вас в
~/.ssh, безопаснее и не требует передавать секреты в чат. - Отдельный пользователь с минимальными правами, если есть такая возможность. Ему нужен доступ к Docker и к чтению папок с данными. Права на удаление и изменение системных настроек не нужны.
- Режим подтверждения команд. В Claude Code и аналогах можно запретить выполнение без вашего согласия. Для работы с боевым сервером это обязательная настройка, а не перестраховка.
- Время с низкой нагрузкой. Дамп большой базы и архивация томов нагружают диск. Лучше запускать вечером или ночью.
Готовый промпт для AI-агента
Этот промпт мы используем сами. Адрес сервера замените на свой:
Ничего не меняй , проанализируй мои работающие образы в docker на сервере user@server-ip, создай резервные копии каждый бекап в своей папке , и сохрани на мой компьютер локально, для последующего импорта на другой сервер , не трогай credentials, и не меняй данные , твоя задача только выполнить snapshot.
В нём три важных ограничения. «Ничего не меняй» и «не меняй данные» запрещают агенту останавливать контейнеры, обновлять образы и чистить диск. «Не трогай credentials» значит, что агент не читает, не выводит в чат и не копирует пароли и ключи. «Каждый бекап в своей папке» даёт на выходе понятную структуру, с которой удобно работать при переезде.
Если хотите получить на выходе ещё и инструкцию по восстановлению, добавьте к промпту вторую часть:
После копирования составь файл RESTORE.md: список контейнеров, образов и томов, размер каждого бэкапа, команды для восстановления на новом сервере. Перед каждой командой, которая что-то создаёт на сервере, спроси разрешения.
Что агент сделает на сервере: пошагово
Порядок может немного отличаться, но рабочая схема выглядит так. Команды приведены, чтобы вы понимали, что подтверждаете.
Опись. Агент смотрит запущенные контейнеры и их тома:
docker ps --format '{{.Names}} {{.Image}} {{.Status}}'
docker inspect имя_контейнера --format '{{json .Mounts}}'
Образы. Каждый образ сохраняется в архив командой docker save. Чтобы не занимать место на сервере, поток можно сразу передавать к себе на компьютер:
ssh user@server-ip "docker save имя_образа:тег" | gzip > backups/app/image.tar.gz
Обратите внимание на разницу между docker save и docker commit. Первая сохраняет образ как есть и ничего не создаёт на сервере. Вторая делает из работающего контейнера новый образ, то есть меняет состояние сервера, и по нашему промпту агент должен спросить разрешения. Если внутри контейнера что-то меняли вручную, без docker commit или docker export эти правки не сохранятся.
Тома. Для томов Docker в официальной документации описан способ через временный контейнер, который архивирует содержимое тома. Временный контейнер тоже изменение, хоть и безобидное, поэтому агент может предложить другой путь: заархивировать папку тома напрямую с правами только на чтение.
Базы данных. Для PostgreSQL дамп выполняется внутри контейнера базы:
ssh user@server-ip "docker exec имя_контейнера_бд pg_dump -U пользователь имя_базы" | gzip > backups/db/dump.sql.gz
Если для дампа нужен пароль, агент упрётся в запрет на credentials и остановится. Это правильное поведение: дамп запускаете вы сами, а агент подставляет остальное.
Конфигурация. Агент копирует docker-compose.yml, конфиги прокси и cron-задания, но пропускает .env и другие файлы с секретами.
Отчёт. В конце вы получаете папки вида backups/имя_проекта/, в каждой образ, архивы томов, дамп и описание. Агент перечисляет, что сохранено, и что пропущено и почему.
Секреты: почему агенту запрещено их трогать
Запрет на credentials выглядит странно: без файла .env проект на новом сервере не запустится. Но смысл в разделении ответственности. Всё, что агент прочитал, может попасть в логи, историю диалога или на серверы провайдера модели. Пароль от базы клиентов в такой истории — уже инцидент безопасности.
Поэтому секреты лучше переносить отдельно и вручную: скопировать .env через защищённый канал или сразу выпустить новые ключи на новом сервере. Второй вариант надёжнее, особенно если у старого провайдера остаются копии ваших данных.
Как проверить, что бэкап рабочий
Копия, которую ни разу не восстанавливали, остаётся надеждой. Минимальная проверка занимает полчаса:
- Сравните размеры архивов с данными на сервере. Архив тома с базой на 20 гигабайт не может весить 3 мегабайта.
- Проверьте целостность архивов:
gzip -tдля сжатых файлов,tar -tfдля просмотра содержимого. - Поднимите проект на тестовой машине или дешёвом VPS:
docker loadдля образов, восстановление томов,docker compose up -d. Откройте сайт, зайдите в админку, проверьте, что последние заказы или заявки на месте. - Запишите, сколько это заняло. Это и есть ваше реальное время восстановления, которое пригодится при разговоре о рисках.
Если на шаге 3 что-то не взлетело, лучше узнать это сейчас, а не в день аварии.
Переезд на другого хостинг-провайдера
Когда копия проверена, сам переезд сводится к повторению проверки на боевом сервере:
- Арендуйте сервер у другого провайдера и установите Docker. Если вы используете Dokploy, установите его заранее, это упростит деплой.
- Загрузите образы, восстановите тома и дампы баз.
- Перенесите секреты отдельно, как описано выше.
- Запустите проект и проверьте его по временному адресу.
- Заранее, за сутки до переезда, уменьшите TTL у DNS-записей домена. Тогда после переключения A-записи на новый IP клиенты быстрее попадут на новый сервер.
- Сделайте финальный дамп базы прямо перед переключением, чтобы не потерять заказы, пришедшие между копией и переездом.
Если проект зависит от управляемых сервисов облака, например от хранилища объектов или управляемой базы данных, их данные нужно выгрузить отдельно средствами самого облака. Docker-бэкап их не захватит.
Как сделать бэкап привычкой, а не разовой акцией
Разовая копия устаревает в день создания. После первого прогона имеет смысл автоматизировать процесс:
- дамп базы по расписанию, ежедневно или чаще для интернет-магазина;
- архив томов с медиафайлами раз в неделю, если они меняются медленно;
- хранение копий минимум в двух местах, причём одно не у того же провайдера, что и основной сервер;
- пометка свежести последней копии в мониторинге, чтобы узнавать о сломавшемся бэкапе сразу, а не через месяц.
Это классическое правило «3-2-1»: три копии данных, на двух разных носителях, одна вне основной площадки. События октября показали, что «вне площадки» для облака означает «у другого провайдера», а не «в соседней зоне доступности того же облака».
Риски и ограничения
Подход с AI-агентом экономит время, но у него есть пределы, о которых стоит знать заранее.
Агент может ошибиться: пропустить том, подключённый нестандартно, или неверно определить, где база. Поэтому отчёт и проверка восстановления обязательны, даже если всё прошло гладко.
Второй риск связан с согласованностью данных. Если приложение пишет в файлы во время архивации, копия может оказаться неполной. Для баз используйте дампы, для остального выбирайте время с низкой нагрузкой.
В копии базы почти всегда есть персональные данные клиентов. Храните бэкапы на зашифрованном диске и не кладите их в папку, которая синхронизируется с публичным облаком. Ноутбук с незашифрованной базой клиентов, забытый в такси, хуже любого сбоя у провайдера.
Наконец, объём. Сотни гигабайт медиафайлов через домашний интернет могут качаться сутки. В таком случае разумнее делать копию сразу на сервер у другого провайдера, а к себе забирать только базы и конфигурацию.
Сроки и стоимость зависят от проекта: количества контейнеров, объёма данных, наличия CI и документации. Для небольшого сайта на одном сервере это ориентировочно вечер работы, для системы из нескольких серверов требуется отдельная оценка.
Чек-лист на сегодня
- Составить список проектов и серверов, где они работают.
- Для каждого сервера запустить агента с промптом выше и получить копию.
- Отдельно сохранить секреты в менеджере паролей.
- Проверить восстановление хотя бы одного проекта на тестовом сервере.
- Выбрать запасного провайдера и записать, кто и как будет переключать DNS.
- Настроить регулярный бэкап с хранением у другого провайдера.
Привязка к одному поставщику бьёт и за пределами хостинга. Похожий случай с блокировкой аккаунта и срочным переносом пяти проектов мы описывали в материале «Claude Code заблокировал мой аккаунт», а для селлеров разбирали, как восстановить продажи после пожара на складе WB. Вывод везде один: запасной план дешевле, когда его готовят заранее.
Возьмём проект на постоянное обслуживание
Если не хочется разбираться с этим самостоятельно, мы возьмём ваш проект на постоянное обслуживание: настроим регулярное резервирование данных с хранением у другого провайдера, проверим восстановление, будем следить за серверами и при необходимости перенесём проект на другой хостинг.
Что входит, можно посмотреть на странице услуги «Поддержка сайтов». Если нужен переезд на новую инфраструктуру с автоматическим деплоем, подойдёт услуга «Деплой и инфраструктура». Оставьте заявку, и мы начнём с описи того, что у вас работает и где лежат данные.