Хранилища
Entrosity се разработва в отделни хранилища (repositories) в GitHub
организацията entrosity. Те са отделени
от монорепото entrosity/RMM заедно с историята си; продукцията се
разгръща от тях след преминаването на 2026-09-26.
| Хранилище | Съдържание | Издава се като |
|---|---|---|
entrosity-shared-go | Go пакети, споделени от услугите и изпълнимите файлове: типове на протокола (proto), agentkit, apperr, authkit, mailkit, reqctx, secretbox, version | Go модул, тагове vX.Y.Z |
entrosity-ui | @entrosity/ui: примитиви на shadcn/ui, дизайн токени, Tailwind preset, споделени компоненти | npm пакет в GitHub Packages, тагове vX.Y.Z |
entrosity-axis.backend | API сървърът на Axis, WebSocket hub, worker процеси, миграции, симулатори, publish-agent | ghcr.io/entrosity/axis-backend, тагове vX.Y.Z |
entrosity-axis.frontend | Порталът на Axis (обслужван на /axis) | ghcr.io/entrosity/axis-frontend:main |
entrosity-axis-agent | Агентът за крайни устройства с Windows и неговият MSI | GitHub releases (dev pre-release, тагове vX.Y.Z) |
entrosity-axis-connector | Конекторът за обекта и неговият MSI | GitHub releases (dev pre-release, тагове vX.Y.Z) |
entrosity-hub.backend | API сървърът на Entrosity Hub | ghcr.io/entrosity/hub-backend, тагове vX.Y.Z |
entrosity-hub.frontend | Уеб приложението на Entrosity Hub (обслужвано на /) | ghcr.io/entrosity/hub-frontend:main |
entrosity-edge.backend | API сървърът на Entrosity Edge, фонови задачи, миграции | ghcr.io/entrosity/edge-backend, тагове vX.Y.Z |
entrosity-edge.frontend | Уеб приложението на Entrosity Edge (обслужвано на /edge) | ghcr.io/entrosity/edge-frontend:main |
entrosity-edge-connector | Конекторът на Edge (със симулатора на контролери) и неговият MSI | GitHub releases (pre-release издание dev, тагове vX.Y.Z), публикувани в Edge за самообновяване |
entrosity-sphere.backend | API сървърът на Entrosity Sphere, hook за медийния сървър, фонови задачи, миграции | ghcr.io/entrosity/sphere-backend, тагове vX.Y.Z |
entrosity-sphere.frontend | Уеб приложението на Entrosity Sphere (обслужвано на /sphere) | ghcr.io/entrosity/sphere-frontend:main |
entrosity-sphere-connector | Конекторът на Sphere (със симулатора на рекордери) и неговият MSI | GitHub releases, тагове vX.Y.Z |
entrosity-matrix.backend | API сървърът на Entrosity Matrix, фонови задачи, миграции, импортът от stop-internet | ghcr.io/entrosity/matrix-backend, тагове vX.Y.Z |
entrosity-matrix.frontend | Уеб приложението на Entrosity Matrix (обслужвано на /matrix) | ghcr.io/entrosity/matrix-frontend:main |
entrosity-matrix-connector | Конекторът на Matrix (REST клиент за FortiGate, локална защита, симулатор) и неговият MSI | GitHub releases (dev pre-release, тагове vX.Y.Z), публикувани в Matrix за самообновяване |
entrosity-vertex.backend | API сървърът на Entrosity Vertex (управление на Active Directory), фонови задачи, миграции; изпълнява задачите си на конектори на Axis | ghcr.io/entrosity/vertex-backend, тагове vX.Y.Z |
entrosity-infra | Compose стекове, Caddy, скриптове за разгръщане и резервни копия, наблюдение, междупродуктови тестове | – |
entrosity-docs | Този сайт, CHANGELOG.md, инженерни записи (engineering/) | ghcr.io/entrosity/docs:main |
Зависимости между хранилищата
- Go: услугите и изпълнимите файлове имат
require github.com/entrosity/entrosity-shared-goкъм конкретен таг. Променете споделения код там, поставете таг и след това изпълнетеgo get …@vX.Y.Zвъв всеки потребител на модула. За да работите едновременно и по двете, създайте непроследяванgo.workв потребителя (go work init . ../entrosity-shared-go). - UI: поставянето на таг в
entrosity-uiпубликува пакета и изпращаui-releasedкъм двете приложения. Техният работен потокui-bumpобновява@entrosity/ui, изпълнява lint, проверка на типовете, тестове и изграждане и качва (push) обновлението вmainсамо ако всичко мине успешно. - API договори: всеки бекенд притежава своя
api/openapi.yaml. Промяна вmainизпращаopenapi-updatedкъм неговото приложение (работният потокopenapi-bumpгенерира наново типизирания клиент от къмитнатата моментна снимкаapi/openapi.yaml) и към този сайт (справочникът за API се генерира отspecs/*.yaml). - По време на работа: Axis, Edge, Sphere и Matrix изтеглят моментната снимка на правата за достъп от вътрешното API на Hub и проверяват токените на Hub; медийният сървър на Sphere (MediaMTX, конфигуриран в
entrosity-infra) пита бекенда на Sphere за всяко публикуване и гледане;import-rmmна Hub чете базата данни на Axis;import-stop-internetна Matrix чете експорт от панела stop-internet; Vertex и Axis извикват вътрешните API-та един на друг (задачи за конекторите на Axis, тайните и резултатите на конекторите). Тези договори са HTTP и SQL, а не код.
Достъп
Всичко е частно. Разработчиците се нуждаят от:
GOPRIVATE=github.com/entrosityи Git идентификационни данни за GitHub (gh auth setup-git);- токен с
read:packagesв~/.npmrcза@entrosity/ui://npm.pkg.github.com/:_authToken=<token>.
CI използва тайната (secret) ENTROSITY_CI_TOKEN във всяко хранилище (за четене на частните хранилища и пакети, изпращане на repository_dispatch и качване на автоматичните обновления на версии).
Разгръщане
Продукцията (hub.entrosity.com) се разгръща от работния поток deploy
на entrosity-infra. След като проверките в main минат успешно,
бекендите, фронтендите и този сайт публикуват образите си main и му
изпращат repository_dispatch deploy; той разгръща текущия образ main
на всеки компонент
(Непрекъснато разгръщане).
Неговият CUTOVER.md описва превключването от entrosity/RMM на
2026-09-26, чиито работни потоци за разгръщане и издания вече са
изключени. Компилациите на агента и конектора се публикуват в продукция
от собствените им хранилища
(Публикуване на самообновявания).