Bencher Selbstgehostet
Bencher ist Open Source. Es ist verfügbar als SaaS, Bencher Cloud, und als selbst hostbares Set von Container-Images:
- Bencher Console Server
- Bencher API Server
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
undconsole
. Standardmäßig istall
ausgewählt. Ähnlich demSERVICE
-Argument fürdocker compose up
.Optionen
--detach
Im getrennten Modus ausführen. Die Container werden im Hintergrund ausgeführt. Ähnlich wie das
--detach
Flag fürdocker compose up
.--pull <WHEN>
Zieht Images, bevor sie ausgeführt werden. Die möglichen Optionen sind:
always
,missing
undnever
. Standardmäßig istalways
ausgewählt. Ähnlich zur--pull
Option fürdocker 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 neuestebencher
CLI-Version istv0.4.36
.--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ürdocker 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ürdocker 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ürdocker 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ürdocker 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ürdocker 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
beidocker 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 vondocker compose logs
.bencher up [OPTIONS] [SERVICE]Dienst
Wählen Sie die zu startenden Container aus. Die möglichen Optionen sind:
all
,api
undconsole
. Standardmäßig istall
ausgewählt. Ähnlich demSERVICE
-Argument fürdocker 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 vondocker compose down
.bencher down [OPTIONS] [SERVICE]Service
Wählen Sie die Container, die ausgeführt werden sollen. Die möglichen Optionen sind:
all
,api
undconsole
. Standardmäßig istall
ausgewählt. Ähnlich demSERVICE
Argument fürdocker 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: - 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
Siehe das Docker Compose Referenzbeispiel für mehr Details.
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:
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
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 Dateipfadsftp
: Replizieren über SFTPs3
: Replizieren zu einem S3-kompatiblen Blob-Speicherabs
: Replizieren zu Azure Blob Storagegcs
: 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.