Skip to content

Лицензия (on-premise)

On-premise стенды лицензируются файлом .lic (криптографически подписан, Ed25519). SaaS-стендов лицензирование не касается. Управление — через UI приложения (страница /license, право admin.settings) или artisan-команды.

Состояния

СтатусЧто значитПоведение стенда
validЛицензия действуетПолная функциональность; заранее появляется expiring_soon
graceСрок истёк, идёт льготный периодПолная функциональность, баннер-предупреждение — время продлить
readonlyGrace истёк / лицензия отозвана / обнаружен откат системных часовЧтение работает, все изменения данных блокируются
missingЛицензии нетНовый стенд работает полнофункционально 30 дней (runway) с первого запуска, затем readonly

Дополнительно лицензия ограничивает число пользователей (max_users): при достижении лимита новые пользователи не создаются, существующие работают как раньше.

Команды

bash
# Статус: тип, владелец, срок, лимит пользователей, дни до истечения
docker exec orbita_onpremise_backend php artisan license:status

# Установка/замена файла (применяется сразу, рестарт не нужен)
docker cp customer.lic orbita_onpremise_backend:/tmp/customer.lic
docker exec orbita_onpremise_backend php artisan license:install /tmp/customer.lic

Файл также можно загрузить через UI (страница Лицензия) — результат тот же.

Ежедневно в 06:00 планировщик запускает license:check — пересчитывает статус и рассылает административные уведомления о приближении срока.

Типовые ситуации

Стенд ушёл в readonly

  1. php artisan license:status — смотрим reason:
    • expired — грейс истёк: получить у поставщика новый .lic, установить, стенд оживает сразу;
    • revoked — лицензия отозвана: связаться с поставщиком;
    • clock_tamper — система заметила откат часов назад. Проверить NTP-синхронизацию хоста (timedatectl), вернуть корректное время, установить актуальный .lic.
  2. После установки валидного файла проверить: license:statusvalid, создание тестовой записи проходит.

Часы и NTP

Механизм защиты от подкрутки времени реагирует на откат системных часов назад. Держите NTP включённым на хосте — контейнеры наследуют его время. Разовые большие скачки времени (например, после восстановления VM из снапшота с старым временем) могут привести к ложному clock_tamper — лечится корректным временем + переустановкой .lic.

Перенос стенда на другой сервер

Лицензия хранится в БД, поэтому при восстановлении из бэкапа на новом железе приезжает вместе с данными. Если лицензия привязана к instance ID и после переноса статус изменился — запросить у поставщика перевыпуск.

Замечание о безопасности

Публичный ключ проверки подписи вшит в приложение; приватный ключ и генератор лицензий на стендах отсутствуют (отдельный закрытый репозиторий поставщика). Редактирование .lic или строк лицензии в БД приводит к невалидной подписи и readonly — «починить руками» лицензию нельзя, только валидным файлом.

Orbita ITSM — документация для системных администраторов