GUI · API · MCP

Cipi Bedienfeld und API: was die beiden optionale Erweiterungen entsperren

Von · Letzte Aktualisierung: · Kostenlose Lektüre, keine Paywall

Cipi ist und bleibt CLI-zuerst. Alles, was ein Server benötigt – Apps, Datenbanken, SSL, Bereitstellungen, Backups – ist eins cipi Befehl über SSH. Seit v4.7.0 können Sie zwei optionale Pakete hinzufügen: cipi/api und cipi/gui. Dieser Leitfaden erklärt, was sie gemeinsam freischalten — und warum keines von beiden Pflicht ist.

In diesem Ratgeber
  1. Zwei Erweiterungen, kein Lock-in
  2. Der API ist das Rückgrat
  3. Was Sie mit den API machen können
  4. Sanctum tokens and granular abilities
  5. Asynchrone Jobs und Abfragen
  6. MCP: Cipi innerhalb von Cursor, VS Code und Claude
  7. Das UI-Panel als Multiserver-Cockpit
  8. Was Sie im Browser tun können
  9. Server-Cockpit
  10. So installieren Sie sie
  11. SSL, 2FA und IP-Whitelist
  12. Anwendungsfälle: Teams, Agenturen, Hosting, KI
  13. cipi-cli and WHMCS on the same wire
  14. FAQ

Zwei Erweiterungen, kein Lock-in

Cipi ist kein Panel, das ein CLI verbirgt. Es handelt sich um einen CLI, der, wenn Sie möchten, einen API und ein Armaturenbrett freilegt. Überspringen Sie beide Pakete und der Server läuft genau wie zuvor – kein zusätzlicher Daemon, keine Weboberfläche, nichts, was lauscht. Installieren Sie nur das, was Sie brauchen.

Alles, was Sie im Browser tun, können Sie über die Shell tun. Alles, was Sie über die Shell tun, können Sie über HTTP automatisieren. Bei beiden Paketen handelt es sich um Clients derselben Oberfläche, nicht um ein zweites Cipi.

Die normative Quelle ist nach wie vor die Dokumentation: Erweitert → cipi api und Bedienfeld (GUI). In diesem Leitfaden geht es um die Funktionen, nicht um jeden Endpunkt.

Der API ist das Rückgrat

Enable the API before you touch the GUI. One command provisions Laravel under /opt/cipi/api, der Nginx vhost, SSL, eine SQLite-Warteschlange und cipi-queue.service:

$ cipi api api.example.com
$ cipi api ssl
$ cipi api token create

Das Paket ist Serverebene Automatisierung – anders als die Cipi Agent (cipi/agent in jeder Laravel-App). Der Agent deckt Pro-App-Webhooks, Gesundheit und MCP ab. Der API deckt die ganze Box ab: Apps, Datenbanken, PHP, SSH, Dienste, SMTP, Healthchecks, IP-Whitelist.

PHP-FPM läuft als www-data und führt Cipi Befehle über sudo gegen eine explizite Whitelist in aus /etc/sudoers.d/cipi-api. Vault- und MariaDB-Passwörter bleiben in Cipi, nicht in PHP. Nachher cipi self-update, wenn /docs oder /mcp Rückgabe HTTP 500, cipi api fix-permissions repariert Speicher und SQLite-Besitz.

Was Sie mit den API machen können

Die OpenAPI-Oberfläche deckt den Lebenszyklus eines Cipi-Servers ab. Lesevorgänge erfolgen synchron; schreibt (erstellen, bearbeiten, löschen, bereitstellen, SSL, Aliase, www, Datenbanken) zurück 202 Accepted mit einem job_id.

