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 — клиентский и менеджерский веб-интерфейс
- 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