CLIClient
Installation de cipi-cli
cipi-cli est un binaire Go autonome qui communique avec le Cipi REST API de votre local
machine. Aucun SSH requis : gérez les applications, les bases de données, les certificats SSL et les déploiements à partir de n'importe quel
borne. Les binaires sont disponibles pour Linux et macOS (amd64 et arm64).
cipi-cli. Voir cipi api pour
instructions de configuration.
Télécharger le binaire
Téléchargez la dernière version pour votre plateforme à partir du Page des versions, alors :
chmod +x cipi-cli-* sudo mv cipi-cli-* /usr/local/bin/cipi-cli
Construire à partir des sources
git clone https://github.com/cipi-sh/cli.git cd cli make build sudo make install
Vérifier l'installation
$ cipi-cli version cipi-cli v1.2.5 (linux/amd64)
CLIClient
Configuration
A profil est une connexion nommée à un serveur Cipi (point de terminaison API + jeton). Utiliser comme
de nombreux profils car vous avez des serveurs - par exemple prod, staging, ou
client-a. Vous avez besoin de l'URL du point de terminaison API et d'un jeton Sanctum créé avec
cipi api token create sur chaque serveur.
Les informations d'identification sont stockées par profil dans ~/.cipi/config.json avec autorisations
0600. Transmettez toujours un nom de profil - si vous l'omettez, le CLI vous en demande un au lieu de
écrivant silencieusement à default.
Configuration interactive
Recommandé : stockez le jeton avec api token add. Les aides équivalentes sont
configure --profile et profiles add:
$ cipi-cli api token add prod Cipi API point de terminaison : https://api.example.com API jeton : 1|votre jeton... Profil de serveur "prod" enregistré → ~/.cipi/config.json $ cipi-cli api token add staging Cipi API point de terminaison : https://staging-api.example.com Jeton API : 1|jeton de mise en scène... Profil de serveur "staging" enregistré → ~/.cipi/config.json # Same flow via configure / profiles add $ cipi-cli configure --profile prod $ cipi-cli profiles add staging
Configuration non interactive
$ 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..."
Afficher la configuration
$ cipi-cli profiles show prod Profil : prod Point de terminaison : https://api.example.com Jeton : 1|a8Kz...4f2a $ cipi-cli profiles show # Shows all configured server profiles
CLIClient
profiles
Gérez plusieurs connexions de serveur à partir d'un seul cipi-cli installation. Un profil
équivaut à un serveur. Préfixez n'importe quelle commande avec un nom de profil pour cibler ce serveur, ou définissez un nom par défaut
avec profiles use pour omettre le préfixe. Les pseudonymes servers /
server fonctionne de la même manière que profiles.
Cibler un serveur
$ cipi-cli prod apps list $ cipi-cli staging apps show myapp $ cipi-cli prod deploy myapp $ cipi-cli prod ssl install myapp
Avec un serveur par défaut défini, vous pouvez exécuter des commandes sans le préfixe :
$ cipi-cli profiles use prod Profil par défaut défini sur "prod" $ cipi-cli apps list # Uses the prod profile $ cipi-cli staging apps list # Explicit prefix still targets staging
| Commande | Descriptif |
|---|---|
| cipi-cli api jeton ajouter [profil] | Ajouter ou mettre à jour le point de terminaison API + le jeton pour un profil de serveur nommé |
| cipi-cli profils | Liste des serveurs configurés (alias : cipi-cli servers) |
| Les profils cipi-cli ajoutent [nom] [drapeaux] | Ajouter ou mettre à jour un profil de serveur (identique à configure --profile) |
| cipi-cli liste des profils | Liste des serveurs configurés |
| Les profils cipi-cli affichent [profil] | Afficher un profil de serveur, ou tous si omis |
| Les profils cipi-cli utilisent <profil> | Définir le serveur par défaut (alias : profiles default) |
| cipi-cli profils supprimer <profil> [-y] | Supprimer un profil de serveur local (identifiants uniquement – rien ne change sur le serveur distant) |
api token add, profiles add, et configure accepte la même chose
drapeaux : --endpoint et --token (plus --profile quand le nom
n’est pas positionnel).
servers / server → profiles;
profiles use → profiles default. Les mêmes commandes de gestion sont
également disponible sous cipi-cli configure list, configure show,
configure default, et configure delete - préférer
profiles ou api token add pour stocker les informations d'identification.
CLIClient
apps
Gérez les applications sur votre serveur Cipi.
| Commande | Descriptif |
|---|---|
| cipi-cli liste d'applications | Lister toutes les applications |
| Les applications cipi-cli affichent <nom> | Afficher les détails de l'application |
| Les applications cipi-cli créent [drapeaux] | Créer une nouvelle application |
| Les applications cipi-cli modifient <nom> [drapeaux] | Modifier une candidature |
| cipi-cli applications suppriment <nom> [-y] | Supprimer une application |
| Les applications cipi-cli suspendent <nom> | Mettre une application hors ligne (page de maintenance HTTP 503) sans la supprimer |
| cipi-cli applications réactivent <nom> | Restaurer une application suspendue au service normal |
| cipi-cli journaux des applications <nom> [drapeaux] | Lire les journaux d'applications paginés (nginx, PHP-FPM, Laravel, travailleur, déploiement) |
Créer des drapeaux
Modifier les drapeaux
Indicateurs de journaux
Exemples
# 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
CLIClient
domains
Répertoriez chaque domaine principal et alias de toutes les applications du serveur dans une seule table : la table distante.
contrepartie de cipi domains sur le serveur.
Utile pour auditer la couverture DNS ou repérer les domaines manquants SSL avant le renouvellement d'un certificat.
| Commande | Descriptif |
|---|---|
| Domaines cipi-cli | Répertoriez chaque domaine et alias dans toutes les applications |
$ cipi-cli domains TYPE DE TYPE D'APPLICATION DE DOMAINE PHP SSL api.myapp.com, alias de mon application Laravel 8.5 ✓ myapp.com myapp primaire Laravel 8.5 ✓ www.myapp.com alias de mon application Laravel 8.5 ✓ 3 domaines · 1 application · 3 certificats
GET /api/apps sur le serveur. Cela nécessite
Cipi 4.5.5+ sur le serveur (pour le sous-jacent
cipi domains données) mais pas de version minimale du package API.
CLIClient
deploy
Déclenchez des déploiements, revenez à la version précédente ou débloquez un déploiement bloqué.
| Commande | Descriptif |
|---|---|
| cipi-cli déployer <app> | Déclenchez un déploiement sans temps d'arrêt |
| cipi-cli déployer la restauration <app> [-y] | Retour à la version précédente |
| cipi-cli déployer déverrouiller <app> | Déverrouiller un déploiement bloqué |
$ cipi-cli deploy myapp Déploiement de monapplication... Travail de sondage n°42... terminé Déployé vers la version #14. Zéro temps d'arrêt. $ cipi-cli deploy rollback myapp Retour à la version n°13.
CLIClient
ssl
Installez les certificats Let's Encrypt pour vos applications.
| Commande | Descriptif |
|---|---|
| cipi-cli ssl installer <application> | Installez le certificat Let's Encrypt (couvre le domaine principal et tous les alias) |
$ cipi-cli ssl install myapp Certificat fourni pour myapp.com
CLIClient
aliases
Gérer les alias de domaine pour une application.
| Commande | Descriptif |
|---|---|
| cipi-cli liste d'alias <app> | Répertorier tous les alias d'une application |
| cipi-cli les alias ajoutent <app> <domain> | Ajouter un alias de domaine |
| cipi-cli alias supprime <app> <domain> [-y] | Supprimer un alias de domaine |
$ cipi-cli aliases add myapp www.myapp.com Alias www.myapp.com ajouté à myapp. $ cipi-cli aliases list myapp www.monapp.com api.myapp.com # Re-run ssl install to include new aliases in the certificate $ cipi-cli ssl install myapp
CLIClient
db
Gérer les bases de données MariaDB.
| Commande | Descriptif |
|---|---|
| cipi-cli liste de bases de données | Lister toutes les bases de données |
| cipi-cli base de données créer <nom> | Créer une base de données |
| cipi-cli suppression de base de données <nom> [-y] | Supprimer une base de données |
| cipi-cli sauvegarde de base de données <nom> | Créer une sauvegarde de base de données |
| cipi-cli restauration de base de données <nom> [-y] | Restaurer la base de données à partir d'une sauvegarde |
| cipi-cli mot de passe de base de données <nom> [-y] | Régénérer le mot de passe et mettre à jour .env |
$ cipi-cli db list TAILLE DU NOM monapplication 24,5 Mo blog 8,2 Mo $ cipi-cli db backup myapp Sauvegarde créée : myapp_20260402_143022.sql.gz $ cipi-cli db restore myapp -y Base de données restaurée avec succès.
CLIClient
status
Lisez le même instantané d'hôte que cipi status sur
le serveur - via GET /api/status. Nu status affiche un aperçu global
(une ligne par serveur configuré). Transmettez un nom de profil (ou utilisez un préfixe de profil) pour obtenir tous les détails.
| Commande | Descriptif |
|---|---|
| Statut cipi-cli | Aperçu global : une ligne par serveur (alias : status all) |
| cipi-cli statut <profil> | Tous les détails pour un serveur |
| cipi-cli Statut <profil> | Même vue détaillée, via le préfixe de profil |
Colonnes globales : NAME, IP, CPU, RAM,
HDD, APPS, SVC, CIPI. Le profil par défaut est
marqué avec *.
$ cipi-cli status NOM IP CPU RAM HDD APPLICATIONS SVC CIPI prod* 203.0.113.10 12 % 48 % (3840M) 42G/80G 53 % 3 8/8 ok 4.6.3 mise en scène 203.0.113.20 4% 31% (2048M) 18G/40G 45% 1 8/8 ok 4.6.3 * profil par défaut Détail : cipi-cli statut <nom> $ cipi-cli status prod État du serveur – prod Point de terminaison https://api.example.com Nom d'hôte prod-01 IP203.0.113.10 Système d'exploitation Ubuntu 24.04 Disponibilité 12 jours Cipi 4.6.3 Processeur 12 % RAM 3840/8192 Mo (48%) Disque dur 42G/80G (53%) Applications 3
status-view et
GET /api/status sur le serveur (API 1.11.6+). Créez ou faites pivoter le
jeton avec cipi api token create et inclure status-view.
CLIClient
jobs
Les opérations d'écriture (créer, modifier, supprimer, déployer, SSL, etc.) sont asynchrones sur le Cipi API. Le CLI
interroge automatiquement l'achèvement du travail et affiche une double flèche en attendant. Si vous préférez gérer
interrogation manuelle, utilisez le jobs commandes.
| Commande | Descriptif |
|---|---|
| Les tâches cipi-cli affichent <id> | Afficher l'état du travail |
| cipi-cli tâches en attente <id> | Attendre la fin d'un travail (blocage) |
$ cipi-cli jobs show 42 Tâche n°42 : déployer myapp – terminé $ cipi-cli jobs wait 43 En attente du travail n°43... terminé
CLIClient
update
Mise à jour cipi-cli à la dernière version de GitHub. La commande sélectionne le
semver le plus élevé parmi les versions publiées (pas l'indicateur « dernière » de GitHub, qui peut
pointez sur une balise plus ancienne), télécharge le binaire correspondant à votre plate-forme, vérifie son SHA-256
somme de contrôle et remplace le binaire en cours d'exécution en place. Alias : self-update,
upgrade.
| Commande | Descriptif |
|---|---|
| cipi-cli mise à jour | Mise à jour au semver publié le plus élevé |
| cipi-cli mise à jour --force | Réinstaller même s'il est déjà à jour (permet de rétrograder) |
$ cipi-cli update Téléchargement de cipi-cli v1.2.5... Somme de contrôle vérifiée. Mis à jour vers la 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
CLIClient
completion
Installer la saisie semi-automatique du shell pour cipi-cli. Le chemin recommandé est
completion install, qui détecte votre shell, écrit le script d'achèvement et hooke
dans votre fichier rc (idempotent).
| Commande | Descriptif |
|---|---|
| cipi-cli installation terminée | Détection automatique du shell et achèvement de l'installation |
| cipi-cli achèvement de l'installation --shell zsh | Installer pour un shell spécifique (zsh, bash, ou
fish) |
| cipi-cli achèvement zsh | Imprimez le script d'achèvement zsh sur la sortie standard |
| cipi-cli coup de fin | Imprimer le script de complétion bash sur la sortie standard |
| cipi-cli poisson d'achèvement | Imprimer le script d'achèvement du poisson sur la sortie standard |
$ cipi-cli completion install Installation de l'achèvement de zsh... Achèvement installé → ~/.cipi/completions/cipi-cli.zsh Connecté à ~/.zshrc # Or pin a shell explicitly $ cipi-cli completion install --shell bash
Pour zsh et bash, le script est écrit sous ~/.cipi/completions/ et une ligne source est
ajouté à votre fichier shell rc. Pour le poisson, le script va à
~/.config/fish/completions/ (chargé automatiquement). Rechargez ensuite le shell, puis essayez
cipi-cli <TAB>.
CLIClient
Drapeaux mondiaux
Ces drapeaux sont disponibles sur toutes les commandes.
# JSON output for scripting $ cipi-cli apps list --json [{"name": "monapplication", "domaine": "monapplication.com", "php": "8.5"}, ...] # Pipe to jq for filtering $ cipi-cli apps list --json | jq '.[].name' "monapplication" "blog" # Help for a specific command $ cipi-cli apps create --help
Sorties
Les versions sont automatisées via les actions GitHub. Binaires pré-construits pour Linux (amd64/arm64) et macOS (amd64/arm64) sont publiés avec des sommes de contrôle SHA-256 sur le GitHub Page des versions.
Code source
cipi-cli est open source, sous licence MIT et écrit en Go. Les contributions sont les bienvenues sur
GitHub.
CLIClient
Exigences
Le serveur Cipi doit avoir le Forfait API installé et configuré
avant d'utiliser cipi-cli:
$ cipi api <domain> $ cipi api ssl $ cipi api token create
Les nouvelles versions de l'application PHP doivent être 8.3, 8.4, ou 8.5 (Cipi 4.5.4+). Certaines fonctionnalités de CLI dépendent d'un serveur spécifique et des versions de API :
| Caractéristique | Minimum Cipi | Minimum API |
|---|---|---|
Suspendre/reprendre la suspension (apps suspend) |
4.5.8 | 1.8.1 |
Renommer le domaine principal (apps edit --domain) |
4.6.2 | 1.9.0 |
Journaux d'applications (apps logs) |
— | 1.11.9 |
État du serveur (status) |
— | GET /api/status + status-view (1.11.6+) |
Carte de domaine globale (domains) |
4.5.5 | — (construit à partir de /api/apps) |