Bereich Was es freischaltet
Apps Laravel und benutzerdefiniertes CRUD, Octane/FrankenPHP, DB-Engine zum Zeitpunkt der Erstellung, Suspend/Unsuspendieren (HTTP 503), Primärdomäne umbenennen, HTTP Basic Auth, paginierte Protokolle, .env, Composer auth.json, Artisan und auf die Whitelist gesetzt app run, Deploy-Config, Git-Webhooks neu erstellen
Bereitstellen Bereitstellung, Rollback und Freigabe einer feststeckenden Version ohne Ausfallzeiten
Aliase und WWW Aliase, Apex/www-Gegenstück, Force-to-Root/Force-from-Root, klare Weiterleitungen
SSL Let's Encrypt (SAN on primary + aliases) and force HTTPS without re-issuing the certificate
Datenbanken MariaDB und PostgreSQL: Liste/Engines, Erstellen, Löschen, Sichern, Wiederherstellen, Passwort, Engine installieren und Systemstandard
Server GET /api/status (CPU, RAM, Festplatte, Dienste, PHP Pools, App-Anzahl) – der gleiche Snapshot wie cipi status
Cockpit PHP 8.3/8.4/8.5 (Installieren, Entfernen, Standard), SSH-Schlüssel, Dienstneustarts, SMTP, HTTP Gesundheitsprüfungen, IP-Whitelist aktiviert /api/* und /mcp

Minimales Beispiel – Apps auflisten und Serverstatus lesen:

export CIPI_API_URL="https://api.example.com"
export CIPI_API_TOKEN="1|your-sanctum-token"

curl -sS "${CIPI_API_URL}/api/apps" \
  -H "Authorization: Bearer ${CIPI_API_TOKEN}" \
  -H "Accept: application/json"

curl -sS "${CIPI_API_URL}/api/status" \
  -H "Authorization: Bearer ${CIPI_API_TOKEN}"

Erstellen Sie eine Laravel Octane App (asynchron, API 1.13+ / Cipi 5.0+):

curl -sS -X POST "${CIPI_API_URL}/api/apps" \
  -H "Authorization: Bearer ${CIPI_API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "shop.example.com",
    "repository": "git@github.com:you/shop.git",
    "branch": "main",
    "octane": true,
    "engine": "mariadb"
  }'

Swagger-Benutzeroberfläche unter https://api.example.com/docs ist der Spielplatz: Probieren Sie jede Operation mit demselben Token aus, überprüfen Sie die Anforderung/Antwort und die Jobtypen. Die Spezifikation lebt bei public/api-docs/openapi.json.

Sanctum tokens and granular abilities

Auth ist Laravel Sanctum. Jeder Token trägt einen oder mehrere Fähigkeiten: Ein CI-Token kann nur enthalten deploy-manage und apps-view; Ein Panel-Token benötigt den vollständigen Satz. cipi api token create liest die kanonische Liste aus dem Paket (dasselbe wie php artisan cipi:token-abilities).

Die Fähigkeiten umfassen Apps (Anzeigen/Erstellen/Bearbeiten/Löschen/Suspendieren/Basicauth/env/auth/artisan/run/deploy-config), Aliase, www, bereitstellen, SSL, Datenbanken, Status, MCP und – seit API 1.15+ — PHP, SSH, Dienste, SMTP, Gesundheit und IP-Whitelist. Widerrufen mit cipi api token revoke <id>. Verwenden Sie ein Token mit voller Funktionalität nicht in einer öffentlichen Pipeline wieder.

Asynchrone Jobs und Abfragen

Ein Deploy bzw db create lebt nicht in der HTTP-Anfrage: Die API stellt die Arbeit in die Warteschlange und kehrt zurück 202 + job_id. Umfrage GET /api/jobs/{id} für Status, CLI output und exit_code. Das ist das gleiche Overlay, das GUI zeigt, und die gleiche Schleife wie cipi-cli jobs wait.

curl -sS -X POST "${CIPI_API_URL}/api/apps/myapp/deploy" \
  -H "Authorization: Bearer ${CIPI_API_TOKEN}"

curl -sS "${CIPI_API_URL}/api/jobs/JOB_ID" \
  -H "Authorization: Bearer ${CIPI_API_TOKEN}"

Seit Cipi 4.6.3 Das API-Paket bietet jede Nacht um 04:30 Uhr Soft-Updates (cipi api update), sodass REST-Endpunkte und MCP-Tools ohne manuellen Schritt auf dem neuesten Stand bleiben.

MCP: Cipi innerhalb von Cursor, VS Code und Claude

Der MCP-Server bei /mcp (Streambar HTTP) wird angezeigt Über 50 Werkzeuge: apps, aliases, www, databases, deploy, SSL, Basic Auth, server cockpit, .env / auth.json / app-run / deploy-config, jobs, logs and ServerStatus. Ab API 1.11.1+ ein Token mit nur mcp-access reicht für jedes MCP-Tool – REST-Fähigkeiten pro Endpunkt werden nicht überprüft /mcp.

Cursorkonfiguration in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "cipi-api": {
      "type": "http",
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer 1|your-token"
      }
    }
  }
}

VS Code (Copilot) verwendet den gleichen HTTP-Transport; Claude Code fügt den Server mit hinzu claude mcp add --transport http; Claude Desktop geht durch mcp-remote. Protokollierungstools schwärzen allgemeine Geheimnisse, bevor sie zurückkehren. Dasselbe Protokoll ist auf der App-Seite das, was die In-App-Agent MCP belichtet – zwei Oberflächen, ein Standard.

Das UI-Panel als Multiserver-Cockpit

Das GUI ist eine dünne visuelle Schicht über dem API. Es lebt darin /opt/cipi/gui, es ist Laravel 12, und es behält keine lokalen Warteschlangenarbeiter: Es authentifiziert sich beim API jedes Servers, verteilt Jobs und fragt deren Status ab. Zerlegen Sie das Panel und bauen Sie es an anderer Stelle wieder auf, ohne einen verwalteten Server zu berühren.

Ein Login, viele Server. Registrieren Sie Endpunkt + Token für Produktions-, Staging- und Client-Boxen und wechseln Sie dann zwischen ihnen. Es ist das Cockpit, das Sie benötigen, wenn Sie mehr als eine VPS haben und nicht zehn SSH-Sitzungen geöffnet haben möchten.

Für das Panel muss API eingeschaltet sein jeder Server, den Sie verwalten möchten, mit einem Bearer-Token mit voller Funktionalität (einschließlich www-manage, status-view und für App-Tools: apps-env, apps-auth, apps-artisan, apps-run, apps-deploy-config). Ohne das API ist das GUI eine leere Hülle.

Was Sie im Browser tun können

Server-Cockpit

Ab API 1.15+ / Cipi 5.0.6+ Das Panel verwaltet nicht nur Apps, sondern auch die Box.

That is the piece that makes the GUI a real alternative to a SaaS panel, without moving the source of truth off the server.

So installieren Sie sie

Erforderliche Reihenfolge: API auf jedem verwalteten Server, dann GUI überall dort, wo Sie den Browser haben möchten. Der GUI kann auf derselben Box oder auf einer kleinen dedizierten Maschine leben – es ist nur ein HTTP-Client.

# on every server you will manage
$ cipi api api.example.com
$ cipi api ssl
$ cipi api token create

# on the panel box (can be the same machine)
$ cipi gui panel.example.com
$ cipi gui ssl

cipi gui fragt nach der ersten Administrator-E-Mail-Adresse und dem ersten Passwort (mindestens 12 Zeichen, Groß- und Kleinbuchstaben, Ziffer, Sonderzeichen, keine 4 identischen Zeichen hintereinander). Config landet in /etc/cipi/gui.json. PHP-FPM, Vhost und Scheduler kommen vom Installationsprogramm: Sie booten Laravel nicht manuell.

Aktualisierungen: cipi gui update / cipi api update für das tägliche Soft-Update; upgrade für einen kompletten Umbau. cipi gui refresh-theme Kompiliert nur das Thema neu. cipi gui remove deinstalliert Vhost, Pool und Scheduler – verwaltete Server bleiben intakt. cipi gui reset-user ist der Wiederherstellungspfad, wenn ein Administrator 2FA verliert.

SSL, 2FA und IP-Whitelist

Das Panel beginnt bei HTTP: Geben Sie Let's Encrypt sofort mit aus cipi gui ssl (automatische Verlängerung, dasselbe ACME wie App-Domains). Die Anmeldung erfolgt sitzungsbasiert; Jeder Administrator kann es aktivieren TOTP 2FA (Google Authenticator, 1Password, Aegis) aus ihrem Profil – Opt-in, nicht obligatorisch.

Beschränken Sie, wer mit API und MCP sprechen kann:

$ cipi api ip-whitelist add 203.0.113.10
$ cipi api ip-whitelist set --ips=203.0.113.0/24,2001:db8::/32
$ cipi api ip-whitelist show --json

Standarddatei: /etc/cipi/api-ip-whitelist mit * (alles zulassen). Abgelehnte Kunden erhalten 403. REST-Äquivalente leben unter /api/ip-whitelist; eine Einschränkung PUT fügt die IP des Anrufers automatisch hinzu, es sei denn ensure_client_ip: false.

Anwendungsfälle: Teams, Agenturen, Hosting, KI

cipi-cli and WHMCS on the same wire

Die CLI Kunde ist eine Go-Binärdatei, die REST von Ihrem Laptop aus kommuniziert: Apps, Aliase, Bereitstellung, SSL, Datenbanken, globaler Status, Jobs. Gleiche Token, gleiche Multiserverprofile. Bevorzugen Sie das Terminal? Sie benötigen den GUI nicht. Bevorzugen Sie den Browser? Das brauchst du nicht cipi-cli. Benötigen Sie beides an verschiedenen Tagen? Gleiche API.

$ cipi-cli api token add prod
$ cipi-cli prod apps list
$ cipi-cli prod deploy myapp
$ cipi-cli status

WHMCS ist der dritte offizielle Client: Hosting-Bereitstellung ohne Composer, Drop-in in den Modulordner. Keiner der drei ersetzt cipi auf dem Server – sie remoten es.

Probieren Sie beide Erweiterungen auf einem Cipi VPS aus

Cipi bleibt kostenlos, open-source CLI. API und GUI sind Opt-in-Pakete: Installieren Sie sie, wenn Sie einen Browser, ein CI webhook oder einen KI-Agenten benötigen – und entfernen Sie sie, wenn Sie dies nicht benötigen.

wget -O - https://cipi.sh/setup.sh | bash

Häufig gestellte Fragen

Benötige ich das UI-Panel, um Cipi zu verwenden?

Nein. Cipi ist CLI-zuerst. Ohne cipi api und ohne cipi gui Der Server erledigt immer noch die gleiche Arbeit: Apps, Bereitstellungen, SSL, Backups, Firewall. Bei beiden Paketen handelt es sich seit v4.7.0 um Opt-in-Erweiterungen.

Can I use the GUI without the API?

No. The panel is an HTTP client of the REST API. Every managed server needs cipi api und einen Trägermarker mit den Fähigkeiten, die du freilegen möchtest. Ohne die API gibt es nichts zu zeigen.

Ersetzt die GUI die CLI auf dem Server?

No. Every browser action is the same cipi Befehl, der über sudo vom Panel API ausgeführt wird. Sie können weiterhin parallel über SSH arbeiten, ohne Split-Brain-Zustand.

Was ist der Unterschied zwischen REST, MCP und cipi-cli?

Die gleichen API, drei Kunden. REST ist für Skripte, CI und WHMCS. MCP ist für KI-Agenten (Cursor, VS Code, Claude). cipi-cli ist das Laptop-Terminal. Der GUI ist der vierte Client, der für Menschen gebaut wurde.

Kann ich mehrere Server von einem Panel aus verwalten?

Ja. Registrieren Sie Endpunkt und Token für jede Box und wechseln Sie mit demselben Login zwischen ihnen. Das Panel ist im Verhältnis zu Ihrer Infrastruktur zustandslos: Es speichert den Serverstatus nicht, sondern liest ihn vom API.

Lesen Sie weiter