Narvelium Starter

Платформа на своём сервере: обучение, знания и допуск сотрудников

Starter рассчитан на одну организацию, одну активную установку и до 5 активных пользователей на 12 месяцев. Лицензия построена на подписи Ed25519: установка получает постоянный идентификатор и подписанный объём прав, продление приходит от установки (Starter) или после оплаты периода.

Версия 1.0.1

Точная версия вместо плавающего образа

Выпуск фиксируется по версии, коммиту и контрольной сумме SHA-256: вы ставите ровно тот код, который прошёл приёмку на чистом сервере. Ничего не докачивается из веток и не подменяется плавающим тегом.

Self-hostedEd25519 v2До 5 пользователей12 месяцев1 организация / 1 установкаLinux x86_64
Скачать дистрибутив 1.0.1Инструкция по установкеМодель лицензирования
Целостность. Архив 2,9 МБ (367 файлов) собирается из коммита b3d882d и сопровождается контрольной суммой. Проверьте перед установкой: sha256sum -c narvelium-1.0.1.tar.gz.sha256 — сумма 96374af7…da1d95d, файл narvelium-1.0.1.tar.gz.sha256.
Выпуск проверен на чистом сервере: контрольные суммы, установка, мастер первичной настройки, вход администратора, каталог курсов, пробная лицензия и проверка после установки (scripts/smoke_check.sh).
Starter

Реальные ограничения уже enforce'ятся сервером

Лимиты и доступ к модулям не являются только UI-настройкой: v2 license payload участвует в backend policy.

5

До 5 активных пользователей

Seat limit защищён на уровне PostgreSQL и распространяется на provisioning через email, AD, OIDC, admin/import и конкурентные запросы.

1

Одна installation identity

V2 использует persistent installation_id, а не Docker MAC как основную identity.

✓

Подписанные entitlements

Доступ к платным/дополнительным модулям проверяется как profile ∩ license entitlements ∩ user scopes.

1. Установка

  1. Скачать narvelium-1.0.1.tar.gz и narvelium-1.0.1.tar.gz.sha256.
  2. Проверить целостность: sha256sum -c narvelium-1.0.1.tar.gz.sha256.
  3. Распаковать и выполнить sudo ./install.sh: установщик создаёт локальные секреты (.env, права 0600), применяет миграции, поднимает сервисы и печатает адрес портала. Он ставит ровно тот код, что лежит в архиве, и ничего не докачивает из веток.
  4. Пройти мастер первичной настройки и ввести лицензионный ключ (Starter — до 5 активных пользователей, бесплатно; пробная лицензия на 30 дней действует без ключа).
  5. Проверить установку: ./scripts/smoke_check.sh — готовность, портал, каталог, состояние лицензии.
  6. Подготовить Linux-сервер с Docker Compose v2.
  7. Использовать APP_ENVIRONMENT=production, DEV_MODE=false, fail-closed auth defaults.
  8. Для публичной v2-модели установить LICENSE_V1_HMAC_ENABLED=false и настроить LICENSE_V2_PUBLIC_KEY_PATH.
  9. Настроить внешний TLS; приложение доступно на same-origin /lms/.

2. Авторизация

Email OTP, AD/LDAPS, OIDC/Keycloak и demo включаются только явной конфигурацией. Simple-login запрещён в staging/production. LDAPS/SMTP/OIDC/1С используют проверку TLS и customer CA через read-only trust mount.

3. License v2

Текущий canonical runtime проверяет Ed25519-подписанные nv2.* ключи публичным ключом, привязывает их к installation_id, применяет max_users и подписанные entitlements. HMAC v1 сохранён только как отключаемый migration compatibility layer.

4. Что уже реализовано в canonical ветке

  • Ed25519 v2 и downgrade-disable для HMAC v1;
  • persistent installation identity;
  • seat enforcement;
  • module entitlement middleware;
  • granular RBAC и row-level visibility;
  • Alembic-owned schema + /healthz//readyz;
  • durable rate limiting;
  • OIDC/Keycloak, Bitrix24 и read-only 1С/OData adapters;
  • signed plugin launch tokens;
  • browser/contract/security gates в canonical CI;
  • resilient instance backup helper.

5. Что ещё блокирует обычный public release

  • GitHub-hosted Actions должны реально выделить runner и исполнить canonical gates;
  • production должен быть cutover на SHA из narvelium-lms, а не legacy fb-training-lms/deploy/narvelium-v3;
  • branch protection/history purge/secret rotation из security issue #2;
  • 1С live E2E после корректного лицензирования тестового стенда;
  • полностью автоматизированный renewal/rehost и мгновенная online revocation policy;
  • проверенный restore drill для конкретного production контура.

Поэтому редакция Starter выдаётся сразу, а коммерческие редакции подключаются по договору — без ожидания доработок ядра.