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:
| Befehlsgruppe | Zweck |
|---|---|
semaphore users | Benutzer hinzufügen, ändern, entfernen und anzeigen; API-Tokens und TOTP (2FA) verwalten. |
semaphore projects | Projekte exportieren und importieren (Backups). |
semaphore vaults | Gespeicherte Geheimnisse neu verschlüsseln und die Verwendung der Verschlüsselungsschlüssel prüfen. |
semaphore runner | Im Runner-Modus laufen sowie Runner registrieren/abmelden. |
semaphore migrate | Datenbankmigrationen anwenden oder zurückrollen. |
Mehrere Befehlsgruppen haben kürzere Aliasse: users/user, projects/project,
vaults/vault und server/service.
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:
| Option | Beschreibung |
|---|---|
--config <path> | Pfad zur Konfigurationsdatei. |
--no-config | Keine 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:
- Der Pfad in der Umgebungsvariable
SEMAPHORE_CONFIG_PATH. config.json,config.yamloderconfig.ymlim aktuellen Verzeichnis./usr/local/etc/semaphore/config.json(oder.yaml/.yml)./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