Sync TZ deployment infrastructure
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user