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 upbencher upCrie 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,apieconsole. Por padrão,allé escolhido. Semelhante ao argumentoSERVICEparadocker compose up.Opções
--detachExecute em modo destacado. Os contêineres serão executados em segundo plano. Semelhante à flag
--detachparadocker compose up.--pull <WHEN>Puxa as imagens antes de executar. As opções possíveis são:
always,missingenever. Por padrão,alwaysé escolhido. Semelhante à opção--pullparadocker 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.5.6.--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--exposepara 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--exposeparadocker 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--envparadocker 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--envparadocker 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--volumeparadocker 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--volumeparadocker run.--helpImprimir ajuda.
bencher logsbencher logsVisualize a saída dos contêineres do Bencher Self-Hosted, se
bencher upfoi 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,apieconsole. Por padrão,allé escolhido. Semelhante ao argumentoSERVICEparadocker compose logs.Opções
--helpImprimir ajuda.
bencher downbencher downPare e remova os contêineres do Bencher Self-Hosted, se
bencher upfoi 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,apieconsole. Por padrão,allé escolhido. Semelhante ao argumentoSERVICEparadocker compose down.Opções
--helpImprimir 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_composeConsulte o exemplo de referência do Docker Compose para mais detalhes.
URL do Servidor API
Ao usar o Bencher Self-Hosted, você precisará configurar a opção --host para o URL do seu servidor API Bencher na maioria dos subcomandos do CLI bencher.
Por exemplo, se você estivesse usando o subcomando CLI bencher run com um servidor API Bencher em https://api.bencher.example.com, você poderia escrever algo assim:
bencher run \--host https://api.bencher.example.com \--project project-abc4567-wxyz123456789 \--branch main \--testbed ci-runner \--adapter json \bencher mockSe você estiver executando o servidor Bencher Console em um host diferente do servidor API Bencher, você também precisará configurar a variável de ambiente BENCHER_API_URL no servidor Bencher Console para o URL remoto do seu servidor API Bencher.
Por exemplo, se você estiver usando o subcomando CLI bencher up para iniciar o servidor Bencher Console com um servidor API Bencher rodando em https://api.bencher.example.com, então você precisará configurar a opção --console-env para o URL remoto assim:
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com consoleHTTPS
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.
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.