From d3f56efac1569ac3c86cf7936066e727609cf6c0 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Fri, 15 May 2026 15:53:40 +0700 Subject: [PATCH] Sync TZ deployment infrastructure --- docs/tz-fregat.typ | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/tz-fregat.typ b/docs/tz-fregat.typ index 2282850..7f0d3b3 100644 --- a/docs/tz-fregat.typ +++ b/docs/tz-fregat.typ @@ -1522,13 +1522,14 @@ Wireframe-прототип: Согласно действующей карте деплоя в составе проекта используются следующие сервисы: - web-frontend — клиентский и менеджерский веб-интерфейс -- apollo-backend — сервер GraphQL и бизнес-логика +- backend — сервер GraphQL и бизнес-логика - vault — централизованное хранилище секретов - tg-bot — Telegram-контур - max-bot — MAX-контур - bonus-bot — бонусный мессенджерный контур +- hatchet-worker — прикладной worker-контур -Основные прикладные сервисы web-frontend и apollo-backend разворачиваются через dokploy_webhook на сервере main. +Основные прикладные сервисы разворачиваются через Dokploy на сервере заказчика. Исходный код размещается в Gitea, доступной по адресу `git.fregat.org`. == Технологический стек фронтенда @@ -1609,7 +1610,7 @@ Wireframe-прототип: - принимает запросы браузера - прокидывает cookie и авторизационные заголовки -- перенаправляет запрос в apollo-backend +- перенаправляет запрос в backend - возвращает результат в клиентское приложение Такой подход позволяет: @@ -1678,8 +1679,8 @@ Wireframe-прототип: [клиентский и менеджерский веб-интерфейс], [dokploy_webhook], [main], - [apollo-backend], - [apollo-backend], + [backend], + [backend], [GraphQL API и бизнес-логика], [dokploy_webhook], [main], @@ -1712,13 +1713,15 @@ Wireframe-прототип: ] -Серверная карта текущего проекта: +Публичные домены эксплуатационного контура: -- сервер main -- Tailscale user: root -- Tailscale host: dsrptlab +- `dokploy.fregat.org` — панель Dokploy +- `git.fregat.org` — Gitea, размещенная внутри Dokploy +- `lk.fregat.org` — пользовательский и менеджерский веб-интерфейс +- `api.fregat.org` — внешний endpoint backend при необходимости прямого обращения +- `hatchet.fregat.org` — интерфейс мониторинга worker-контура -Эксплуатационные операции доступа и диагностики выполняются через Tailscale SSH. +Прямой доступ к сервисам снаружи не предусматривается: внешний HTTP/HTTPS-доступ выполняется через reverse proxy Dokploy/Traefik, а прикладные сервисы взаимодействуют между собой во внутренней Docker-сети. == Dokploy и цепочка развёртывания @@ -1729,7 +1732,7 @@ Wireframe-прототип: + изменения фиксируются в Git-репозитории; + изменения публикуются в main; -+ Dokploy получает webhook-событие; ++ Gitea отправляет webhook-событие в Dokploy; + Dokploy выполняет сборку соответствующего сервиса; + сервис перезапускается с загрузкой секретов из Vault; + после старта выполняются bootstrap-действия, предусмотренные образом и entrypoint-командой. @@ -1737,8 +1740,9 @@ Wireframe-прототип: Текущие особенности прикладных сервисов: - web-frontend стартует через загрузку Vault env и запуск .output/server/index.mjs -- apollo-backend стартует через загрузку Vault env, prisma migrate deploy и запуск src/server.js +- backend стартует через загрузку Vault env, prisma migrate deploy и запуск src/server.js - bot-сервисы стартуют через общий паттерн загрузки Vault env и запуск node src/server.js +- hatchet-worker стартует через загрузку Vault env и подключается к Hatchet engine во внутренней сети == Vault и хранение секретов @@ -1766,7 +1770,7 @@ Wireframe-прототип: Текущая сервисная структура репозитория: - web-frontend — Nuxt-приложение, GraphQL operations, VitePress-документация -- apollo-backend — Apollo Server, Prisma schema, миграции, интеграционная обработка данных +- backend — Apollo Server, Prisma schema, миграции, интеграционная обработка данных - tg-bot — Telegram-сервис - max-bot — MAX-сервис - bonus-bot — бонусный сервис @@ -1956,10 +1960,10 @@ Wireframe-прототип: - deploy-map.toml — карта сервисов, deploy mode и серверов - web-frontend/nuxt.config.ts — конфигурация Nuxt и Apollo - web-frontend/codegen.ts — конфигурация GraphQL codegen -- apollo-backend/prisma.config.ts — конфигурация Prisma -- apollo-backend/prisma/schema.prisma — модель данных +- backend/prisma.config.ts — конфигурация Prisma +- backend/prisma/schema.prisma — модель данных - web-frontend/scripts/load-vault-env.sh — Vault bootstrap frontend -- apollo-backend/scripts/load-vault-env.sh — Vault bootstrap backend +- backend/scripts/load-vault-env.sh — Vault bootstrap backend - vault/config/vault.hcl — конфигурация Vault - vault/entrypoint.sh — startup/unseal логика Vault