Bencher Selbstgehostet


Bencher ist Open Source. Es ist verfügbar als SaaS, Bencher Cloud, und als selbst hostbares Set von Container-Images:

Bereitstellung

Der einfachste Weg, Bencher Self-Hosted bereitzustellen, ist die Verwendung eines Triptychons von bencher CLI-Subkommandos:

bencher up

Erstellen und starten Sie die Bencher Self-Hosted-Container. Dies ist ähnlich wie das Ausführen von docker compose up.

bencher up [OPTIONS] [SERVICE]

Service

Wählen Sie die Container aus, die ausgeführt werden sollen. Die möglichen Optionen sind: all, api und console. Standardmäßig ist all ausgewählt. Ähnlich dem SERVICE-Argument für docker compose up.

Optionen

--detach

Im getrennten Modus ausführen. Die Container werden im Hintergrund ausgeführt. Ähnlich wie das --detach Flag für docker compose up.

--pull <WHEN>

Zieht Images, bevor sie ausgeführt werden. Die möglichen Optionen sind: always, missing und never. Standardmäßig ist always ausgewählt. Ähnlich zur --pull Option für docker compose up.

--tag <TAG>

Geben Sie das Image-Tag für die Container an. Standardmäßig entspricht das Image-Tag der bencher CLI-Version. Die neueste bencher CLI-Version ist v0.4.30.

--console-port <PORT>

Geben Sie eine Portnummer für den Console-Servercontainer an. Standardmäßig wird Port 3000 verwendet. Ähnlich wie das Port-Only-Format der Option --expose für docker run.

--api-port <PORT>

Geben Sie eine Portnummer für den API-Server-Container an. Standardmäßig wird der Port 61016 verwendet. Ähnlich zur Port-only-Form der --expose-Option für docker run.

--console-env <KEY_VALUE>

Übergebe eine Umgebungsvariable an den Console-Server-Container. Das erwartete Format ist KEY=Wert. Dies kann nützlich sein, wenn man mit der Console Server-Konfiguration arbeitet. Ähnlich wie die Option --env für docker run.

--api-env <KEY_VALUE>

Eine Umgebungsvariable an den API-Server-Container übergeben. Das erwartete Format ist SCHLÜSSEL=Wert. Dies kann nützlich sein, wenn Sie mit der API-Server-Konfiguration arbeiten. Ähnlich wie die die --env-Option für docker run.

--console-volume <HOST_CONTAINER>

Übergeben Sie ein Mount-Volume an den Console-Server-Container. Das erwartete Format ist /host/path:/container/path. Dies kann nützlich sein, wenn Sie mit der Console Server-Konfiguration arbeiten. Ähnlich zur Option --volume für docker run.

--api-volume <HOST_CONTAINER>

Ein Volume-Mount an den API-Server-Container übergeben. Das erwartete Format ist /host/path:/container/path. Dies kann nützlich sein, wenn Sie mit der API-Server-Konfiguration arbeiten. Ähnlich wie die Option --volume bei docker run.

--help

Hilfe drucken.

bencher logs

Zeigen Sie die Ausgabe von den Bencher Self-Hosted Containern an, wenn bencher up mit dem --detach-Flag ausgeführt wurde. Dies ist ähnlich dem Ausführen von docker compose logs.

bencher up [OPTIONS] [SERVICE]

Dienst

Wählen Sie die zu startenden Container aus. Die möglichen Optionen sind: all, api und console. Standardmäßig ist all ausgewählt. Ähnlich dem SERVICE-Argument für docker compose logs.

Optionen

--help

Hilfe drucken.

bencher down

Stoppen und entfernen der Bencher Self-Hosted Container, wenn bencher up mit dem --detach-Flag ausgeführt wurde. Dies ist ähnlich wie das Ausführen von docker compose down.

bencher down [OPTIONS] [SERVICE]

Service

Wählen Sie die Container, die ausgeführt werden sollen. Die möglichen Optionen sind: all, api und console. Standardmäßig ist all ausgewählt. Ähnlich dem SERVICE Argument für docker compose down.

Optionen

--help

Hilfe drucken.

Alternativ können Sie einfach docker compose verwenden, um die Container zu orchestrieren. Dies ist eine Beispiel-docker-compose.yml-Datei:

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

Um HTTPS einzurichten, kann Bencher Self-Hosted hinter einem Proxy mit aktiviertem HTTPS verwendet werden oder ein Domainname mit einem gültigen SSL-Zertifikat genutzt werden.

Host-URL

Wenn Sie Bencher Self-Hosted verwenden, müssen Sie die Option --host auf die URL Ihres Bencher-API-Servers für die meisten bencher-CLI-Unterbefehle setzen.

Zum Beispiel, wenn Sie den bencher run CLI-Unterbefehl mit einem Bencher-API-Server unter https://api.bencher.example.com verwenden, könnten Sie etwas Folgendes schreiben:

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

Sicherungen

Der einfachste Weg, Ihren Bencher Self-Hosted API-Server zu sichern, ist die Verwendung des bencher server backup CLI-Unterbefehls. Der Benutzer muss ein Administrator auf dem Server sein, um diesen Unterbefehl zu verwenden.

bencher server backup

Sichern Sie die Datenbank des API-Servers.

Optionen

--host <URL>

Die URL des selbstgehosteten Bencher API-Servers. Zum Beispiel, https://api.bencher.example.com.

--token <TOKEN>

Entweder muss die Option --token oder die Umgebungsvariable BENCHER_API_TOKEN auf einen gültigen API-Token gesetzt werden. Wenn beide angegeben sind, hat die Option --token Vorrang vor der Umgebungsvariable BENCHER_API_TOKEN.

--compress

Komprimieren Sie das Datenbank-Backup mit gzip. Dieser Vorgang wird zuerst ausgeführt.

--data-store <DATA_STORE>

Speichern Sie das Datenbank-Backup in diesem Datenspeicher. Dieser Vorgang wird als zweites ausgeführt.

Unterstützte Datenspeicher:

  • aws_s3: Backup zu AWS S3

Verwenden Sie den Abschnitt „database.data_store“ der API-Server-Konfiguration, um den Datenspeicher für Ihren Bencher Self-Hosted API-Server einzurichten.

--remove

Entfernen Sie die lokale Kopie der Datenbanksicherung. Dieser Vorgang läuft als dritter.

Notfallwiederherstellung

Um Datenverlust zwischen den Backups zu verhindern, bietet Bencher eine integrierte Notfallwiederherstellungslösung. Diese Funktion erfordert eine aktive Bencher Plus Lizenz.

Unterstützte Replikationsschemata:

  • file: Replizieren zu einem lokalen Dateipfad
  • sftp: Replizieren über SFTP
  • s3: Replizieren zu einem S3-kompatiblen Blob-Speicher
  • abs: Replizieren zu Azure Blob Storage
  • gcs: Replizieren zu Google Cloud Storage

Verwenden Sie den Abschnitt plus.disaster_recovery der API-Serverkonfiguration, um die Notfallwiederherstellung für Ihren Bencher Self-Hosted API-Server einzurichten.

🤖 Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


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