Skip to content

Конфигурация


Вы узнаете:

  • Как настраивать Hakutest через конфигурационный файл
  • Как настраивать Hakutest через флаги командной строки

Обзор

Несмотря на то, что Hakutest можно настроить через веб-интерфейс (Настройки), он также предоставляет несколько методов для изменения настроек программным путем. Это может быть полезно для автоматизации задач, интеграции с другими системами или управления несколькими экземплярами Hakutest.

Конфигурационный файл

Настройки Hakutest хранятся в конфигурационном YAML-файле config.yaml. Его расположение зависит от используемой вами операционной системы:

Linux

Конфигурационный файл находится в $XDG_CONFIG_HOME/hakutest.

По умолчанию (если переменная окружения $XDG_CONFIG_HOME не задана), этот путь имеет значение $HOME/.config/hakutest, как описано в Спецификации XDG Base Directory.

Windows

Файл конфигурации находится по одному из следующих путей:

  • %USERPROFILE%/hakutest
  • %AppData%/hakutest
  • %LocalAppData%/hakutest

Поля конфигурационного файла

ПолеОписаниеЗначение
general.debugЗапускать Hakutest в режиме отладкиtrue или false
general.disable_trayЗапускать Hakutest без значка в системном лотке (трее)true или false
general.langЯзык интерфейса HakutestЛюбой из поддерживаемых языков
general.portПорт, на котором запускается сервер HakutestЦелое число между 1024 и 65535
result.overwriteПерезаписывать ли результат проверки после повторной отправки ответов ученикомtrue или false
result.showПоказывать ли ученику его результат сразу после отправкиtrue или false
result.pathДиректория, в которой Hakutest хранит ответы учениковПуть к существующей директории
test.pathДиректория, в которой Hakutest хранит ваши тестыПуть к существующей директории
security.studentПолитика безопасности, применяемая к интерфейсу ученикаno_verificationДля всех без верификации.

credentialsПо имени пользователя и паролю.

hostonlyТолько это устройство
security.teacherПолитика безопасности, применяемая к интерфейсу учителяno_verificationДля всех без верификации.

credentialsПо имени пользователя и паролю.

hostonlyТолько это устройство
security.dialectДиалект базы данных, в которой хранится информация о пользователяхsqlite, mysql или postgres
security.dsnDSN (Data Source Name) базы данных, в которой хранится информация о пользователяхДля диалекта sqlite — путь до файла базы данных.

Для диалектов mysql и postgres — строка подключения.

ВАЖНО

Если каких-либо полей нет в конфигурационном файле (а также если нет самого файла), по умолчанию используются следующие значения:

yaml
general:
    debug: false
    disable_tray: false
    port: 8080
    lang: en
result:
    overwrite: true
    path: $XDG_DATA_HOME/hakutest/results
    show: false
test:
    path: $XDG_DATA_HOME/hakutest/tests
security:
    dsn: $XDG_CACHE_HOME/hakutest/users.db
    dialect: sqlite
    teacher: hostonly
    student: no_verification

Также обратите внимание, что пути зависят от используемой вами операционной системы.

Пример

Ниже приведён пример конфигурационного файла:

yaml
general:
    debug: false
    disable_tray: false
    port: 8080
    lang: ru
result:
    overwrite: true
    path: /home/user/.local/share/hakutest/results
    show: false
test:
    path: /home/user/.local/share/hakutest/tests
security:
    dsn: /home/user/.cache/hakutest/users.db
    dialect: sqlite
    teacher: hostonly
    student: no_verification

СОВЕТ

На Linux, отправка Hakutest'у сигнала SIGUSR1 заставляет его перезагрузить конфигурацию из файла:

shell
pkill -USR1 hakutest

Флаги командной строки

Вы также можете изменить настройки Hakutest с помощью флагов командной строки. Флаги полностью совпадают с полями конфигурационного файла, см. выше.

Ниже приведено несколько примеров переопределения конфигурации с помощью флагов командной строки:

shell
# Переопределить язык
hakutest --general.lang ru

# Переопределить порт
hakutest --general.port 3000

# Переопределить политику безопасности для ученика
hakutest --security.student credentials

# Несколько переопределений
hakutest --general.debug --results.overwrite --general.port 5000

Hakutest распространяется под лицензией MIT.