Sync TZ deployment infrastructure

This commit is contained in:
Ruslan Bakiev
2026-05-15 15:53:40 +07:00
parent 49e0e444d9
commit d3f56efac1

View File

@@ -1522,13 +1522,14 @@ Wireframe-прототип:
Согласно действующей карте деплоя в составе проекта используются следующие сервисы: Согласно действующей карте деплоя в составе проекта используются следующие сервисы:
- web-frontend — клиентский и менеджерский веб-интерфейс - web-frontend — клиентский и менеджерский веб-интерфейс
- apollo-backend — сервер GraphQL и бизнес-логика - backend — сервер GraphQL и бизнес-логика
- vault — централизованное хранилище секретов - vault — централизованное хранилище секретов
- tg-bot — Telegram-контур - tg-bot — Telegram-контур
- max-bot — MAX-контур - max-bot — MAX-контур
- bonus-bot — бонусный мессенджерный контур - bonus-bot — бонусный мессенджерный контур
- hatchet-worker — прикладной worker-контур
Основные прикладные сервисы web-frontend и apollo-backend разворачиваются через dokploy_webhook на сервере main. Основные прикладные сервисы разворачиваются через Dokploy на сервере заказчика. Исходный код размещается в Gitea, доступной по адресу `git.fregat.org`.
== Технологический стек фронтенда == Технологический стек фронтенда
@@ -1609,7 +1610,7 @@ Wireframe-прототип:
- принимает запросы браузера - принимает запросы браузера
- прокидывает cookie и авторизационные заголовки - прокидывает cookie и авторизационные заголовки
- перенаправляет запрос в apollo-backend - перенаправляет запрос в backend
- возвращает результат в клиентское приложение - возвращает результат в клиентское приложение
Такой подход позволяет: Такой подход позволяет:
@@ -1678,8 +1679,8 @@ Wireframe-прототип:
[клиентский и менеджерский веб-интерфейс], [клиентский и менеджерский веб-интерфейс],
[dokploy_webhook], [dokploy_webhook],
[main], [main],
[apollo-backend], [backend],
[apollo-backend], [backend],
[GraphQL API и бизнес-логика], [GraphQL API и бизнес-логика],
[dokploy_webhook], [dokploy_webhook],
[main], [main],
@@ -1712,13 +1713,15 @@ Wireframe-прототип:
] ]
Серверная карта текущего проекта: Публичные домены эксплуатационного контура:
- сервер main - `dokploy.fregat.org` — панель Dokploy
- Tailscale user: root - `git.fregat.org` — Gitea, размещенная внутри Dokploy
- Tailscale host: dsrptlab - `lk.fregat.org` — пользовательский и менеджерский веб-интерфейс
- `api.fregat.org` — внешний endpoint backend при необходимости прямого обращения
- `hatchet.fregat.org` интерфейс мониторинга worker-контура
Эксплуатационные операции доступа и диагностики выполняются через Tailscale SSH. Прямой доступ к сервисам снаружи не предусматривается: внешний HTTP/HTTPS-доступ выполняется через reverse proxy Dokploy/Traefik, а прикладные сервисы взаимодействуют между собой во внутренней Docker-сети.
== Dokploy и цепочка развёртывания == Dokploy и цепочка развёртывания
@@ -1729,7 +1732,7 @@ Wireframe-прототип:
+ изменения фиксируются в Git-репозитории; + изменения фиксируются в Git-репозитории;
+ изменения публикуются в main; + изменения публикуются в main;
+ Dokploy получает webhook-событие; + Gitea отправляет webhook-событие в Dokploy;
+ Dokploy выполняет сборку соответствующего сервиса; + Dokploy выполняет сборку соответствующего сервиса;
+ сервис перезапускается с загрузкой секретов из Vault; + сервис перезапускается с загрузкой секретов из Vault;
+ после старта выполняются bootstrap-действия, предусмотренные образом и entrypoint-командой. + после старта выполняются bootstrap-действия, предусмотренные образом и entrypoint-командой.
@@ -1737,8 +1740,9 @@ Wireframe-прототип:
Текущие особенности прикладных сервисов: Текущие особенности прикладных сервисов:
- web-frontend стартует через загрузку Vault env и запуск .output/server/index.mjs - 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 - bot-сервисы стартуют через общий паттерн загрузки Vault env и запуск node src/server.js
- hatchet-worker стартует через загрузку Vault env и подключается к Hatchet engine во внутренней сети
== Vault и хранение секретов == Vault и хранение секретов
@@ -1766,7 +1770,7 @@ Wireframe-прототип:
Текущая сервисная структура репозитория: Текущая сервисная структура репозитория:
- web-frontend Nuxt-приложение, GraphQL operations, VitePress-документация - web-frontend Nuxt-приложение, GraphQL operations, VitePress-документация
- apollo-backend Apollo Server, Prisma schema, миграции, интеграционная обработка данных - backend Apollo Server, Prisma schema, миграции, интеграционная обработка данных
- tg-bot Telegram-сервис - tg-bot Telegram-сервис
- max-bot MAX-сервис - max-bot MAX-сервис
- bonus-bot бонусный сервис - bonus-bot бонусный сервис
@@ -1956,10 +1960,10 @@ Wireframe-прототип:
- deploy-map.toml карта сервисов, deploy mode и серверов - deploy-map.toml карта сервисов, deploy mode и серверов
- web-frontend/nuxt.config.ts конфигурация Nuxt и Apollo - web-frontend/nuxt.config.ts конфигурация Nuxt и Apollo
- web-frontend/codegen.ts конфигурация GraphQL codegen - web-frontend/codegen.ts конфигурация GraphQL codegen
- apollo-backend/prisma.config.ts конфигурация Prisma - backend/prisma.config.ts конфигурация Prisma
- apollo-backend/prisma/schema.prisma модель данных - backend/prisma/schema.prisma модель данных
- web-frontend/scripts/load-vault-env.sh Vault bootstrap frontend - 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/config/vault.hcl конфигурация Vault
- vault/entrypoint.sh startup/unseal логика Vault - vault/entrypoint.sh startup/unseal логика Vault