Gerege Nexus¶
Gerege Eco System · Закрытая платформа
Gerege Nexus объединяет организации, сервисы и пользователей Gerege Eco System. Вход доступен только пользователям с заранее предоставленным доступом. eID подтверждает личность; право входа предоставляет администратор организации.
Gerege Nexus — это основа из Go backend, веб-оболочки Next.js, базы данных PostgreSQL, операторской control plane и native-клиентов. Бизнес-приложения добавляются репозиториями дистрибутивов в виде Go-модулей времени компиляции. Этот базовый репозиторий не является готовым ERP-пакетом для всех отраслей.
Реальный охват (2026-10-25):
catalog/apps.jsonпуст — ядро не несёт ни одного бизнес-приложения; каждое приложение приходит из каталога дистрибутива. Последнее приложение,io.gerege.nexus.sso_clients, 2026-08-25 перешло в appstore-gerege-nexus, и любой дистрибутив получает его из магазина приложений. История миграций или переводы frontend для приложений contacts, products, inventory, billing, documents, government workflow, SSO-клиентов и т. п. могут оставаться в этом репозитории, но их работающих модулей в этом базовом бинарном файле нет. Маршруты таких приложений в этом deployment не открываются.
Монгол
·
العربية
·
中文
·
English
·
Français
·
Русский
·
Español
Что именно содержит этот репозиторий¶
| Часть | Текущая реализация |
|---|---|
| Tenant plane | Вход, сессии, членство в арендаторе, RBAC, профиль, установка/отключение приложений, AI API, устройства, подтверждение email, SSO client/provider, reporting engine |
| Operator plane | Жизненный цикл арендаторов, вход операторов по TOTP, аудит, поддержка, quota/metering, feature flag, runtime settings/credentials, объявления, управление backup/deploy |
| Встроенные приложения | Отсутствуют. Каждое приложение приходит через каталог — после ухода sso_clients 2026-08-25 этот бинарный файл не содержит ни одного бизнес-приложения |
| Web | Публичный landing, login/setup, профиль, магазин приложений, настройки, control plane — всё на @gerege-systems/ui (Tailwind 4); экраны приложений (SSO-клиенты, документы, контрагенты) остались в оболочке неактивными, без своих модулей |
| Native | Оболочки для macOS, iOS/iPadOS, Windows, Android; для Linux — PWA |
| Observability | /health, /ready, /metrics, structured log, опционально OTLP/Sentry; отдельный monitoring compose |
Наличие маршрутов, таблиц и сервисов базовой платформы ещё не означает, что
у пользователя обязательно есть видимое бизнес-приложение. Маршруты модуля
работают только тогда, когда модуль времени компиляции реализует контракт
pkg/nexus, зарегистрирован в binary, внесён в каталог
и установлен у данного арендатора.
Чего нет в этом базовом бинарном файле¶
- Бизнес-приложений contacts, products, inventory, billing
- Приложения отделов/сотрудников Organisation & People (при этом юридический
профиль организации на
/organisationостаётся частью платформы) - Backend-модуля Documents и UI отчётов. Опциональный frontend-клиент
contract/inbox в этом repo есть, но соответствующего contract API пока нет ни
в текущей base, ни в дистрибутиве
client-gerege-nexus; если endpoint реально не отвечает, ссылка на landing не показывается - UI/модуля workflow государственных услуг
- Станции целиком — панели, каналов, peer/exchange API, контракта конвертов.
2026-08-27 последняя её часть перешла в
client-gerege-nexus - Коннекторов к внешним системам и webhook (Google Drive, Dropbox, Meet, URL
заказчика). Они также ушли 2026-08-27; в ядре остался только шифр для
запечатывания учётных данных (
nexus.SecretSealer). Автоматическая отправка подписанных документов наружу также удалена из ядра - Общего adaptive circuit breaker, singleflight, generic retry engine
Часть из этого вынесена в репозитории продуктовых дистрибутивов. Как пишется
модуль и как он приходит через каталог — см. docs/MODULES.md, как
дистрибутив получает и обновляет ядро — docs/DISTRIBUTION.md,
текущая архитектура — docs/ARCHITECTURE.md.
Ключевые возможности¶
- SDK модулей времени компиляции: контракты route, permission, menu, dependency, migration, report, AI tool и capability.
- Установка приложений и RBAC gate для каждого арендатора. Маршрут
неустановленного/отключённого модуля возвращает
403. - Локальный каталог или удалённый каталог с подписью Ed25519; cache fallback и ручная/фоновая синхронизация.
- Вход по паролю, eID, ДАН, Google и через upstream OIDC; также OAuth2/OIDC provider.
- Схемы PostgreSQL
workspace,registry,operator, защита через RLS/роли. - При настроенном Redis — инвалидация кэша между репликами и общий rate limit; без него — single-process fallback.
- Load shedding конкурентных запросов. У каждого внешнего клиента своя политика timeout/retry; несуществующий generic circuit breaker не считается частью платформы.
- При наличии ключа Gemini — chat, speech-to-text, text-to-speech, translation. AI tool для бизнес-данных регистрирует сам модуль дистрибутива; базовый deployment не выдумывает и не возвращает цифры inventory или billing.
- Дизайн-система: веб-оболочка и консоль на
@gerege-systems/ui, единственный источник токенов —theme.cssбиблиотеки. Каждый deployment меняет внешний вид без правки кода через переменные окруженияBRAND_THEME_*и CSS из «Get code» на ui.gecore.mn/#theme (DEVELOPMENT.md). - Клиенты E-ID, ДАН, ХУР есть в платформе. В окружении
productionmock по умолчанию выключен; для работы с реальными сервисами нужны соответствующие credential.
Структура репозитория¶
backend/
cmd/ инструменты api, migrate, bootstrap, catalog
db/migrations/ базовые миграции PostgreSQL
internal/kernel/ низкоуровневые механизмы, общие для трёх плоскостей
internal/operator/ deployment/operator plane
internal/workspace/ плоскость, действующая от имени организации
internal/person/ личное пространство человека — /api/v1/me
internal/apps/ точка сборки distribution module (пока пуста)
pkg/nexus/ публичный SDK для distribution module
pkg/host/ публичный entry point для запуска distribution binary
frontend/ Next.js web shell и UI control plane
catalog/ базовый каталог, manifest, chronicle
native-apps/ клиенты macOS, iOS/iPadOS, Windows, Android
deploy/ image, compose, nginx, monitoring
docs/ индекс текущих, исторических и proposal-документов
Запуск¶
Предварительные требования¶
- Docker Compose, или
- Go 1.26+, Node.js 20+, PostgreSQL 16+
Docker Compose¶
Compose запускает PostgreSQL, Redis, одноразовую миграцию, backend и frontend. Используются следующие адреса:
- Tenant web: http://nexus.localhost:3000
- Control plane web: http://admin.localhost:3000
- API health: http://localhost:8080/health
Демо-учётная запись для разработки:
| Поле | Значение |
|---|---|
admin@example.com |
|
| Пароль | Password123! |
| Арендатор | Demo Corporation (demo) |
SEED_DEMO_DATA по умолчанию включён во всех окружениях, кроме production.
В production демо-учётная запись не создаётся, если явно не задано true.
Вручную¶
Сначала запустите PostgreSQL (при необходимости Redis), затем:
cd backend
go mod download
DATABASE_URL="postgres://postgres:postgrespassword@localhost:5432/platform_db?sslmode=disable" \
go run ./cmd/migrate up
PUBLIC_ORIGIN=http://nexus.localhost:3000 \
ALLOWED_ORIGINS=http://nexus.localhost:3000,http://admin.localhost:3000 \
CONTROL_PLANE_HOST=admin.localhost \
go run ./cmd/api
В другом terminal:
cd frontend
npm ci
CONTROL_PLANE_HOST=admin.localhost \
NEXT_PUBLIC_API_URL=http://nexus.localhost:8080/api/v1 \
NEXT_PUBLIC_CONTROL_PLANE_API_URL=http://admin.localhost:8080/api/platform/v1 \
npm run dev
Production-конфигурацию не угадывают по README. Полный список переменных и
безопасные значения по умолчанию — в .env.example,
конфигурация работающего развёртывания — proxmox-gerege-net (stack/nexus),
шаги создания первого арендатора/оператора — docs/OPERATIONS.md.
Реальные источники истины для API и каталога¶
Список API в README не является полным контрактом. Источники, проверяемые вместе с кодом:
- Snapshot маршрутов платформы:
backend/pkg/host/testdata/routes.txt - Snapshot публичного API Module SDK:
backend/pkg/nexus/testdata/api.txt - Base catalog:
catalog/apps.json(только API-шлюз) - SSO-контракт Module SDK:
backend/pkg/nexus/ssoclients.go - Конфигурация:
.env.example
К основным публичным endpoint относятся /health, /ready, /metrics, auth, setup,
OAuth2/OIDC, app store, device enrollment, email verification. Маршруты,
требующие сессии арендатора, маршруты control plane и маршруты модулей
защищены по отдельности.
Тесты¶
CI дополнительно выполняет race test с миграциями, проверки границ API/route,
PWA, host, отчёт translation-gap, Docker build, govulncheck, gosec и сборку
native-клиентов. Точные команды см. в .github/workflows/ci.yml,
security.yml,
native-clients.yml.
Статус языков и документации¶
Исходные строки UI есть на монгольском и английском; для арабского, китайского, французского, русского и испанского есть overlay. Недостающие overlay переключаются на английский (fallback), а CI сообщает о пробелах — перевод всех экранов на 100% не обещается.
README доступен на семи языках. Не каждый технический документ имеет семь
переводов; язык и статус каждого файла отмечены в docs/README.md.
Файлы с именами PLAN, PROPOSAL, PROMPT, WORKLOG не являются текущим
runtime-контрактом. В инструкциях по запуску их нельзя использовать как
единственный источник.
Безопасность и статус проекта¶
Уязвимости не публикуются в публичных issue; используйте порядок private
reporting из SECURITY.md.
Частный проект. Все права защищены.