Перейти к содержанию

0006 — Среды, домены, инфраструктура и релизы

  • Дата: 2026-08-21.
  • Статус: Частично заменено; Basic Auth policy заменена решением 0030, доменная схема заменена решением 0019.
  • Ответственный: владелец проекта.

Актуальная access policy определена решением 0030: Basic Auth не применяется без нового прямого запроса владельца. Ниже сохранён исторический контекст решения.

Контекст

Владелец выделил тестовый сервер для DEV и STAGE, отдельные домены для наблюдения за разработкой и отдельный будущий production-сервер. Требовалось исключить смешивание данных, секретов и сборок между контурами.

Решение

  • dev.skuaro.top — DEV продукта на тестовом сервере.
  • skuaro.top — STAGE продукта на том же тестовом сервере, но в изолированном контуре.
  • doc-dev.skuaro.top — защищённая документация разработчика.
  • skuaro.com — production-лендинг, www.skuaro.com перенаправляется на него.
  • lk.skuaro.com — production-продукт на отдельном сервере.
  • doc.skuaro.com — публичная документация пользователя.
  • API остаётся same-origin по /api/v1.
  • DEV, STAGE и doc-dev защищаются Basic Auth и noindex.
  • На тестовом сервере используются отдельные Compose projects skuaro-dev и skuaro-stage; PROD использует skuaro-prod на отдельном сервере.
  • Каждая среда имеет собственные network, PostgreSQL, volumes, credentials, sessions, runtime config, logs и backup policy.
  • Целевой reverse proxy — Caddy, но существующий безопасный proxy не заменяется до аудита.
  • STAGE и PROD получают один и тот же image digest без пересборки.
  • Формальная CalVer-версия YY.MM.DD.NN присваивается только продукту на lk.skuaro.com.

Причины

Разделение окружений позволяет использовать один тестовый сервер без смешивания данных и выпускать проверенный артефакт. Same-origin API упрощает cookies и CORS. Отдельный production-сервер ограничивает влияние разработки и тестов на пользователей.

Последствия

  • Сервер, DNS и deploy требуют отдельных разрешений после read-only аудита.
  • DEV имеет build metadata dev-<shortsha>, STAGE — YY.MM.DD.NN-rc, PROD — YY.MM.DD.NN.
  • Git tag продукта имеет вид app-vYY.MM.DD.NN.
  • Лендинг и документация имеют независимые build ID и не меняют версию продукта.
  • latest не используется как единственный deploy tag.
  • PROD не запускается на выделенном тестовом сервере.

Откат или замена

Изменение домена, размещения production или границ сред требует нового решения. Техническая замена Caddy на существующий проверенный proxy допускается после server audit, если все security и routing требования сохраняются.