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-Unterbefehlen:

  • bencher up

    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.6.13.

    --console-port <PORT>

    Geben Sie eine Portnummer für den Console-Server-Container an. Standardmäßig wird Port 3000 verwendet. Ähnlich wie die port-only-Form der Option --expose für docker run.

    Wenn Sie die Option --console-port angeben, müssen Sie außerdem die API-Server-Konfiguration die console.url anpassen, damit sie mit dem neuen Port übereinstimmt, und dazu entweder die Option die --api-env oder die Option die --api-volume verwenden.

    --api-port <PORT>

    Legt die Portnummer für den API-Server-Container fest. Standardmäßig wird Port 6610 verwendet. Ähnlich wie die reine Port-Form der Option --expose für docker run.

    Wenn Sie die Option --api-port angeben, müssen Sie außerdem die Umgebungsvariable BENCHER_API_URL des Console-Servers aktualisieren, damit sie den neuen Port widerspiegelt, und zwar mithilfe der Option --console-env.

    --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

    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

    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.

Siehe die Bencher Compose Referenz für mehr Details.

Alternativ könnten Sie einfach docker compose verwenden, um die Container zu orchestrieren.

docker-compose.yml
services:
bencher_api_compose:
image: ghcr.io/bencherdev/bencher-api:latest
container_name: bencher_api
ports:
- 6610:6610
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:6610
# 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:6610
depends_on:
- bencher_api_compose

Siehe das Docker Compose Referenzbeispiel für mehr Details.

API-Server-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 einstellen.

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

Terminal window
bencher run \
--host https://api.bencher.example.com \
--project project-abc4567-wxyz123456789 \
--branch main \
--testbed ci-runner \
--adapter json \
bencher mock

Wenn Sie den Bencher Console-Server auf einem anderen Host als den Bencher API-Server betreiben, müssen Sie auch die Umgebungsvariable BENCHER_API_URL auf dem Bencher Console-Server auf die Remote-URL Ihres Bencher API-Servers einstellen.

Zum Beispiel, wenn Sie den bencher up CLI-Unterbefehl verwenden, um den Bencher Console-Server mit einem Bencher API-Server zu starten, der unter https://api.bencher.example.com läuft, dann müssen Sie die Option --console-env auf die Remote-URL wie folgt einstellen:

Terminal window
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com console

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.

Notfallwiederherstellung

Um Datenverlust 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
  • s3: Replizieren zu einem S3-kompatiblen Blob-Speicher

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 KI übersetzt. 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: Sun, October 4, 2026 at 4:59:55 PM UTC