Instalando cipi-cli

cipi-cli es un binario Go independiente que se comunica con 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 usarlo cipi-cli. Ver cipi api para instrucciones de configuración.

Descargar binario

Descargue la última versión para su plataforma desde Pá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 perfil es una conexión con nombre a un servidor Cipi (punto final API + 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, CLI solicita 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|token de preparación...
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 punto final + 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)
cipi-cli lista de perfiles 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
cipi-cli lista de aplicaciones Listar todas las aplicaciones
Las aplicaciones cipi-cli muestran <nombre> Mostrar detalles de la aplicación
cipi-cli aplicaciones crean [banderas] Crear una nueva aplicación
cipi-cli aplicaciones editan <nombre> [banderas] Editar una aplicación
cipi-cli aplicaciones eliminan <nombre> [-y] Eliminar una aplicación
cipi-cli aplicaciones suspenden <nombre> Desconectar una aplicación (HTTP página de mantenimiento 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 PHP versión (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 la 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 de DNS o detectar dominios que faltan 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 mi aplicación 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 datos) pero no hay 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 eliminar <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
cipi-cli lista de bases de datos Listar todas las bases de datos
cipi-cli base de datos 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,2MB

$ 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
cipi-cli estado Descripción general global: una fila por servidor (alias: status all)
cipi-cli estado <perfil> Detalles completos para un servidor
cipi-cli estado de <perfil> 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.example.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 del token 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
Los trabajos cipi-cli 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
cipi-cli actualización 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 instalación completa Detectar automáticamente el shell y finalizar la instalación
cipi-cli finalización de la 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 finalización de fiesta Imprima el script de finalización de bash en la salida estándar
cipi-cli pez 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 paquete API 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 de CLI dependen del servidor específico y de las versiones de 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)