CLI Client
Installation de cipi-cli
cipi-cli est un binaire Go autonome qui communique avec le Cipi REST API de votre
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)
CLI Client
Configuration
A profilest une connexion nommée à un Cipi serveur (API point de terminaison + 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 API jeton : 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
CLI Client
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 API point de terminaison + jeton pour un profil de serveur nommé |
| cipi-cli profils | Liste des serveurs configurés (alias : cipi-cli servers) |
| cipi-cli profils ajoutent [nom] [drapeaux] | Ajouter ou mettre à jour un profil de serveur (identique à configure --profile) |
| cipi-cli liste de profils | Liste des serveurs configurés |
| cipi-cli profils affichent [profil] | Afficher un profil de serveur, ou tous si omis |
| cipi-cli profils 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 souscipi-cli configure list, configure show,
configure default, et configure delete - préférer
profiles ou api token add pour stocker les informations d'identification.
CLI Client
apps
Gérez les applications sur votre serveur Cipi.
| Commande | Descriptif |
|---|---|
| cipi-cli liste d'applications | Lister toutes les applications |
| cipi-cli applications affichent <nom> | Afficher les détails de l'application |
| cipi-cli applications créent des [drapeaux] | Créer une nouvelle application |
| cipi-cli applications modifient <nom> [drapeaux] | Modifier une candidature |
| cipi-cli applications suppriment <nom> [-y] | Supprimer une application |
| cipi-cli applications 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 d'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
CLI Client
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 |
|---|---|
| cipi-cli domaines | Répertoriez chaque domaine et alias dans toutes les applications |
$ cipi-cli domains TYPE D'APPLICATION DE DOMAINE PHP SSL api.myapp.com alias myapp Laravel 8.5 ✓ myapp.com myapp primaire Laravel 8.5 ✓ www.myapp.com alias monapp Laravel 8.5 ✓ 3 domaines · 1 application · 3 certificats
GET /api/appssur 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.
CLI Client
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.
CLI Client
ssl
Installez Let's Encrypt certificats pour vos applications.
| Commande | Descriptif |
|---|---|
| cipi-cli ssl installer <app> | Installer le certificat Let's Encrypt (couvre le domaine principal et tous les alias) |
$ cipi-cli ssl install myapp Certificat fourni pour myapp.com
CLI Client
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 alias ajoutent <app> <domain> | Ajouter un alias de domaine |
| cipi-cli alias suppriment <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
CLI Client
db
Gérez MariaDB bases de données.
| 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.
CLI Client
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.
CLI Client
jobs
Les opérations d'écriture (créer, éditer, 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 |
|---|---|
| cipi-cli tâches 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é
CLI Client
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 le drapeau « 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
CLI Client
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 achèvement de l'installation | 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 fête d'achèvement | 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>.
CLI Client
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 releases sont automatisées via GitHub Actions. Binaires pré-construits pour Linux (amd64/arm64) et macOS (amd64/arm64) sont publiés avec des sommes de contrôle SHA-256 sur leGitHub Page des versions.
Code source
cipi-cli est open source, sous licence MIT et écrit en Go. Les contributions sont les bienvenues sur
GitHub.
CLI Client
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 CLI dépendent du serveur spécifique et des versions 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) |