Bencher Self-Hosted
Bencher — это проект с открытым исходным кодом. Он доступен как SaaS, Bencher Cloud, а также как набор контейнерных образов для самостоятельного размещения:
- Сервер консоли Bencher
- API-сервер Bencher
Развертывание
Самый простой способ развернуть Bencher Self-Hosted — использовать триптих подкоманд CLI bencher
:
bencher up
: Запустить контейнеры Bencher Self-Hosted. Это похоже на выполнение командыdocker compose up
.bencher logs
: Просмотр вывода из контейнеров Bencher Self-Hosted, еслиbencher up
был выполнен с флагом--detach
. Это похоже на выполнение командыdocker compose logs
.bencher down
: Остановить и удалить контейнеры Bencher Self-Hosted, еслиbencher up
был выполнен с флагом--detach
. Это похоже на выполнение командыdocker compose down
.
bencher up
Создание и запуск контейнеров Bencher с самостоятелной хостингом.
Это похоже на выполнение команды docker compose up
.
Сервис
Выберите контейнеры для запуска.
Возможные варианты: all
, api
и console
.
По умолчанию выбирается all
.
Аналогично аргументу SERVICE
для docker compose up
.
Опции
--detach
Запуск в отсоединённом режиме. Контейнеры будут запущены в фоновом режиме. Похоже на флаг --detach
для docker compose up
.
--pull <WHEN>
Загрузка образов перед запуском. Возможные варианты: always
, missing
и never
. По умолчанию выбран вариант always
. Аналогично опции --pull
для docker compose up
.
--tag <TAG>
Укажите тег образа для контейнеров.
По умолчанию тег образа соответствует версии CLI bencher
.
Самая последняя версия CLI bencher
— это v0.4.30
.
--console-port <PORT>
Укажите номер порта для контейнера Console сервера.
По умолчанию используется порт 3000
.
Аналогично форме только с портом для опции --expose
для docker run
.
--api-port <PORT>
Укажите номер порта для контейнера API-сервера.
По умолчанию используется порт 61016
.
Аналогично форме только с портом для параметра --expose
в docker run
.
--console-env <KEY_VALUE>
Передайте переменную окружения в контейнер сервера Console.
Ожидаемый формат — KEY=value
.
Это может быть полезно при работе с конфигурацией сервера Console.
Аналогично опции --env
для docker run
.
--api-env <KEY_VALUE>
Передайте переменную окружения в контейнер сервера API.
Ожидаемый формат - KEY=value
.
Это может быть полезно при работе с конфигурацией API сервера.
Аналогично опции --env
для docker run
.
--console-volume <HOST_CONTAINER>
Передайте том монтирования в контейнер сервера Console.
Ожидаемый формат - /host/path:/container/path
.
Это может быть полезно при работе с конфигурацией сервера Console.
Аналогично опции --volume
для docker run
.
--api-volume <HOST_CONTAINER>
Передайте том для монтирования в контейнер сервера API.
Ожидаемый формат: /host/path:/container/path
.
Это может быть полезно при работе с конфигурацией сервера API.
Аналогично опции --volume
для docker run
.
--help
Выводит справку.
bencher logs
Просмотр вывода из контейнеров Bencher в автономном режиме,
если bencher up
был выполнен с флагом --detach
.
Это похоже на выполнение команды docker compose logs
.
Сервис
Выберите контейнеры для запуска.
Возможные варианты: all
, api
и console
.
По умолчанию выбрано all
.
Похоже на аргумент SERVICE
для docker compose logs
.
Опции
--help
Выводит справку.
bencher down
Остановите и удалите контейнеры Bencher Self-Hosted,
если bencher up
был выполнен с флагом --detach
.
Это похоже на выполнение команды docker compose down
.
Сервис
Выберите контейнеры для запуска. Возможные варианты: all
, api
и console
. По умолчанию выбран all
. Аналогично аргументу SERVICE
для docker compose down
.
Опции
--help
Выводит справку.
В качестве альтернативы, вы можете использовать docker compose
для оркестрации контейнеров.
Это пример файла docker-compose.yml
:
HTTPS
Для настройки HTTPS можно использовать Bencher Self-Hosted за прокси с включенным HTTPS или использовать доменное имя с действительным SSL-сертификатом.
Host URL
При использовании Bencher Self-Hosted вам нужно будет установить опцию --host
на URL вашего API сервера Bencher для большинства подкоманд CLI bencher
.
Например, если вы используете подкоманду CLI bencher run
с API сервером Bencher по адресу https://api.bencher.example.com
, то вы можете написать что-то вроде этого:
Резервные копии
Самый простой способ создать резервную копию вашего локального API-сервера Bencher - использовать
подкоманду CLI bencher server backup
.
Пользователь должен быть администратором на сервере, чтобы использовать эту подкоманду.
bencher server backup
Резервное копирование базы данных сервера API.
Опции
--host <URL>
URL API-сервера Bencher Self-Hosted.
Например, https://api.bencher.example.com
.
--token <TOKEN>
Либо параметр --token
, либо переменная окружения BENCHER_API_TOKEN
должны быть установлены на действительный API токен. Если оба параметра указаны, опция --token
имеет приоритет над переменной окружения BENCHER_API_TOKEN
.
--compress
Сожмите резервную копию базы данных с помощью gzip
.
Эта операция выполняется первой.
--data-store <DATA_STORE>
Сохраните резервную копию базы данных в этом хранилище данных. Эта операция выполняется второй.
Поддерживаемые хранилища данных:
aws_s3
: Резервное копирование в AWS S3
Используйте раздел database.data_store
конфигурации серверного API,
чтобы настроить хранилище данных для вашего самоустановочного API-сервера Bencher.
--remove
Удалить локальную копию резервной копии базы данных. Эта операция выполняется третьей.
Восстановление после сбоя
Чтобы предотвратить потерю данных между резервными копиями, Bencher предлагает встроенное решение для восстановления после сбоя. Эта функция требует активной лицензии Bencher Plus.
Поддерживаемые схемы репликации:
file
: Репликация в локальный путь к файлуsftp
: Репликация через SFTPs3
: Репликация в любое совместимое с S3 хранилище блобовabs
: Репликация в Azure Blob Storagegcs
: Репликация в Google Cloud Storage
Используйте раздел plus.disaster_recovery
конфигурации API-сервера, чтобы настроить восстановление после сбоя для вашего самостоятельно хостируемого API-сервера Bencher.