Bencher Self-Hosted


Bencher — это проект с открытым исходным кодом. Он доступен как SaaS, Bencher Cloud, а также как набор контейнерных образов для самостоятельного размещения:

Развертывание

Самый простой способ развернуть Bencher Self-Hosted — использовать триптих подкоманд CLI bencher:

bencher up

Создание и запуск контейнеров Bencher с самостоятелной хостингом. Это похоже на выполнение команды docker compose up.

bencher up [OPTIONS] [SERVICE]

Сервис

Выберите контейнеры для запуска. Возможные варианты: 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.27.

--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.

bencher up [OPTIONS] [SERVICE]

Сервис

Выберите контейнеры для запуска. Возможные варианты: all, api и console. По умолчанию выбрано all. Похоже на аргумент SERVICE для docker compose logs.

Опции

--help

Выводит справку.

bencher down

Остановите и удалите контейнеры Bencher Self-Hosted, если bencher up был выполнен с флагом --detach. Это похоже на выполнение команды docker compose down.

bencher down [OPTIONS] [SERVICE]

Сервис

Выберите контейнеры для запуска. Возможные варианты: all, api и console. По умолчанию выбран all. Аналогично аргументу SERVICE для docker compose down.

Опции

--help

Выводит справку.

В качестве альтернативы, вы можете использовать docker compose для оркестрации контейнеров. Это пример файла docker-compose.yml:

version: "3.9"
services:
bencher_api_compose:
image: ghcr.io/bencherdev/bencher-api:latest
container_name: bencher_api
ports:
- 61016:61016
volumes:
# Mount the configuration directory
- "./services/api/etc:/etc/bencher"
# Mount the database directory
- "./services/api/data:/var/lib/bencher/data"
# environment:
# Set configuration string or file path
# - BENCHER_CONFIG=
# - BENCHER_CONFIG_PATH=
bencher_console_compose:
image: ghcr.io/bencherdev/bencher-console:latest
container_name: bencher_console
ports:
- 3000:3000
environment:
# Set the API URL to the localhost IPv4 address
- BENCHER_API_URL=http://127.0.0.1:61016
# This is needed for Docker-to-Docker communication when using a local `BENCHER_API_URL`
# Do not set this when using a remote `BENCHER_API_URL`, such as https://bencher.example.com
- INTERNAL_API_URL=http://host.docker.internal:61016
depends_on:
- bencher_api_compose

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, то вы можете написать что-то вроде этого:

Terminal window
bencher run \
--host https://api.bencher.example.com \
--project save-walter-white-1234abcd \
--branch main \
--testbed ci-runner \
--adapter json \
bencher mock

Резервные копии

Самый простой способ создать резервную копию вашего локального 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: Репликация через SFTP
  • s3: Репликация в любое совместимое с S3 хранилище блобов
  • abs: Репликация в Azure Blob Storage
  • gcs: Репликация в Google Cloud Storage

Используйте раздел plus.disaster_recovery конфигурации API-сервера, чтобы настроить восстановление после сбоя для вашего самостоятельно хостируемого API-сервера Bencher.

🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Mon, October 14, 2024 at 6:20:00 AM UTC | Last Updated: Sat, October 19, 2024 at 7:30:00 PM UTC