Bencher Autohébergé


Bencher est open source. Il est disponible en tant que SaaS, Bencher Cloud, et comme un ensemble d’images de conteneurs auto-hébergeables :

Déploiement

Le moyen le plus simple de déployer Bencher Self-Hosted est d’utiliser un triptyque de sous-commandes CLI bencher :

bencher up

Créer et démarrer les conteneurs Bencher en auto-hébergement. Ceci est similaire à l’exécution de docker compose up.

bencher up [OPTIONS] [SERVICE]

Service

Sélectionnez les conteneurs à exécuter. Les choix possibles sont : all, api, et console. Par défaut, all est choisi. Semblable à l’argument SERVICE pour docker compose up.

Options

--detach

Exécuter en mode détaché. Les conteneurs seront exécutés en arrière-plan. Similaire au drapeau --detach pour docker compose up.

--pull <WHEN>

Tirez les images avant de les exécuter. Les choix possibles sont : always, missing, et never. Par défaut, always est choisi. Semblable à l’option --pull pour docker compose up.

--tag <TAG>

Spécifiez le tag de l’image pour les conteneurs. Par défaut, le tag de l’image correspond à la version du CLI bencher. La version la plus récente du CLI bencher est v0.4.27.

--console-port <PORT>

Spécifiez un numéro de port pour le conteneur du serveur Console. Par défaut, le port 3000 est utilisé. Semblable à la forme uniquement port de l’option --expose pour docker run.

--api-port <PORT>

Spécifiez un numéro de port pour le conteneur du serveur API. Par défaut, le port 61016 est utilisé. Similaire à la forme de port uniquement de l’option --expose pour docker run.

--console-env <KEY_VALUE>

Passez une variable d’environnement au conteneur du serveur Console. Le format attendu est KEY=value. Cela peut être utile lors de la configuration du serveur Console. Similaire à l’option --env pour docker run.

--api-env <KEY_VALUE>

Passez une variable d’environnement au conteneur du serveur API. Le format attendu est KEY=value. Cela peut être utile lors de l’utilisation de la configuration du serveur API. Similaire à l’option --env pour docker run.

--console-volume <HOST_CONTAINER>

Passez un volume de montage au conteneur du serveur Console. Le format attendu est /host/path:/container/path. Cela peut être utile lors du travail avec la configuration du serveur Console. Similaire à l’option --volume pour docker run.

--api-volume <HOST_CONTAINER>

Passez un volume de montage au conteneur du serveur API. Le format attendu est /host/path:/container/path. Cela peut être utile lors de l’utilisation de la configuration du serveur API. Similaire à l’option --volume pour docker run.

--help

Imprimer l’aide.

bencher logs

Afficher la sortie des conteneurs Bencher en auto-hébergement, si bencher up a été exécuté avec le drapeau --detach. Ceci est similaire à l’exécution de docker compose logs.

bencher up [OPTIONS] [SERVICE]

Service

Sélectionnez les conteneurs à exécuter. Les choix possibles sont : all, api et console. Par défaut, all est choisi. Similaire à l’argument SERVICE pour docker compose logs.

Options

--help

Imprimer l’aide.

bencher down

Arrêter et supprimer les conteneurs Bencher Self-Hosted, si bencher up a été exécuté avec l’option --detach. Ceci est similaire à l’exécution de docker compose down.

bencher down [OPTIONS] [SERVICE]

Service

Sélectionnez les conteneurs à exécuter. Les choix possibles sont : all, api, et console. Par défaut, all est choisi. Similaire à l’argument SERVICE pour docker compose down.

Options

--help

Imprimer l’aide.

Alternativement, vous pouvez simplement utiliser docker compose pour orchestrer les conteneurs. Voici un exemple de fichier 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

Pour configurer HTTPS, vous pouvez utiliser Bencher Self-Hosted derrière un proxy avec HTTPS activé ou utiliser un nom de domaine avec un certificat SSL valide.

URL de l’hôte

Lorsque vous utilisez Bencher en auto-hébergement, vous devrez définir l’option --host à l’URL de votre serveur API Bencher pour la plupart des sous-commandes CLI bencher.

Par exemple, si vous utilisiez la sous-commande CLI bencher run avec un serveur API Bencher à https://api.bencher.example.com alors vous pourriez écrire quelque chose comme ceci :

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

Sauvegardes

Le moyen le plus simple de sauvegarder votre serveur API Bencher Self-Hosted est d’utiliser la sous-commande CLI bencher server backup. L’utilisateur doit être un administrateur sur le serveur pour utiliser cette sous-commande.

bencher server backup

Sauvegarder la base de données du serveur API.

Options

--host <URL>

L’URL du serveur API auto-hébergé de Bencher. Par exemple, https://api.bencher.example.com.

--token <TOKEN>

Soit l’option --token, soit la variable d’environnement BENCHER_API_TOKEN doit être définie avec un jeton API valide. Si les deux sont spécifiés, l’option --token prévaut sur la variable d’environnement BENCHER_API_TOKEN.

--compress

Comprimez la sauvegarde de la base de données avec gzip. Cette opération s’exécute en premier.

--data-store <DATA_STORE>

Enregistrez la sauvegarde de la base de données dans ce stockage de données. Cette opération s’exécute en second.

Stockages de données pris en charge:

  • aws_s3: Sauvegarde sur AWS S3

Utilisez la section database.data_store de la configuration du serveur API pour configurer le stockage de données pour votre serveur API Bencher auto-hébergé.

--remove

Supprimez la copie locale de la sauvegarde de la base de données. Cette opération s’exécute en troisième.

Récupération après sinistre

Afin de prévenir la perte de données entre les sauvegardes, Bencher propose une solution intégrée de récupération après sinistre. Cette fonctionnalité nécessite une licence Bencher Plus active.

Schémas de réplication pris en charge :

  • file: Répliquer vers un chemin de fichier local
  • sftp: Répliquer via SFTP
  • s3: Répliquer vers tout stockage d’objets compatible S3
  • abs: Répliquer vers Azure Blob Storage
  • gcs: Répliquer vers Google Cloud Storage

Utilisez la section plus.disaster_recovery de la configuration du serveur API pour configurer la récupération après sinistre de votre serveur API Bencher Self-Hosted.

🤖 Ce document a été automatiquement généré par OpenAI GPT-4. Il peut ne pas être précis et peut contenir des erreurs. Si vous trouvez des erreurs, veuillez ouvrir une issue sur GitHub.


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