Instalación de cipi-cli

cipi-cli es un binario Go independiente que se comunica con el Cipi REST API de su local máquina. No se requiere SSH: administre aplicaciones, bases de datos, certificados SSL e implementaciones desde cualquier terminales. Los binarios están disponibles para Linux y macOS (amd64 y arm64).

El servidor Cipi debe tener el paquete API instalado y configurado antes de usar cipi-cli. Ver cipi api para instrucciones de configuración.

Descargar binario

Descargue la última versión para su plataforma desdePágina de lanzamientos, entonces:

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

Construir desde la fuente

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

Verificar la instalación

fiesta
$ cipi-cli version
cipi-cli v1.2.5 (linux/amd64)

Configuración

A perfiles una conexión con nombre a un servidor Cipi (API punto final + token). Usar como Tantos perfiles como servidores tengas, por ejemplo.prod, staging, o client-a. Necesita la URL del punto final API y un token de Sanctum creado con cipi api token create en cada servidor.

Las credenciales se almacenan por perfil en ~/.cipi/config.json con permisos 0600. Pase siempre un nombre de perfil; si lo omite, el CLI le solicitará uno en lugar de escribiendo en silencio a default.

Configuración interactiva

Recomendado: guarde el token con api token add. Los ayudantes equivalentes son configure --profile y profiles add:

fiesta
$ cipi-cli api token add prod
Cipi API punto final: https://api.example.com
API token: 1|tu token...
Perfil de servidor "prod" guardado → ~/.cipi/config.json

$ cipi-cli api token add staging
Cipi API punto final: https://staging-api.example.com
API token: 1|stagingtoken...
Perfil de servidor "ensayo" guardado → ~/.cipi/config.json

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

Configuración no interactiva

fiesta
$ 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..."

Mostrar configuración

fiesta
$ cipi-cli profiles show prod
Perfil: prod
Punto final: https://api.example.com
Ficha: 1|a8Kz...4f2a

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

profiles

Administre múltiples conexiones de servidor desde un solo cipi-cli instalación. Un perfil equivale a un servidor. Anteponga cualquier comando con un nombre de perfil para apuntar a ese servidor, o establezca un valor predeterminado con profiles use para omitir el prefijo. Los alias servers / server trabajar igual que profiles.

Apuntando a un servidor

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

Con un servidor predeterminado configurado, puede ejecutar comandos sin el prefijo:

fiesta
$ cipi-cli profiles use prod
Perfil predeterminado establecido en "prod"

$ cipi-cli apps list
# Uses the prod profile

$ cipi-cli staging apps list
# Explicit prefix still targets staging
Comando Descripción
cipi-cli api token agregar [perfil] Agregar o actualizar API endpoint + token para un perfil de servidor con nombre
cipi-cli perfiles Lista de servidores configurados (alias: cipi-cli servers)
cipi-cli perfiles agregan [nombre] [banderas] Agregar o actualizar un perfil de servidor (igual que configure --profile)
Lista de perfiles cipi-cli Listar servidores configurados
Los perfiles cipi-cli muestran [perfil] Mostrar un perfil de servidor, o todos si se omite
Los perfiles cipi-cli utilizan <perfil> Establezca el servidor predeterminado (alias: profiles default)
cipi-cli perfiles eliminar <perfil> [-y] Eliminar un perfil de servidor local (solo credenciales; nada cambia en el servidor remoto)

api token add, profiles add, y configure aceptar lo mismo banderas:--endpoint y --token (más --profile cuando el nombre no es posicional).

Alias: servers / serverprofiles; profiles useprofiles default. Los mismos comandos de gestión son también disponible bajo cipi-cli configure list, configure show, configure default, y configure delete - preferir profiles o api token add para almacenar credenciales.

apps

Administre aplicaciones en su servidor Cipi.

Comando Descripción
Lista de aplicaciones cipi-cli Listar todas las aplicaciones
cipi-cli aplicaciones muestran <nombre> Mostrar detalles de la aplicación
cipi-cli aplicaciones crean [banderas] Crear una nueva aplicación
cipi-cli apps edit <name> [flags] Editar una aplicación
cipi-cli aplicaciones eliminan <nombre> [-y] Eliminar una aplicación
cipi-cli aplicaciones suspenden a <nombre> Desconectar una aplicación (página de mantenimiento HTTP 503) sin eliminarla
cipi-cli aplicaciones reactivan <nombre> Restaurar una aplicación suspendida al servicio normal
cipi-cli registros de aplicaciones <nombre> [banderas] Leer registros de aplicaciones paginadas (nginx, PHP-FPM, Laravel, trabajador, implementación)

Crear banderas

--user Nombre de la aplicación (utilizado como usuario de Linux y nombre de la base de datos)
--domain Dominio principal para la aplicación
--php Versión PHP (p. ej. 8.5)
--repository URL del repositorio de Git
--branch Rama de Git para implementar desde
--custom Cree una aplicación personalizada (no Laravel) con htdocs implementar
--docroot Raíz del documento relativa a htdocs (solo aplicaciones personalizadas)

