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 upbencher upCrea 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,apiyconsole. Por defecto se eligeall. Similar al argumentoSERVICEparadocker compose up.Opciones
--detachEjecutar en modo separado. Los contenedores se ejecutarán en segundo plano. Similar a la opción
--detachparadocker compose up.--pull <WHEN>Extraer imágenes antes de ejecutar. Las opciones posibles son:
always,missingynever. Por defecto, se eligealways. Similar a la opción--pullparadocker 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 debencheresv0.5.4.--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--exposeparadocker 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--exposeparadocker 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--envparadocker 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--envparadocker 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--volumeparadocker 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--volumeparadocker run.--helpImprimir ayuda.
bencher logsbencher logsVea la salida de los contenedores autoalojados de Bencher, si
bencher upse 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,apiyconsole. Por defecto, se eligeall. Similar al argumentoSERVICEparadocker compose logs.Opciones
--helpImprimir ayuda.
bencher downbencher downDetener y eliminar los contenedores de Bencher Self-Hosted, si
bencher upse 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,apiyconsole. Por defecto se eligeall. Similar al argumentoSERVICEparadocker compose down.Opciones
--helpImprimir 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_composeVea el ejemplo de referencia de Docker Compose para más detalles.
URL del Servidor API
Al usar Bencher Autoalojado, necesitarás configurar la opción --host a la URL de tu servidor API de Bencher para la mayoría de los subcomandos del CLI bencher.
Por ejemplo, si estuvieras usando el subcomando del 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 project-abc4567-wxyz123456789 \--branch main \--testbed ci-runner \--adapter json \bencher mockSi estás ejecutando el servidor de la Consola de Bencher en un host diferente al servidor API de Bencher, también necesitarás configurar la variable de entorno BENCHER_API_URL en el servidor de la Consola de Bencher a la URL remota de tu servidor API de Bencher.
Por ejemplo, si estás usando el subcomando del CLI bencher up para iniciar el servidor de la Consola de Bencher con un servidor API de Bencher ejecutándose en https://api.bencher.example.com entonces necesitarás configurar la opción --console-env a la URL remota así:
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com consoleHTTPS
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.
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.