Перейти к содержимому
Инструкции

Эксплуатация установки Mirket

Разберитесь в среде выполнения, изолированной для каждой организации, границе конфигурации, проверках работоспособности и требованиях к восстановлению.

Для кого
Оператор
Время чтения
11 мин
Обновлено
22 октября 2026 г.
Аналитика организации, ежедневно пересчитываемая по записанным событиям курсов, со скрытыми малыми курсами для защиты приватности студентов.

Перед началом

  • Доступ к оболочке узла установки, выгруженный неизменяемый выпуск и файл окружения установки.
  • Доступ к журналам служб, к месту хранения резервных копий и к защищённому файлу с парольной фразой.

Готово, когда

  • docker compose --env-file .env -f compose.yml ps сообщает, что ожидаемые службы работают, а те, у которых есть проверка работоспособности, исправны.
  • Проверки /health/live и /health/ready у API и сокет-сервиса отвечают успешно.
  • Самая свежая зашифрованная резервная копия прошла тренировку восстановления, входящую в репозиторий.
  • Каждый профиль необязательной службы должен соответствовать флагу приложения; модули только с флагом и включение на уровне организации проверяются отдельно.

Если что-то пошло не так

  • Не затирайте неудавшееся развёртывание или резервную копию. Сохраните журналы, точный дайджест выпуска, путь к окружению и вывод команд.
  • Восстанавливайте только из проверенного зашифрованного архива, соблюдайте принятое в вашей организации окно восстановления и следуйте её инструкции.
  • Если один необязательный сервис перестал работать, сохраните работу основного LMS и проверьте готовность, учётные данные, источник и журналы этого сервиса перед перезапуском. Никогда не копируйте токены доступа, заголовки запросов, адреса почты или сведения о детях в диагностические материалы.

Знайте границу развёртывания

  • Одна установка обслуживает одну организацию.
  • Процессы приложения, PostgreSQL, Redis и пространства имён объектного хранилища изолированы между организациями.
  • Конфигурация заказчика подключается во время выполнения, а не запекается в неизменяемые артефакты приложения.

Реагируйте на сообщение о проблеме

  1. Проверьте конфигурацию, прежде чем менять состояние

    Выполните docker compose --env-file .env -f compose.yml config --quiet, затем изучите вывод docker compose --env-file .env -f compose.yml ps и точки работоспособности live и ready у API и сокет-сервиса.

  2. Определите затронутую службу и временное окно

    Соберите приложение, роль, маршрут, отметку времени, видимое состояние восстановления и относящиеся к делу журналы служб, не запрашивая лишнего пользовательского содержимого.

  3. Пользуйтесь командами резервного копирования из репозитория

    Выполните pnpm ops:check, затем создайте согласованную зашифрованную копию командой pnpm ops:backup с явно указанными абсолютными путями к окружению, выходному файлу и файлу с парольной фразой.

  4. Докажите восстановимость

    Выполните pnpm ops:restore-drill для полученного архива с теми же явными парольной фразой и параметрами окружения. Тренировка считается завершённой только при проверенных контрольных суммах и успешных одноразовых восстановлениях PostgreSQL.

  5. Восстанавливайте обратимыми действиями

    Отдавайте предпочтение задокументированным перезапускам служб, повторным попыткам и проверенным восстановлениям. Сохраняйте свидетельства и делайте проверенную резервную копию перед обновлениями и вмешательством в схему.

Явно выбирайте необязательные модули

Модулям с отдельной службой нужны и профиль Compose, и соответствующий флаг приложения. Сертификация, академическая добросовестность и адаптеры учреждения используют закрытую конфигурацию без отдельного профиля Compose. Выполните config --quiet перед запуском и проверьте готовность каждого модуля до включения для организации.

  • Для доступа родителей используется профиль parents с PARENT_MODULE_ENABLED=true. Администратор всё равно должен выбрать «Включить портал родителей»; восстановление доступности у оператора никогда не включает эту настройку организации повторно.
  • Для чата используется профиль chat с CHAT_ENABLED=true. При сбое Matrix вход в LMS и работа вне чата должны оставаться доступными, а Chat должен показывать сведения о восстановлении.
  • Для редактирования документов используется профиль documents с ONLYOFFICE_ENABLED=true. При сбое защищённые файлы курсов и скачивание оригиналов должны оставаться доступными, а рабочая область должна предлагать «Повторить попытку».
  • Для конференций в реальном времени используется профиль live с LIVEKIT_ENABLED=true. Сбой допуска или сервиса должен блокировать доступ к конференции, не ослабляя действующие проверки учётной записи, роли, курса или занятия.
  • Сертификация использует закрытый переключатель CERTIFICATION_MODULE_ENABLED=true без профиля Compose. Администратор также должен выбрать «Включить сертификацию»; восстановление доступности оператором не включает модуль повторно.
  • Для академической добросовестности нужны ACADEMIC_INTEGRITY_ENABLED=true, явно выбранный режим поставщика и учётные данные, затем отдельное включение администратором и согласие преподавателя для задания. Режим песочницы предназначен для разработки и тестов, а не для решений в отношении клиентов.
  • Для институционального входа, списков и облачных файлов используются разные закрытые настройки поставщиков. При отключённом адаптере должны оставаться доступны локальный вход, ручное создание учётных записей и обычная загрузка файлов курса.

Продолжить с