Editar banderas

--php Cambiar versión PHP
--repository Actualizar la URL del repositorio de Git
--branch Cambiar rama de implementación
--domain Cambie el nombre del dominio principal (requiere Cipi 4.6.2+ y API 1.9.0+)

Banderas de registros

--type Filtro de tipo de registro: all (predeterminado), nginx, php, worker, deploy, o laravel
--page Número de página, comenzando en 1 para las líneas más recientes (predeterminado 1)
--per-page Líneas por archivo de registro por página (predeterminado 50, máximo 1000; requiere API 1.11.9+)

Ejemplos

fiesta
# 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

Enumere todos los dominios principales y alias de todas las aplicaciones del servidor en una sola tabla: el control remoto contraparte de cipi domains en el servidor. Útil para auditar la cobertura DNS o detectar dominios a los que les falta SSL antes de la renovación de un certificado.

Comando Descripción
cipi-cli dominios Enumere todos los dominios y alias en todas las aplicaciones
fiesta
$ cipi-cli domains
  TIPO DE TIPO DE APLICACIÓN DE DOMINIO PHP SSL
  api.myapp.com alias de myapp Laravel 8.5 ✓
  myapp.com myapp principal Laravel 8.5 ✓
  www.myapp.com alias de myapp Laravel 8.5 ✓

3 dominios · 1 aplicación · 3 certificados
El mapa de dominio global se construye a partir de GET /api/apps en el servidor. requiere Cipi 4.5.5+ en el servidor (para el subyacente cipi domains data) pero sin una versión mínima del paquete API.

deploy

Active implementaciones, retroceda a la versión anterior o desbloquee una implementación atascada.

Comando Descripción
cipi-cli implementar <aplicación> Activar una implementación sin tiempo de inactividad
cipi-cli implementar reversión <aplicación> [-y] Retroceder a la versión anterior
cipi-cli implementar desbloquear <aplicación> Desbloquear una implementación atascada
fiesta
$ cipi-cli deploy myapp
Implementando mi aplicación...
Trabajo de votación #42... completado
Implementado para la versión 14. Cero tiempo de inactividad.

$ cipi-cli deploy rollback myapp
Regresado a la versión n.° 13.

ssl

Instale certificados Let's Encrypt para sus aplicaciones.

Comando Descripción
cipi-cli ssl instalar <aplicación> Instale el certificado Let's Encrypt (cubre el dominio principal y todos los alias)
fiesta
$ cipi-cli ssl install myapp
Certificado proporcionado para myapp.com

aliases

Administrar alias de dominio para una aplicación.

Comando Descripción
cipi-cli lista de alias <aplicación> Enumerar todos los alias de una aplicación
cipi-cli alias agregan <aplicación> <dominio> Agregar un alias de dominio
cipi-cli alias eliminan <aplicación> <dominio> [-y] Eliminar un alias de dominio
fiesta
$ cipi-cli aliases add myapp www.myapp.com
Alias www.myapp.com agregado a myapp.

$ 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

Administrar MariaDB bases de datos.

Comando Descripción
Lista de bases de datos cipi-cli Listar todas las bases de datos
cipi-cli db crear <nombre> Crear una base de datos
cipi-cli db eliminar <nombre> [-y] Eliminar una base de datos
cipi-cli copia de seguridad de base de datos <nombre> Crear una copia de seguridad de la base de datos
cipi-cli restauración de base de datos <nombre> [-y] Restaurar la base de datos desde la copia de seguridad
cipi-cli contraseña de base de datos <nombre> [-y] Regenerar contraseña y actualizar .env
fiesta
$ cipi-cli db list
  NOMBRE TAMAÑO
  miaplicación 24,5 MB
  blog 8,2 MB

$ cipi-cli db backup myapp
Copia de seguridad creada: myapp_20260402_143022.sql.gz

$ cipi-cli db restore myapp -y
Base de datos restaurada exitosamente.

status

Lea la misma instantánea del host que cipi status en el servidor - a través de GET /api/status. desnudo status muestra una visión global (una fila por servidor configurado). Pase un nombre de perfil (o utilice un prefijo de perfil) para obtener todos los detalles.

Comando Descripción
Estado cipi-cli Descripción general global: una fila por servidor (alias: status all)
cipi-cli estado <perfil> Detalles completos para un servidor
cipi-cli <perfil> estado Misma vista detallada, mediante prefijo de perfil

Columnas globales: NAME, IP, CPU, RAM, HDD, APPS, SVC, CIPI. El perfil predeterminado es marcado con *.

fiesta
$ cipi-cli status
  NOMBRE IP CPU RAM HDD APLICACIONES SVC CIPI
  producto* 203.0.113.10 12% 48% (3840M) 42G/80G 53% 3 8/8 bien 4.6.3
  puesta en escena 203.0.113.20 4% 31% (2048M) 18G/40G 45% 1 8/8 ok 4.6.3

  * perfil predeterminado
  Detalle: cipi-cli estado <nombre>

