Installieren von cipi-cli

cipi-cli ist eine eigenständige Go-Binärdatei, die mit dem Cipi REST API von Ihrem lokalen Server aus kommuniziert Maschine. Kein SSH erforderlich – verwalten Sie Apps, Datenbanken, SSL-Zertifikate und Bereitstellungen von jedem Ort aus Terminal. Binärdateien sind für Linux und macOS (amd64 und arm64) verfügbar.

Auf dem Cipi-Server muss vor der Verwendung das Paket API installiert und konfiguriert sein cipi-cli. Siehe cipi api für Installationsanweisungen.

Binärdatei herunterladen

Laden Sie die neueste Version für Ihre Plattform herunter Seite „Veröffentlichungen“., dann:

bash
chmod +x cipi-cli-*
sudo mv cipi-cli-* /usr/local/bin/cipi-cli

Aus dem Quellcode erstellen

bash
git clone https://github.com/cipi-sh/cli.git
cd cli
make build
sudo make install

Überprüfen Sie die Installation

bash
$ cipi-cli version
cipi-cli v1.2.5 (Linux/amd64)

Konfiguration

A Profil ist eine benannte Verbindung zu einem Cipi-Server (API Endpunkt + Token). Verwenden Sie als viele Profile, da Sie beispielsweise Server haben prod, staging, oder client-a. Sie benötigen die Endpunkt-URL API und ein mit erstelltes Sanctum-Token cipi api token create auf jedem Server.

Anmeldeinformationen werden pro Profil in gespeichert ~/.cipi/config.json mit Berechtigungen 0600. Übergeben Sie immer einen Profilnamen – wenn Sie ihn weglassen, fordert CLI stattdessen zur Eingabe eines Profilnamens auf schreibe stillschweigend an default.

Interaktives Setup

Empfohlen: Speichern Sie den Token bei api token add. Gleichwertige Helfer sind configure --profile und profiles add:

bash
$ cipi-cli api token add prod
Cipi API Endpunkt: https://api.example.com
API Token: 1|IhrToken...
Serverprofil „prod“ gespeichert → ~/.cipi/config.json

$ cipi-cli api token add staging
Cipi API Endpunkt: https://staging-api.example.com
API Token: 1|stagingtoken...
Serverprofil „Staging“ gespeichert → ~/.cipi/config.json

# Same flow via configure / profiles add
$ cipi-cli configure --profile prod
$ cipi-cli profiles add staging

Nicht interaktives Setup

bash
$ cipi-cli api token add prod \
    --endpoint https://api.example.com --token "1|yourtoken..."

$ cipi-cli profiles add staging \
    --endpoint https://staging.example.com --token "1|yourtoken..."

Konfiguration anzeigen

bash
$ cipi-cli profiles show prod
Profil: Prod
Endpunkt: https://api.example.com
Token: 1|a8Kz...4f2a

$ cipi-cli profiles show
# Shows all configured server profiles

profiles

Verwalten Sie mehrere Serververbindungen von einem einzigen aus cipi-cli Installation. Ein Profil entspricht einem Server. Stellen Sie jedem Befehl einen Profilnamen als Ziel für diesen Server voran oder legen Sie einen Standardwert fest mit profiles use das Präfix weglassen. Die Aliase servers / server funktioniert genauso wie profiles.

Ausrichtung auf einen Server

bash
$ cipi-cli prod apps list
$ cipi-cli staging apps show myapp
$ cipi-cli prod deploy myapp
$ cipi-cli prod ssl install myapp

Mit einem Standardserversatz können Sie Befehle ohne das Präfix ausführen:

bash
$ cipi-cli profiles use prod
Standardprofil auf „prod“ eingestellt

$ cipi-cli apps list
# Uses the prod profile

$ cipi-cli staging apps list
# Explicit prefix still targets staging
Befehl Beschreibung
cipi-cli api Token hinzufügen [Profil] Fügen Sie API Endpunkt + Token für ein benanntes Serverprofil hinzu oder aktualisieren Sie es
cipi-cli Profile Konfigurierte Server auflisten (Alias: cipi-cli servers)
cipi-cli Profile fügen [Name] [Flags] hinzu Fügen Sie ein Serverprofil hinzu oder aktualisieren Sie es (wie configure --profile)
cipi-cli Profilliste Konfigurierte Server auflisten
cipi-cli Profile zeigen [Profil] Zeigt ein Serverprofil oder alle, wenn es weggelassen wird
cipi-cli Profile verwenden <profile> Legen Sie den Standardserver fest (Alias: profiles default)
cipi-cli Profile löschen <Profil> [-y] Löschen Sie ein lokales Serverprofil (nur Anmeldeinformationen – auf dem Remote-Server ändert sich nichts)

