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