Zum Hauptinhalt springen

CLI

Die Binärdatei semaphore ist sowohl der Server als auch ein vollständiges Administrationswerkzeug. Führen Sie sie ohne Argumente (oder mit semaphore help) aus, um alle Befehle aufzulisten:

semaphore help

Für die meisten administrativen Aufgaben gibt es eine eigene Befehlsgruppe:

BefehlsgruppeZweck
semaphore usersBenutzer hinzufügen, ändern, entfernen und anzeigen; API-Tokens und TOTP (2FA) verwalten.
semaphore projectsProjekte exportieren und importieren (Backups).
semaphore vaultsGespeicherte Geheimnisse neu verschlüsseln und die Verwendung der Verschlüsselungsschlüssel prüfen.
semaphore runnerIm Runner-Modus laufen sowie Runner registrieren/abmelden.
semaphore migrateDatenbankmigrationen anwenden oder zurückrollen.

Mehrere Befehlsgruppen haben kürzere Aliasse: users/user, projects/project, vaults/vault und server/service.

info

Jeder Befehl, der auf die Datenbank zugreift (users, projects, vaults, migrate, server), wendet vor der Ausführung alle ausstehenden Schemamigrationen an. Erstellen Sie ein Datenbank-Backup, bevor Sie die CLI einer neueren Semaphore-Version gegen eine bestehende Datenbank ausführen.

Globale Optionen

Diese Flags werden von jedem Befehl akzeptiert:

OptionBeschreibung
--config <path>Pfad zur Konfigurationsdatei.
--no-configKeine Konfigurationsdatei lesen — nur Umgebungsvariablen verwenden.
--log-level <level>Ausführlichkeit der Logs: DEBUG, INFO, WARN, ERROR, FATAL oder PANIC. Fällt auf die Umgebungsvariable SEMAPHORE_LOG_LEVEL zurück.
--debug-filter <spec>Beschränkt die DEBUG-Ausgabe auf bestimmte Namespaces, z. B. 'runner,task_*' oder '*,-db'. Wirkt nur, wenn der Log-Level DEBUG ist. Fällt auf SEMAPHORE_DEBUG_FILTER zurück.

Wie die Konfigurationsdatei gefunden wird

Wenn --config weggelassen wird, sucht Semaphore die Datei in dieser Reihenfolge und verwendet die erste, die existiert:

  1. Der Pfad in der Umgebungsvariable SEMAPHORE_CONFIG_PATH.
  2. config.json, config.yaml oder config.yml im aktuellen Verzeichnis.
  3. /usr/local/etc/semaphore/config.json (oder .yaml / .yml).
  4. /etc/semaphore/config.json (oder .yaml / .yml).

Umgebungsvariablen werden zusätzlich zur Datei angewendet und überschreiben daher deren Werte. Mit --no-config werden nur Umgebungsvariablen und Standardwerte verwendet. Die vollständige Optionsliste finden Sie unter Konfiguration.

Version

Gibt die aktuelle Version aus.

semaphore version

Interaktive Einrichtung

Verwenden Sie dies für die Erstkonfiguration. Der Befehl erzeugt Geheimnisse, führt durch einen interaktiven Fragebogen, schreibt die Konfigurationsdatei, führt die Datenbankmigrationen aus und legt den ersten Admin-Benutzer an.

semaphore setup

Übergeben Sie --config <path>, um festzulegen, wohin die Konfigurationsdatei geschrieben wird. Ohne diese Angabe fragt das Setup nach einem Ausgabeverzeichnis (Standard: das aktuelle Verzeichnis) und schreibt dort config.json.

Wenn der eingegebene Benutzername oder die E-Mail-Adresse bereits existiert, behält das Setup den vorhandenen Benutzer bei, anstatt einen neuen anzulegen.

Nach Abschluss gibt es die Befehle zum Starten des Servers aus, zum Beispiel:

./semaphore server --config /path/to/config.json

Server-Modus

Startet den Semaphore-Server (Weboberfläche und API). service ist ein Alias für server.

semaphore server --config /path/to/config.json

Der Server wendet beim Start ausstehende Datenbankmigrationen an und gibt die verwendete Datenbank, den temporären Pfad, die Schnittstelle und den Port aus.

Runner-Modus

Führt Semaphore als Task-Runner aus. Unter Runner finden Sie alle Unterbefehle (setup, register, start, unregister).

semaphore runner start --config /path/to/runner-config.json

Datenbankmigration

Bringt das Datenbankschema auf den aktuellen Stand. Unter Datenbankmigrationen erfahren Sie, wie Sie Migrationen bis zu einer bestimmten Version anwenden oder zurückrollen.

semaphore migrate --config /path/to/config.json