api token add, profiles add, und configure akzeptiere das Gleiche Flaggen: --endpoint und --token (zzgl --profile wenn der Name ist nicht positionell).

Aliase: servers / serverprofiles; profiles useprofiles default. Es gelten die gleichen Verwaltungsbefehle auch erhältlich unter cipi-cli configure list, configure show, configure default, und configure delete – lieber profiles oder api token add zum Speichern von Anmeldeinformationen.

apps

Verwalten Sie Anwendungen auf Ihrem Cipi-Server.

Befehl Beschreibung
cipi-cli Apps-Liste Listen Sie alle Anwendungen auf
cipi-cli Apps zeigen <Name> an Bewerbungsdetails anzeigen
cipi-cli Apps erstellen [Flags] Erstellen Sie eine neue Anwendung
cipi-cli Apps bearbeiten <Name> [Flags] Bearbeiten Sie eine Anwendung
cipi-cli Apps löschen <Name> [-y] Löschen Sie eine Anwendung
cipi-cli Apps sperren <Name> Nehmen Sie eine App offline (HTTP 503-Wartungsseite), ohne sie zu löschen
cipi-cli Apps heben die Suspendierung von <Name> auf Stellen Sie den normalen Dienst einer angehaltenen App wieder her
cipi-cli App-Protokolle <Name> [Flags] Paginierte Anwendungsprotokolle lesen (nginx, PHP-FPM, Laravel, Worker, Deploy)

Flaggen erstellen

--user Anwendungsname (wird als Linux-Benutzer- und Datenbankname verwendet)
--domain Primäre Domäne für die Anwendung
--php PHP-Version (z. B. 8.5)
--repository Git-Repository-URL
--branch Git-Zweig zur Bereitstellung
--custom Erstellen Sie eine benutzerdefinierte (nicht Laravel) App mit htdocs bereitstellen
--docroot Dokumentstamm relativ zu htdocs(nur benutzerdefinierte Apps)

Flags bearbeiten

--php Ändern Sie die PHP-Version
--repository Git-Repository-URL aktualisieren
--branch Deploy-Zweig ändern
--domain Benennen Sie die primäre Domäne um (erfordert Cipi 4.6.2+ und API 1.9.0+)

Protokolliert Flags

--type Protokolltypfilter: all (Standard), nginx, php, worker, deploy, oder laravel
--page Seitenzahl, beginnend bei 1 für die neuesten Zeilen (Standard). 1)
--per-page Zeilen pro Protokolldatei pro Seite (Standard). 50, max 1000; erfordert API 1.11.9+)

Beispiele

bash
# List all apps
$ cipi-cli apps list

# Create a Laravel app
$ cipi-cli apps create --user=myapp --domain=myapp.com \
    --php=8.5 --repository=git@github.com:acme/myapp.git --branch=main

# Create a custom (non-Laravel) app
$ cipi-cli apps create --user=landing --domain=landing.acme.com \
    --custom --docroot=dist

# Edit an existing app
$ cipi-cli apps edit myapp --php=8.4

# Suspend staging for maintenance
$ cipi-cli apps suspend staging

# Read recent deploy logs (page 1 = newest lines)
$ cipi-cli apps logs myapp --type=deploy

# Paginate older nginx lines
$ cipi-cli apps logs myapp --type=nginx --page=2 --per-page=100

# Delete an app (skip confirmation)
$ cipi-cli apps delete myapp -y

domains

Listen Sie alle primären Domänen und Alias aller Apps auf dem Server in einer einzigen Tabelle auf – der Remote-Tabelle Gegenstück zu cipi domains auf dem Server. Nützlich zum Überprüfen der DNS-Abdeckung oder zum Erkennen von Domänen, denen SSL vor einer Zertifikatsverlängerung fehlt.

Befehl Beschreibung
cipi-cli Domänen Listen Sie jede Domain und jeden Alias in allen Apps auf
bash
$ cipi-cli domains
  DOMAIN-APP-ART-TYP PHP SSL
  api.myapp.com myapp-Alias Laravel 8.5 ✓
  myapp.com myapp primär Laravel 8.5 ✓
  www.myapp.com myapp alias Laravel 8.5 ✓

3 Domains · 1 App · 3 Zertifikate
Die globale Domänenkarte wird aus erstellt GET /api/apps auf dem Server. Es erfordert Cipi 4.5.5+ auf dem Server (für die zugrunde liegende cipi domains Daten), aber keine Mindestpaketversion API.

deploy

Lösen Sie Bereitstellungen aus, führen Sie ein Rollback auf die vorherige Version durch oder entsperren Sie eine blockierte Bereitstellung.

