Учебное руководство
Главы руководства
На этой странице

Переименование VPS в Atmanki — 05.10.2026

Оглавление · Деплой · Эксплуатация

Что изменено

Compose-проект и активные контейнеры используют имя atmanki, общая сеть — atmanki_default. Storybook и руководство работают в проектах atmanki-storybook и atmanki-docs. Административный пользователь PostgreSQL и его служебная база переименованы в atmanki; бизнес-база strapi сохраняет своё имя.

SSH-пользователь деплоя — atmanki-deploy, домашняя папка — /home/atmanki-deploy. UID, GID и выделенный SSH-ключ сохранены; вход этим ключом проверен. Токен CMS переименован в atmanki-web без изменения ключа и прав read-only. Значения секретов не выводились в отчёт.

Домены, репозиторий maderwin/gheilt, локальная корневая папка и /opt/gheilt сохранены. Имена GHCR-образов по-прежнему выводятся из имени репозитория. Hatchet и учебный воркер выведены из рабочего стека: контейнеры остановлены, порты 8888 и 7070 не слушаются. Их прежние данные сохранены для отката.

Резервная копия и перенос

Перед переключением автоматический деплой остановлен через VPS_READY=false, операция выполнялась под /opt/gheilt/deploy.lock. Рабочие сервисы остановлены на время холодного копирования, PostgreSQL корректно завершён перед копией его тома. Для Strapi и Hatchet также сохранены SQL dumps и общие роли PostgreSQL.

Успешная копия: /opt/gheilt/backups/atmanki-20261005T115438Z, каталог 0700. Сохранены все семь прежних томов, окружение, исходный релиз, ссылки текущих релизов и описание контейнеров. Шесть томов рабочего стека восстановлены под префиксом atmanki_; отдельный том конфигурации Hatchet остаётся в архиве. Оригинальные тома и остановленные контейнеры сохранены.

Первое восстановление обнаружило отличие времени изменения каталогов: BusyBox tar не восстановил эти метаданные. Автоматический возврат поднял прежние сервисы. После перехода на GNU tar повторное создание архивов восстановленных томов дало побайтовое совпадение с исходными архивами, включая метаданные каталогов.

Зашифрованная копия сохранена вне VPS в локальной папке .local/backups/atmanki-20261005, исключённой из Git. Архив и файл ключа имеют права 0600, папка — 0700. Расшифровка и чтение оглавления архива проверены.

Проверки после переключения

Сравнены SHA-256 логических dumps баз до и после переименования роли и служебной базы: содержимое Strapi и Hatchet совпало. При сравнении исключались только случайные маркеры restrict/unrestrict, которые PostgreSQL добавляет в dump. Затем изменено только имя служебного токена CMS с предварительной проверкой единственности и отсутствия конфликта нового имени.

/api/content-health вернул ready и те же количества:

РазделЗаписей
Site1
Новости94
События41
Страницы5
FAQ15
Партнёры44

Контрольная сумма одной публичной фотографии до и после переключения совпала. Проверены HTTPS главной страницы, /admin, руководства и Storybook index.json. Контейнеры PostgreSQL, Garage, CMS, сайта, руководства и Storybook прошли healthchecks.

Для переключения имён сначала использованы уже работающие образы с закреплёнными image IDs. Новый код и статические каталоги доставляются отдельно штатными GitHub Actions из GHCR; состояние этой публикации проверяется по конкретному run и фактически работающим digest. Исправлена сборка Storybook: её Dockerfile теперь копирует manifest apps/docs, необходимый для --frozen-lockfile.

Откат

Путь успешной копии записан в /opt/gheilt/atmanki-migration.backup. В копии находятся исходные ссылки web/CMS/Storybook/руководства и окружение. При ошибке переноса скрипт остановил новый стек и поднял исходные контейнеры с исходными томами; этот возврат проверен во время первой попытки.

После возобновления редакторской работы исходные тома уже не содержат новых изменений. Перед последующим откатом нужна свежая согласованная копия и проверка расхождений; обычная смена release.env не отменяет переименование томов и базы. Удаление исходных томов и старых данных Hatchet в эту операцию не входит.