Установка Enterprise версии

Запуск Meridian Enterprise из Docker-образа, подключение лицензии и проверка корректного старта.

Enterprise

Образ

Enterprise-сборка публикуется отдельно от Community и доступна по адресу:

ghcr.io/neria-cloud/meridian-ent:latest

Используйте тег latest для последнего стабильного релиза или конкретную версию вида v1.2.3 для production. Образ структурно идентичен Community-сборке, но содержит закрытые модули (кластеризация, шардирование, расширенная аутентификация и т.д.), которые активируются по лицензии.

Минимальный запуск:

docker pull ghcr.io/neria-cloud/meridian-ent:latest

docker run -p 8080:8080 \
  -v meridian-data:/app/data \
  -v $(pwd)/meridian.lic.txt:/opt/neria/meridian.lic.txt:ro \
  ghcr.io/neria-cloud/meridian-ent:latest

Без действующей лицензионного ключа контейнер сразу завершит работу с кодом 78.


Подключение лицензии

Лицензионный ключ — это короткий текст. Контейнер ищет лицензию в трёх местах в следующем порядке:

  1. Переменная окружения MERIDIAN_LICENSE_STR — содержимое ключа передаётся напрямую. Удобно для Kubernetes Secret и аналогичных систем, в которых секреты приходят как переменные окружения.
  2. **Файл MERIDIAN_LICENSE_FILE - путь к файлу с ключем, по умолчанию - /opt/neria/meridian.lic.txt. Если смонтировать файл по этому пути, никакие переменные окружения задавать не нужно. Это рекомендуемый способ для большинства развёртываний.
  3. HTTPS-адрес в переменной MERIDIAN_LICENSE_URL — контейнер скачает лицензию при старте. Поддерживается только HTTPS, таймаут 10 секунд. Подходит для централизованной выдачи лицензий собственным сервисом.

Достаточно одного из трёх способов; следующий используется, только если предыдущий не задан.

Жизненный цикл

  • Истечение во время работы не останавливает контейнер. Раз в час в журнал пишется предупреждение, в API-эндпоинте GET /api/edition поле expired становится true, в веб-интерфейсе появляется баннер.
  • Замена лицензии требует перезапуска контейнера. Обновление без перезапуска не поддерживается.
  • Невалидная или просроченная на старте лицензия всегда приводит к завершению с кодом 78. Автоматического перехода в Community-режим не происходит — это сделано осознанно, чтобы не маскировать проблему.

Проверка запуска

При корректной конфигурации контейнер выводит на старте две строки, фиксирующие активную редакцию:

Meridian — Enterprise build · license: Enterprise · customer: "Acme Co" · expires: 2027-01-01T00:00:00Z

level=info edition binary=enterprise license_edition=enterprise customer="Acme Co" expires_at=2027-01-01T00:00:00Z

Первая строка — человекочитаемый баннер. Вторая — структурированная запись для систем сбора логов; на неё удобно ставить мониторинг и алерты.

Поля баннера:

  • licensePro или Enterprise. Pro-лицензия не активирует кластеризацию и шардирование; это нормальное поведение, не ошибка.
  • customer — название компании из лицензии.
  • expires — дата истечения в UTC.

После баннера идёт обычная инициализация сервера и запуск HTTP-слушателя на порту 8080.

Признаки проблем

Что в журналеЧто значитЧто делать
license_load failed: … и выход с кодом 78Лицензия не найдена или не прошла проверкуПроверьте путь к файлу, переменные окружения и срок действия лицензии
Баннер показывает license: Pro, хотя ожидалась EnterpriseПодключена не та лицензияЗапросите Enterprise-лицензию у поддержки сервиса
Раз в час повторяется license_expiredЛицензия истекла после стартаЗапросите новую, примените ее и перезапустите контейнер

Дальнейшие шаги

Содержание