Befehl Beschreibung
cipi-cli <App> bereitstellen Lösen Sie eine Bereitstellung ohne Ausfallzeiten aus
cipi-cli Rollback bereitstellen <app> [-y] Rollback zur vorherigen Version
cipi-cli Entsperren von <App> bereitstellen Entsperren Sie eine feststeckende Bereitstellung
bash
$ cipi-cli deploy myapp
Bereitstellung von myapp...
Umfrageauftrag Nr. 42... abgeschlossen
Bereitgestellt für Release Nr. 14. Keine Ausfallzeiten.

$ cipi-cli deploy rollback myapp
Zurückgesetzt auf Version Nr. 13.

ssl

Installieren Sie Let's Encrypt-Zertifikate für Ihre Anwendungen.

Befehl Beschreibung
cipi-cli ssl <App> installieren Installieren Sie das Zertifikat Let's Encrypt (deckt die primäre Domäne und alle Aliase ab)
bash
$ cipi-cli ssl install myapp
Für myapp.com bereitgestelltes Zertifikat

aliases

Verwalten Sie Domänenaliase für eine Anwendung.

Befehl Beschreibung
cipi-cli Aliasliste <app> Listen Sie alle Aliase für eine App auf
cipi-cli Aliase fügen <app> <domain> hinzu Fügen Sie einen Domänenalias hinzu
cipi-cli Aliase entfernen <app> <domain> [-y] Entfernen Sie einen Domain-Alias
bash
$ cipi-cli aliases add myapp www.myapp.com
Alias www.myapp.com zu myapp hinzugefügt.

$ cipi-cli aliases list myapp
  www.myapp.com
  api.myapp.com

# Re-run ssl install to include new aliases in the certificate
$ cipi-cli ssl install myapp

db

Verwalten Sie MariaDB-Datenbanken.

Befehl Beschreibung
cipi-cli Datenbankliste Listen Sie alle Datenbanken auf
cipi-cli Datenbank erstellt <Name> Erstellen Sie eine Datenbank
cipi-cli Datenbank löschen <Name> [-y] Löschen Sie eine Datenbank
cipi-cli Datenbanksicherung <Name> Erstellen Sie eine Datenbanksicherung
cipi-cli Datenbankwiederherstellung <Name> [-y] Datenbank aus Backup wiederherstellen
cipi-cli Datenbankpasswort <Name> [-y] Passwort neu generieren und aktualisieren .env
bash
$ cipi-cli db list
  NAMENSGRÖSSE
  myapp 24,5 MB
  Blog 8,2 MB

$ cipi-cli db backup myapp
Backup erstellt: myapp_20260402_143022.sql.gz

$ cipi-cli db restore myapp -y
Datenbank erfolgreich wiederhergestellt.

status

Lesen Sie denselben Host-Snapshot wie cipi status auf der Server – über GET /api/status. Nackt status zeigt eine globale Übersicht (eine Zeile pro konfiguriertem Server). Geben Sie einen Profilnamen ein (oder verwenden Sie ein Profilpräfix), um vollständige Details zu erhalten.

Befehl Beschreibung
cipi-cli Status Globale Übersicht – eine Zeile pro Server (Alias: status all)
cipi-cli Status <Profil> Vollständige Details für einen Server
cipi-cli <Profil>-Status Gleiche Detailansicht, über Profilpräfix

Globale Spalten: NAME, IP, CPU, RAM, HDD, APPS, SVC, CIPI. Das Standardprofil ist gekennzeichnet mit *.

bash
$ cipi-cli status
  NAME IP CPU RAM HDD APPS SVC CIPI
  Produkt* 203.0.113.10 12 % 48 % (3840M) 42G/80G 53 % 3 8/8 ok 4.6.3
  Staging 203.0.113.20 4 % 31 % (2048M) 18G/40G 45 % 1 8/8 ok 4.6.3

  * Standardprofil
  Detail: cipi-cli Status <Name>

$ cipi-cli status prod
Serverstatus – Produkt
  Endpunkt https://api.example.com
  Hostname prod-01
  IP 203.0.113.10
  Betriebssystem Ubuntu 24.04
  Betriebszeit 12 Tage
  Cipi 4.6.3
  CPU 12 %
  RAM 3840/8192 MB (48 %)
  Festplatte 42G/80G (53 %)
  Apps 3
Erfordert die Token-Fähigkeit API status-view und GET /api/status auf dem Server (API 1.11.6+). Erstellen oder drehen Sie das Token mit cipi api token create und einschließen status-view.

jobs

Schreibvorgänge (Erstellen, Bearbeiten, Löschen, Bereitstellen, SSL usw.) sind auf Cipi API asynchron. Das CLI fragt automatisch nach Auftragsabschluss und zeigt während des Wartens einen Spinner an. Wenn Sie es lieber handhaben möchten Wenn Sie die Abfrage manuell durchführen möchten, verwenden Sie die jobs Befehle.