$ cipi-cli status prod
Estado del servidor: producción
  Punto final https://api.ejemplo.com
  Nombre de host prod-01
  IP 203.0.113.10
  SO Ubuntu 24.04
  Tiempo de actividad 12 días
  Cipi 4.6.3
CPU 12%
  RAM 3840/8192MB (48%)
  Disco duro 42G/80G (53%)
  Aplicaciones 3
Requiere la habilidad de ficha API status-view y GET /api/status en el servidor (API 1.11.6+). Crear o rotar el ficha con cipi api token create e incluir status-view.

jobs

Las operaciones de escritura (crear, editar, eliminar, implementar, SSL, etc.) son asincrónicas en Cipi API. El CLI sondea automáticamente la finalización del trabajo y muestra una rueda giratoria mientras espera. Si prefieres manejar sondeo manualmente, utilice el jobs comandos.

Comando Descripción
cipi-cli trabajos muestran <id> Mostrar estado del trabajo
cipi-cli trabajos en espera <id> Esperar a que se complete un trabajo (bloqueo)
fiesta
$ cipi-cli jobs show 42
Trabajo n.° 42: implementar myapp: completado

$ cipi-cli jobs wait 43
Esperando el trabajo #43... completado

update

Actualizar cipi-cli a la versión más reciente de GitHub. El comando elige el semver más alto entre los lanzamientos publicados (no el indicador “más reciente” de GitHub, que puede apunta a una etiqueta anterior), descarga el binario coincidente para su plataforma, verifica su SHA-256 suma de comprobación y reemplaza el binario en ejecución en su lugar. Alias: self-update, upgrade.

Comando Descripción
Actualización cipi-cli Actualizar al semestre más alto publicado
cipi-cli actualización --force Reinstale incluso si ya está actualizado (permite degradar)
fiesta
$ cipi-cli update
Descargando cipi-cli v1.2.5...
Suma de comprobación verificada. Actualizado a 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

Instalar el autocompletado de shell para cipi-cli. El camino recomendado es completion install, que detecta su shell, escribe el script de finalización y enlaza en su archivo rc (idempotente).

Comando Descripción
cipi-cli finalización de la instalación Detectar automáticamente el shell y finalizar la instalación
cipi-cli finalización de instalación --shell zsh Instalar para un shell específico (zsh, bash, o fish)
cipi-cli finalización zsh Imprima el script de finalización de zsh en stdout
cipi-cli fiesta de finalización Imprima el script de finalización de bash en la salida estándar
cipi-cli pescado de finalización Imprima el script de finalización del pescado en la salida estándar
fiesta
$ cipi-cli completion install
Instalando finalización de zsh...
Finalización instalada → ~/.cipi/completions/cipi-cli.zsh
Conectado a ~/.zshrc

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

Para zsh y bash, el script está escrito en ~/.cipi/completions/ y una línea fuente es adjunto a su archivo rc de shell. Para el pescado, el guión va a ~/.config/fish/completions/ (cargado automáticamente). Vuelva a cargar el shell después, luego intente cipi-cli <TAB>.


Banderas globales

Estas banderas están disponibles en todos los comandos.

--json Salida en formato JSON: útil para secuencias de comandos y canalizaciones CI/CD
--no-color Deshabilitar la salida en color
--help Mostrar ayuda para cualquier comando
fiesta
# JSON output for scripting
$ cipi-cli apps list --json
[{"nombre":"miaplicación","dominio":"miaplicación.com","php":"8.5"}, ...]

# Pipe to jq for filtering
$ cipi-cli apps list --json | jq '.[].name'
"miaplicación"
"blog"

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

Lanzamientos

Los lanzamientos se automatizan mediante GitHub Acciones. Binarios prediseñados para Linux (amd64/arm64) y macOS (amd64/arm64) se publican con sumas de comprobación SHA-256 en el GitHub Página de lanzamientos.

código fuente

cipi-cli es open source, tiene licencia del MIT y está escrito en Go. Se aceptan contribuciones en GitHub.


Requisitos

El servidor Cipi debe tener la API paquete instalado y configurado antes de usar cipi-cli:

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

Las nuevas versiones de la aplicación PHP deben ser 8.3, 8.4, o 8.5 (Cipi 4.5.4+). Algunas funciones CLI dependen del servidor específico y de las versiones API:

Característica Mínimo Cipi Mínimo API
Suspender/reanudar (apps suspend) 4.5.8 1.8.1
Cambiar el nombre del dominio principal (apps edit --domain) 4.6.2 1.9.0
Registros de aplicaciones (apps logs) 1.11.9
Estado del servidor (status) GET /api/status + status-view (1.11.6+)
Mapa de dominio global (domains) 4.5.5 — (construido a partir de /api/apps)