Преминете към основното съдържание

Хранилища

Entrosity се разработва в отделни хранилища (repositories) в GitHub организацията entrosity. Те са отделени от монорепото entrosity/RMM заедно с историята си; продукцията се разгръща от тях след преминаването на 2026-09-26.

ХранилищеСъдържаниеИздава се като
entrosity-shared-goGo пакети, споделени от услугите и изпълнимите файлове: типове на протокола (proto), agentkit, apperr, authkit, mailkit, reqctx, secretbox, versionGo модул, тагове vX.Y.Z
entrosity-ui@entrosity/ui: примитиви на shadcn/ui, дизайн токени, Tailwind preset, споделени компонентиnpm пакет в GitHub Packages, тагове vX.Y.Z
entrosity-axis.backendAPI сървърът на Axis, WebSocket hub, worker процеси, миграции, симулатори, publish-agentghcr.io/entrosity/axis-backend, тагове vX.Y.Z
entrosity-axis.frontendПорталът на Axis (обслужван на /axis)ghcr.io/entrosity/axis-frontend:main
entrosity-axis-agentАгентът за крайни устройства с Windows и неговият MSIGitHub releases (dev pre-release, тагове vX.Y.Z)
entrosity-axis-connectorКонекторът за обекта и неговият MSIGitHub releases (dev pre-release, тагове vX.Y.Z)
entrosity-hub.backendAPI сървърът на Entrosity Hubghcr.io/entrosity/hub-backend, тагове vX.Y.Z
entrosity-hub.frontendУеб приложението на Entrosity Hub (обслужвано на /)ghcr.io/entrosity/hub-frontend:main
entrosity-edge.backendAPI сървърът на 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 (със симулатора на контролери) и неговият MSIGitHub releases (pre-release издание dev, тагове vX.Y.Z), публикувани в Edge за самообновяване
entrosity-sphere.backendAPI сървърът на 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 (със симулатора на рекордери) и неговият MSIGitHub releases, тагове vX.Y.Z
entrosity-matrix.backendAPI сървърът на Entrosity Matrix, фонови задачи, миграции, импортът от stop-internetghcr.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, локална защита, симулатор) и неговият MSIGitHub releases (dev pre-release, тагове vX.Y.Z), публикувани в Matrix за самообновяване
entrosity-vertex.backendAPI сървърът на Entrosity Vertex (управление на Active Directory), фонови задачи, миграции; изпълнява задачите си на конектори на Axisghcr.io/entrosity/vertex-backend, тагове vX.Y.Z
entrosity-infraCompose стекове, 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, чиито работни потоци за разгръщане и издания вече са изключени. Компилациите на агента и конектора се публикуват в продукция от собствените им хранилища (Публикуване на самообновявания).