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:
- Servidor Bencher Console
- Servidor Bencher API
Implantação
A maneira mais fácil de implantar o Bencher Self-Hosted é usando um tríptico de subcomandos do CLI bencher
:
bencher up
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
econsole
. Por padrão,all
é escolhido. Semelhante ao argumentoSERVICE
paradocker compose up
.Opções
--detach
Execute em modo destacado. Os contêineres serão executados em segundo plano. Semelhante à flag
--detach
paradocker compose up
.--pull <WHEN>
Puxa as imagens antes de executar. As opções possíveis são:
always
,missing
enever
. Por padrão,always
é escolhido. Semelhante à opção--pull
paradocker 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 CLIbencher
év0.4.36
.--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 odocker 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
paradocker 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
paradocker 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
paradocker 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
paradocker 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
paradocker run
.--help
Imprimir ajuda.
bencher logs
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 executardocker compose logs
.bencher up [OPTIONS] [SERVICE]Serviço
Selecione os contêineres para executar. As opções possíveis são:
all
,api
econsole
. Por padrão,all
é escolhido. Semelhante ao argumentoSERVICE
paradocker compose logs
.Opções
--help
Imprimir ajuda.
bencher down
bencher down
Pare e remova os contêineres do Bencher Self-Hosted, se
bencher up
foi executado com a flag--detach
. Isso é semelhante a executardocker compose down
.bencher down [OPTIONS] [SERVICE]Serviço
Selecione os contêineres para executar. As opções possíveis são:
all
,api
econsole
. Por padrão,all
é escolhido. Semelhante ao argumentoSERVICE
paradocker compose down
.Opções
--help
Imprimir ajuda.
Consulte a referência do Bencher Compose para mais detalhes.
Alternativamente, você pode usar docker compose
para orquestrar os containers.
docker-compose.yml
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
Consulte o exemplo de referência do Docker Compose para mais detalhes.
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:
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
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 localsftp
: Replicar via SFTPs3
: Replicar para qualquer armazenamento de blob compatível com S3abs
: Replicar para o Azure Blob Storagegcs
: 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.