Bencher Autônomo


Bencher é código aberto. Está disponível como SaaS, Bencher Cloud, e como um conjunto auto-hospedável de imagens de contêiner:

Deployment

A maneira mais fácil de implantar o Bencher Self-Hosted é utilizando um tríptico de subcomandos da CLI bencher:

bencher up

Crie e inicie os contêineres Bencher Self-Hosted. Isso é semelhante a executar docker compose up.

bencher up [OPTIONS] [SERVICE]

Serviço

Selecione os contêineres para executar. As opções possíveis são: all, api e console. Por padrão, all é escolhido. Semelhante ao argumento SERVICE para docker compose up.

Opções

--detach

Execute em modo destacado. Os contêineres serão executados em segundo plano. Semelhante à flag --detach para docker compose up.

--pull <WHEN>

Puxa as imagens antes de executar. As opções possíveis são: always, missing e never. Por padrão, always é escolhido. Semelhante à opção --pull para docker compose up.

--tag <TAG>

Especifique a tag da imagem para os containers. Por padrão, a tag da imagem corresponde à versão do CLI bencher. A versão mais recente do CLI bencher é v0.4.30.

--console-port <PORT>

Especifique um número de porta para o container do servidor do Console. Por padrão, a porta 3000 é utilizada. Semelhante à forma apenas de porta da opção --expose para o docker run.

--api-port <PORT>

Especifique um número de porta para o contêiner do servidor API. Por padrão, a porta 61016 é usada. Semelhante à forma apenas de porta da opção --expose para docker run.

--console-env <KEY_VALUE>

Passe uma variável de ambiente para o contêiner do servidor Console. O formato esperado é KEY=value. Isso pode ser útil ao trabalhar com a configuração do Servidor Console. Semelhante à opção --env para docker run.

--api-env <KEY_VALUE>

Passe uma variável de ambiente para o contêiner do servidor de API. O formato esperado é KEY=value. Isso pode ser útil ao trabalhar com a configuração do Servidor de API. Semelhante à opção --env para docker run.

--console-volume <HOST_CONTAINER>

Passe um volume de montagem para o contêiner do servidor Console. O formato esperado é /host/path:/container/path. Isso pode ser útil ao trabalhar com a configuração do Servidor Console. Semelhante à opção --volume para docker run.

--api-volume <HOST_CONTAINER>

Transfira um volume de montagem para o contêiner do servidor API. O formato esperado é /host/path:/container/path. Isso pode ser útil ao trabalhar com a configuração do Servidor API. Semelhante à opção --volume para docker run.

--help

Imprimir ajuda.

bencher logs

Visualize a saída dos contêineres do Bencher Self-Hosted, se bencher up foi executado com a flag --detach. Isso é semelhante a executar docker compose logs.

bencher up [OPTIONS] [SERVICE]

Serviço

Selecione os contêineres para executar. As opções possíveis são: all, api e console. Por padrão, all é escolhido. Semelhante ao argumento SERVICE para docker compose logs.

Opções

--help

Imprimir ajuda.

bencher down

Pare e remova os contêineres do Bencher Self-Hosted, se bencher up foi executado com a flag --detach. Isso é semelhante a executar docker compose down.

bencher down [OPTIONS] [SERVICE]

Serviço

Selecione os contêineres para executar. As opções possíveis são: all, api e console. Por padrão, all é escolhido. Semelhante ao argumento SERVICE para docker compose down.

Opções

--help

Imprimir ajuda.

Alternativamente, você pode apenas usar o docker compose para orquestrar os contêineres. Este é um exemplo de arquivo 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

Para configurar o HTTPS, você pode usar o Bencher Self-Hosted atrás de um proxy com HTTPS habilitado ou utilizar um nome de domínio com um certificado SSL válido.

URL do Host

Ao usar o Bencher Self-Hosted, você precisará definir a opção --host para a URL do seu servidor API do Bencher na maioria dos subcomandos do CLI bencher.

Por exemplo, se você estivesse usando o subcomando CLI bencher run com um servidor API do Bencher em https://api.bencher.example.com você poderia escrever algo assim:

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

Backups

A forma mais fácil de fazer backup do seu servidor de API auto-hospedado do Bencher é usando o subcomando CLI bencher server backup. O usuário deve ser um administrador no servidor para usar esse subcomando.

bencher server backup

Backup do banco de dados do servidor da API.

Opções

--host <URL>

A URL do servidor de API auto-hospedado do Bencher. Por exemplo, https://api.bencher.exemplo.com.

--token <TOKEN>

Ou a opção --token ou a variável de ambiente BENCHER_API_TOKEN deve ser configurada com um token de API válido. Se ambos forem especificados, a opção --token tem precedência sobre a variável de ambiente BENCHER_API_TOKEN.

--compress

Comprime o backup do banco de dados com gzip. Esta operação é executada primeiro.

--data-store <DATA_STORE>

Salve o backup do banco de dados neste data store. Esta operação é executada em segundo lugar.

Data stores suportados:

  • aws_s3: Backup para AWS S3

Use a seção database.data_store da configuração do servidor API para configurar o data store para o seu servidor API auto-hospedado do Bencher.

--remove

Remova a cópia local do backup do banco de dados. Esta operação é executada em terceiro lugar.

Recuperação de Desastres

Para evitar a perda de dados entre os backups, o Bencher oferece uma solução de recuperação de desastres integrada. Esta funcionalidade requer uma licença ativa do Bencher Plus.

Esquemas de replicação suportados:

  • file: Replicar para um caminho de arquivo local
  • sftp: Replicar via SFTP
  • s3: Replicar para qualquer armazenamento de blob compatível com S3
  • abs: Replicar para o Azure Blob Storage
  • gcs: Replicar para o Google Cloud Storage

Use a seção plus.disaster_recovery da configuração do servidor API para configurar a recuperação de desastres para o seu servidor API Bencher Self-Hosted.

🤖 Este documento foi gerado automaticamente pelo OpenAI GPT-4. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.


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