Bencher Autoalojado
Bencher es código abierto. Está disponible como un SaaS, Bencher Cloud, y como un conjunto de imágenes de contenedor autoalojables:
- Servidor de Consola de Bencher
- Servidor API de Bencher
Despliegue
La forma más sencilla de desplegar Bencher Self-Hosted es utilizando un tríptico de subcomandos del CLI bencher
:
bencher up
bencher up
Crea e inicia los contenedores autoalojados de Bencher. Esto es similar a ejecutar
docker compose up
.bencher up [OPTIONS] [SERVICE]Servicio
Seleccione los contenedores para ejecutar. Las opciones posibles son:
all
,api
yconsole
. Por defecto se eligeall
. Similar al argumentoSERVICE
paradocker compose up
.Opciones
--detach
Ejecutar en modo separado. Los contenedores se ejecutarán en segundo plano. Similar a la opción
--detach
paradocker compose up
.--pull <WHEN>
Extraer imágenes antes de ejecutar. Las opciones posibles son:
always
,missing
ynever
. Por defecto, se eligealways
. Similar a la opción--pull
paradocker compose up
.--tag <TAG>
Especifica la etiqueta de imagen para los contenedores. Por defecto, la etiqueta de imagen coincide con la versión de la CLI de
bencher
. La versión más reciente de la CLI debencher
esv0.4.36
.--console-port <PORT>
Especifica un número de puerto para el contenedor del servidor de la Consola. Por defecto, se utiliza el puerto
3000
. Similar a la forma solo puerto de la opción--expose
paradocker run
.--api-port <PORT>
Especifica un número de puerto para el contenedor del servidor API. Por defecto, se utiliza el puerto
61016
. Similar a la forma solo de puerto de la opción--expose
paradocker run
.--console-env <KEY_VALUE>
Pasa una variable de entorno al contenedor del servidor de la Consola. El formato esperado es
LLAVE=valor
. Esto puede ser útil cuando se trabaja con la configuración del Servidor de Consola. Similar a la opción--env
paradocker run
.--api-env <KEY_VALUE>
Pasa una variable de entorno al contenedor del servidor API. El formato esperado es
KEY=value
. Esto puede ser útil cuando se trabaja con la configuración del servidor API. Similar a la opción--env
paradocker run
.--console-volume <HOST_CONTAINER>
Pasa un volumen de montaje al contenedor del servidor de consola. El formato esperado es
/host/path:/container/path
. Esto puede ser útil al trabajar con la configuración del Servidor de Consola. Similar a la opción--volume
paradocker run
.--api-volume <HOST_CONTAINER>
Pasa un volumen de montaje al contenedor del servidor de la API. El formato esperado es
/host/path:/container/path
. Esto puede ser útil al trabajar con la configuración del servidor de API. Similar a la opción--volume
paradocker run
.--help
Imprimir ayuda.
bencher logs
bencher logs
Vea la salida de los contenedores autoalojados de Bencher, si
bencher up
se ejecutó con el indicador--detach
. Esto es similar a ejecutardocker compose logs
.bencher up [OPTIONS] [SERVICE]Servicio
Seleccione los contenedores a ejecutar. Las opciones posibles son:
all
,api
yconsole
. Por defecto, se eligeall
. Similar al argumentoSERVICE
paradocker compose logs
.Opciones
--help
Imprimir ayuda.
bencher down
bencher down
Detener y eliminar los contenedores de Bencher Self-Hosted, si
bencher up
se ejecutó con la opción--detach
. Esto es similar a ejecutardocker compose down
.bencher down [OPTIONS] [SERVICE]Servicio
Seleccione los contenedores para ejecutar. Las opciones posibles son:
all
,api
yconsole
. Por defecto se eligeall
. Similar al argumentoSERVICE
paradocker compose down
.Opciones
--help
Imprimir ayuda.
Vea la referencia de Bencher Compose para más detalles.
Alternativamente, puede simplemente usar docker compose
para orquestar los contenedores.
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
Vea el ejemplo de referencia de Docker Compose para más detalles.
HTTPS
Para configurar HTTPS, puede usar Bencher Self-Hosted detrás de un proxy con HTTPS habilitado o utilizar un nombre de dominio con un certificado SSL válido.
URL del Host
Cuando utilices Bencher Self-Hosted,
necesitarás establecer la opción --host
al URL de tu servidor API de Bencher
para la mayoría de los subcomandos de la CLI de bencher
.
Por ejemplo, si estuvieras usando el subcomando de la CLI bencher run
con un servidor API de Bencher en https://api.bencher.example.com
entonces podrías escribir algo como esto:
bencher run \--host https://api.bencher.example.com \--project save-walter-white-1234abcd \--branch main \--testbed ci-runner \--adapter json \bencher mock
Copias de seguridad
La manera más sencilla de hacer una copia de seguridad de tu servidor API de Bencher autoalojado es usando
el subcomando de línea de comandos bencher server backup
.
El usuario debe ser un administrador en el servidor para usar este subcomando.
bencher server backup
bencher server backup
Realiza una copia de seguridad de la base de datos del servidor API.
Opciones
--host <URL>
La URL del servidor API de Bencher Self-Hosted.
Por ejemplo, https://api.bencher.example.com
.
--token <TOKEN>
O bien la opción --token
o la variable de entorno BENCHER_API_TOKEN
debe configurarse con un token de API válido. Si se especifican ambos, la opción --token
tiene prioridad sobre la variable de entorno BENCHER_API_TOKEN
.
--compress
Comprime la copia de seguridad de la base de datos con gzip
.
Esta operación se ejecuta primero.
--data-store <DATA_STORE>
Guarde la copia de seguridad de la base de datos en este almacén de datos. Esta operación se ejecuta en segundo lugar.
Almacenes de datos compatibles:
aws_s3
: Copia de seguridad en AWS S3
Utilice la sección database.data_store
de la configuración del servidor API
para configurar el almacén de datos para su servidor API Bencher Self-Hosted.
--remove
Elimina la copia local de la copia de seguridad de la base de datos. Esta operación se ejecuta en tercer lugar.
Recuperación ante Desastres
Para prevenir la pérdida de datos entre copias de seguridad, Bencher ofrece una solución de recuperación ante desastres integrada. Esta función requiere una licencia activa de Bencher Plus.
Esquemas de replicación soportados:
file
: Replicar a una ruta de archivo localsftp
: Replicar por SFTPs3
: Replicar a cualquier almacenamiento de blobs compatible con S3abs
: Replicar a Azure Blob Storagegcs
: Replicar a Google Cloud Storage
Utilice la sección plus.disaster_recovery
de la configuración del servidor API
para configurar la recuperación ante desastres en su servidor API autogestionado de Bencher.