Befehl Beschreibung
cipi-cli Jobs zeigen <id> Jobstatus anzeigen
cipi-cli Jobs warten <id> Warten, bis ein Auftrag abgeschlossen ist (Blockierung)
bash
$ cipi-cli jobs show 42
Job Nr. 42: myapp bereitstellen – abgeschlossen

$ cipi-cli jobs wait 43
Warten auf Job Nr. 43... abgeschlossen

update

Aktualisieren cipi-cli zur neuesten Version von GitHub. Der Befehl wählt die aus Höchstes Semver unter den veröffentlichten Veröffentlichungen (nicht die „neueste“ Flagge von GitHub, die das kann zeigt auf ein älteres Tag), lädt die passende Binärdatei für Ihre Plattform herunter und überprüft deren SHA-256 Prüfsumme und ersetzt die laufende Binärdatei an Ort und Stelle. Aliase: self-update, upgrade.

Befehl Beschreibung
cipi-cli Aktualisierung Update zum höchsten veröffentlichten Semester
cipi-cli update --force Neuinstallation, auch wenn bereits auf dem neuesten Stand (Downgrade möglich)
bash
$ cipi-cli update
cipi-cli v1.2.5 wird heruntergeladen...
Prüfsumme überprüft. Aktualisiert auf v1.2.5.

# Aliases work the same
$ cipi-cli self-update
$ cipi-cli upgrade

# If installed in a system path, use sudo
$ sudo cipi-cli update

completion

Installieren Sie die Shell-Autovervollständigung für cipi-cli. Der empfohlene Pfad ist completion install, das Ihre Shell erkennt, das Abschlussskript schreibt und einhängt es in Ihre RC-Datei (idempotent).

Befehl Beschreibung
cipi-cli Abschluss der Installation Shell automatisch erkennen und Installation abschließen
cipi-cli Abschluss der Installation --shell zsh Für eine bestimmte Shell installieren (zsh, bash, oder fish)
cipi-cli Abschluss zsh Drucken Sie das ZSH-Abschlussskript auf stdout
cipi-cli Abschluss-Bash Drucken Sie das Bash-Vervollständigungsskript auf stdout
cipi-cli Abschlussfisch Drucken Sie das Fischvervollständigungsskript auf stdout
bash
$ cipi-cli completion install
ZSH-Vervollständigung wird installiert...
Abschluss installiert → ~/.cipi/completions/cipi-cli.zsh
Eingebunden in ~/.zshrc

# Or pin a shell explicitly
$ cipi-cli completion install --shell bash

Für zsh und bash wird das Skript unter geschrieben ~/.cipi/completions/ und eine Quellzeile ist an Ihre Shell-RC-Datei angehängt. Für Fisch geht das Skript zu ~/.config/fish/completions/ (automatisch geladen). Laden Sie anschließend die Shell neu und versuchen Sie es dann cipi-cli <TAB>.


Globale Flaggen

Diese Flags sind für alle Befehle verfügbar.

--json Ausgabe im JSON-Format – nützlich für Skripterstellung und CI/CD-Pipelines
--no-color Farbausgabe deaktivieren
--help Hilfe für jeden Befehl anzeigen
bash
# JSON output for scripting
$ cipi-cli apps list --json
[{"name": "meine App", "Domäne": "meine App.com", "php": "8,5"}, ...]

# Pipe to jq for filtering
$ cipi-cli apps list --json | jq '.[].name'
„meine App“
„Blog“

# Help for a specific command
$ cipi-cli apps create --help

Veröffentlichungen

Freigaben werden über GitHub-Aktionen automatisiert. Vorgefertigte Binärdateien für Linux (amd64/arm64) und macOS (amd64/arm64) werden mit SHA-256-Prüfsummen auf der veröffentlicht GitHub Releases-Seite.

Quellcode

cipi-cli ist open source, MIT-lizenziert und in Go geschrieben. Beiträge willkommen auf GitHub.


Anforderungen

Der Cipi-Server muss über Folgendes verfügen API Paket installiert und konfiguriert vor der Verwendung cipi-cli:

bash
$ cipi api <domain>
$ cipi api ssl
$ cipi api token create

Neue App-Versionen müssen PHP sein 8.3, 8.4, oder 8.5 (Cipi 4.5.4+). Einige CLI-Funktionen hängen von bestimmten Server- und API-Versionen ab:

Funktion Mindestens Cipi Mindestens API
Suspendieren / Suspendieren aufheben (apps suspend) 4.5.8 1.8.1
Primäre Domäne umbenennen (apps edit --domain) 4.6.2 1.9.0
App-Protokolle (apps logs) 1.11.9
Serverstatus (status) GET /api/status + status-view (1.11.6+)
Globale Domänenkarte (domains) 4.5.5 — (erbaut aus /api/apps)