Живая приёмка стендов SourceCraft
Проверено на VPS 6 октября 2026 года. Это отчёт о выполненных проверках; релизные ветки, staging и blue-green production в этот этап не входили.
CI и доставка
- PR №14 исправил выпуск HTTPS через DNS-01.
CI №47 проверил точный head
fe0a77c; после согласованного одноразового обхода блокирующей проверки PR влит в mainda61602. - CI №61 собрал и опубликовал Caddy и четыре application-образа из main.
Caddy установлен по digest
sha256:f4c3f2ff26b9aba05283a825e1e45fc5e596d646c5e6bb8d9f3e0a02800a34d7; OCI revision сверена с полным SHA main. На VPS образы не собирались. - Приёмочный PR №13
обновлён до актуальной базы. Автоматический CI №62 на head
d0eba69и базеda61602прошёл проверки, публикацию четырёх образов и ожидание публичной готовности. PR влит обычным способом, без обхода проверок; main после merge —2a68a95.
Контент и HTTPS
Test и PR №13 получили собственные PostgreSQL, Garage, Strapi, сайт, Storybook и документацию. Имена Docker volumes отличаются от production и друг от друга. Первоначальный снимок содержит 200 опубликованных документов и 897 медиафайлов из текущей production CMS/Garage; внешний сайт не использовался.
Проверены все пять HTTPS-адресов каждого стенда. Сертификаты выданы Let’s Encrypt,
проверка доверия и SAN проходит. Web /api/health возвращает 200,
{ "status": "ok" } и точный SHA стенда в X-App-Release; CMS /_health — 204,
Storybook /index.json и документация — 200. Выбранная фотография доступна в
обоих независимых хранилищах; JPEG совпадает побайтно. Штатный upload Strapi
оптимизирует изображения, поэтому checksum исходного снимка нельзя использовать
как ожидаемый checksum уже загруженного JPEG.
В CMS PR №13 через Document Service создана только черновая редакторская правка.
Она сохранилась после обновления четырёх образов; опубликованный Site не изменялся.
После выпуска сертификатов временных ACME TXT-записей в проектной зоне не осталось.
Временная запись Docker Hub в /etc/hosts удалена.
Холодный режим и удаление
Для проверки 30-минутного простоя сдвинута только отметка последнего обращения
собственного PR №13; ждать 30 минут по часам не потребовалось. Обычный runtime
остановил все шесть сервисов. Обращение к адресу CMS вернуло 503 / Retry-After: 5
и запустило стенд; после запуска CMS снова ответила 204.
Первый ограниченный 20 секундами пробный опрос закончился раньше запуска;
последующая проверка подтвердила готовность всех шести сервисов.
После HTTP-пробуждения сохранились ID контейнеров, образы, volumes, отметка импорта,
head, generation и lastPushAt. Черновая правка осталась в CMS. Повторный импорт
и продление 12-часового срока жизни PR не произошли.
После merge PR №13 контроллер удалил его шесть контейнеров, пять volumes, сеть, локальные данные, runtime state и маршруты всех пяти поддоменов. Журнал подтверждает отзыв каждого из пяти leaf-сертификатов через ACME; cert/key/metadata-файлы удалены, долговечная очередь отзыва пуста. Legacy GitHub PR №1 сохранён. 12-часовое истечение и LRU проверены контрактными тестами; этот отчёт не утверждает 12-часовое ожидание или отдельную живую проверку LRU на VPS.
При установке proxy и очистке кеша сертификатов пересоздавался/перезапускался только
Caddy. ID и время запуска шести production-контейнеров остались прежними;
production /api/health после обоих этапов отвечает 200.
Что остаётся
Production пока сохраняет прежний GitHub pipeline. Следующий этап:
release/* → staging, стабильные релизы → production, blue-green также для Strapi
с проверкой совместимости миграций, changelog и руководство по трём Git-платформам.
Два небольших замечания DNS-ревью отложены: более строгая проверка поля response
завершённой YC operation и соответствие возвращаемого libdns TTL фактическому TTL 60.
Живой выпуск и удаление TXT-записей с текущим YC API проверены.