Instalando cipi-cli

cipi-cli é um binário Go independente que se comunica com o Cipi REST API do seu local máquina. Não é necessário SSH – gerencie aplicativos, bancos de dados, certificados SSL e implantações de qualquer terminal. Os binários estão disponíveis para Linux e macOS (amd64 e arm64).

O servidor Cipi deve ter o pacote API instalado e configurado antes de usar cipi-cli. Veja cipi api para instruções de configuração.

Baixar binário

Baixe a versão mais recente para sua plataforma no Página de lançamentos, então:

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

Construir a partir da fonte

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

Verifique a instalação

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

Configuração

A perfil é uma conexão nomeada para um servidor Cipi (endpoint API + token). Usar como tantos perfis quanto você tiver servidores - por exemplo prod, staging, ou client-a. Você precisa do URL do endpoint API e de um token Sanctum criado com cipi api token create em cada servidor.

As credenciais são armazenadas por perfil em ~/.cipi/config.json com permissões 0600. Sempre passe um nome de perfil — se você omitir, o CLI solicitará um em vez de escrevendo silenciosamente para default.

Configuração interativa

Recomendado: armazene o token com api token add. Ajudantes equivalentes são configure --profile e profiles add:

festa
$ cipi-cli api token add prod
Ponto de extremidade Cipi API: https://api.example.com
API token: 1|seutoken...
Perfil do servidor "prod" salvo → ~/.cipi/config.json

$ cipi-cli api token add staging
Ponto de extremidade Cipi API: https://staging-api.example.com
API token: 1|stagingtoken...
"Teste" do perfil do servidor salvo → ~/.cipi/config.json

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

Configuração não interativa

festa
$ 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 configuração

festa
$ cipi-cli profiles show prod
Perfil: produção
Ponto final: https://api.example.com
Ficha: 1|a8Kz...4f2a

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

profiles

Gerencie múltiplas conexões de servidor a partir de um único cipi-cli instalação. Um perfil é igual a um servidor. Prefixe qualquer comando com um nome de perfil para direcionar esse servidor ou defina um padrão com profiles use para omitir o prefixo. Os apelidos servers / server funciona da mesma forma que profiles.

Direcionando um servidor

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

Com um servidor padrão definido, você pode executar comandos sem o prefixo:

festa
$ cipi-cli profiles use prod
Perfil padrão definido como "prod"

$ cipi-cli apps list
# Uses the prod profile

$ cipi-cli staging apps list
# Explicit prefix still targets staging
Comando Descrição
cipi-cli api token adicionar [perfil] Adicionar ou atualizar endpoint + token API para um perfil de servidor nomeado
cipi-cli perfis Listar servidores configurados (alias: cipi-cli servers)
cipi-cli perfis adicionam [nome] [sinalizadores] Adicione ou atualize um perfil de servidor (igual a configure --profile)
Lista de perfis cipi-cli Listar servidores configurados
cipi-cli perfis mostram [perfil] Mostrar um perfil de servidor ou todos, se omitido
Os perfis cipi-cli usam <perfil> Defina o servidor padrão (alias: profiles default)
cipi-cli perfis excluem <perfil> [-y] Exclua um perfil de servidor local (somente credenciais – nada muda no servidor remoto)

api token add, profiles adde configure aceite o mesmo bandeiras: --endpoint e --token (mais --profile quando o nome não é posicional).

Aliases: servers / serverprofiles; profiles useprofiles default. Os mesmos comandos de gerenciamento são também disponível em cipi-cli configure list, configure show, configure defaulte configure delete - prefiro profiles ou api token add para armazenar credenciais.

apps

Gerencie aplicativos em seu servidor Cipi.

Comando Descrição
Lista de aplicativos cipi-cli Listar todos os aplicativos
cipi-cli aplicativos mostram <nome> Mostrar detalhes do aplicativo
cipi-cli aplicativos criam [sinalizações] Crie um novo aplicativo
cipi-cli aplicativos editam <nome> [sinalizadores] Editar um aplicativo
cipi-cli aplicativos excluem <nome> [-y] Excluir um aplicativo
cipi-cli aplicativos suspendem <nome> Coloque um aplicativo off-line (página de manutenção HTTP 503) sem excluí-lo
cipi-cli aplicativos cancelam a suspensão de <nome> Restaure um aplicativo suspenso ao serviço normal
cipi-cli registros de aplicativos <nome> [sinalizadores] Ler logs de aplicativos paginados (nginx, PHP-FPM, Laravel, trabalhador, implantação)

Criar bandeiras

--user Nome do aplicativo (usado como usuário Linux e nome do banco de dados)
--domain Domínio principal do aplicativo
--php Versão PHP (por exemplo, 8.5)
--repository URL do repositório Git
--branch Branch Git para implantar
--custom Crie um aplicativo personalizado (não Laravel) com htdocs implantar
--docroot Raiz do documento relativa a htdocs(somente aplicativos personalizados)

Editar sinalizadores

--php Alterar versão de PHP
--repository Atualizar URL do repositório Git
--branch Alterar ramificação de implantação
--domain Renomeie o domínio principal (requer Cipi 4.6.2+ e API 1.9.0+)

Sinalizadores de registros

--type Filtro de tipo de registro: all (padrão), nginx, php, worker, deploy, ou laravel
--page Número da página, começando em 1 para as linhas mais recentes (padrão 1)
--per-page Linhas por arquivo de log por página (padrão 50, máx. 1000; requer API 1.11.9+)

Exemplos

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

Liste todos os domínios primários e alias de todos os aplicativos no servidor em uma única tabela — a remota contrapartida de cipi domains no servidor. Útil para auditar a cobertura de DNS ou detectar domínios faltando SSL antes de uma renovação de certificado.

Comando Descrição
cipi-cli domínios Liste todos os domínios e alias em todos os aplicativos
festa
$ cipi-cli domains
  TIPO DE APLICATIVO DE DOMÍNIO PHP SSL
  api.myapp.com alias do meu aplicativo Laravel 8.5 ✓
  myapp.com myapp primário Laravel 8,5 ✓
  www.myapp.com alias do meu aplicativo Laravel 8.5 ✓

3 domínios · 1 aplicativo · 3 certificados
O mapa de domínio global é construído a partir GET /api/apps no servidor. Requer Cipi 4.5.5+ no servidor (para o subjacente cipi domains data), mas sem versão mínima do pacote API.

deploy

Acione implantações, reverta para a versão anterior ou desbloqueie uma implantação travada.

Comando Descrição
cipi-cli implantar <aplicativo> Acione uma implantação sem tempo de inatividade
cipi-cli implantar reversão <app> [-y] Reverter para a versão anterior
cipi-cli desbloqueio de implantação <app> Desbloqueie uma implantação travada
festa
$ cipi-cli deploy myapp
Implantando meu aplicativo...
Trabalho de votação #42... concluído
Implantado na versão #14. Tempo de inatividade zero.

$ cipi-cli deploy rollback myapp
Revertido para a versão #13.

ssl

Instale certificados Let's Encrypt para seus aplicativos.

Comando Descrição
cipi-cli ssl instalar <aplicativo> Instale o certificado Let's Encrypt (abrange o domínio primário e todos os aliases)
festa
$ cipi-cli ssl install myapp
Certificado provisionado para myapp.com

aliases

Gerenciar aliases de domínio para um aplicativo.

Comando Descrição
cipi-cli lista de aliases <aplicativo> Listar todos os aliases de um aplicativo
cipi-cli aliases adicionam <app> <domínio> Adicione um alias de domínio
cipi-cli aliases removem <app> <domínio> [-y] Remover um alias de domínio
festa
$ cipi-cli aliases add myapp www.myapp.com
Alias www.myapp.com adicionado 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

Gerenciar bancos de dados MariaDB.

Comando Descrição
cipi-cli lista de banco de dados Listar todos os bancos de dados
cipi-cli banco de dados cria <nome> Crie um banco de dados
cipi-cli banco de dados excluir <nome> [-y] Excluir um banco de dados
cipi-cli backup de banco de dados <nome> Crie um backup de banco de dados
cipi-cli restauração de banco de dados <nome> [-y] Restaurar banco de dados do backup
cipi-cli senha do banco de dados <nome> [-y] Regenerar senha e atualizar .env
festa
$ cipi-cli db list
  TAMANHO DO NOME
  meu aplicativo 24,5 MB
  blog 8,2 MB

$ cipi-cli db backup myapp
Backup criado: myapp_20260402_143022.sql.gz

$ cipi-cli db restore myapp -y
Banco de dados restaurado com sucesso.

status

Leia o mesmo instantâneo do host que cipi status ligado o servidor - através GET /api/status. Nu status mostra uma visão geral global (uma linha por servidor configurado). Passe um nome de perfil (ou use um prefixo de perfil) para obter detalhes completos.

Comando Descrição
Status cipi-cli Visão geral global — uma linha por servidor (alias: status all)
cipi-cli status <perfil> Detalhes completos para um servidor
cipi-cli status de <perfil> Mesma visualização de detalhes, via prefixo de perfil

Colunas globais: NAME, IP, CPU, RAM, HDD, APPS, SVC, CIPI. O perfil padrão é marcado com *.

festa
$ cipi-cli status
  NOME IP CPU RAM HDD APLICATIVOS SVC CIPI
  produção* 203.0.113.10 12% 48% (3840M) 42G/80G 53% 3 8/8 ok 4.6.3
  teste 203.0.113.20 4% 31% (2048M) 18G/40G 45% 1 8/8 ok 4.6.3

  * perfil padrão
  Detalhe: cipi-cli status <nome>

$ cipi-cli status prod
Status do servidor – produção
  Ponto final https://api.example.com
  Nome do host prod-01
  IP203.0.113.10
  SO Ubuntu 24.04
  Tempo de atividade 12 dias
  Cipi 4.6.3
  CPU 12%
  RAM 3840/8192 MB (48%)
  HDD 42G/80G (53%)
  Aplicativos 3
Requer a habilidade de token API status-view e GET /api/status no servidor (API 1.11.6+). Crie ou gire o token com cipi api token create e incluir status-view.

jobs

As operações de gravação (criar, editar, excluir, implantar, SSL, etc.) são assíncronas no Cipi API. O CLI pesquisa automaticamente a conclusão do trabalho e exibe um botão giratório enquanto espera. Se você preferir lidar sondagem manualmente, use o jobs comandos.

Comando Descrição
cipi-cli trabalhos mostram <id> Mostrar status do trabalho
cipi-cli trabalhos aguardam <id> Aguarde a conclusão de um trabalho (bloqueio)
festa
$ cipi-cli jobs show 42
Trabalho nº 42: implantar myapp – concluído

$ cipi-cli jobs wait 43
Esperando pelo trabalho #43... concluído

update

Atualizar cipi-cli para a versão mais recente de GitHub. O comando escolhe o semestre mais alto entre os lançamentos publicados (não o sinalizador “mais recente” de GitHub, que pode apontar para uma tag mais antiga), baixa o binário correspondente para sua plataforma, verifica seu SHA-256 soma de verificação e substitui o binário em execução no lugar. Aliases: self-update, upgrade.

Comando Descrição
cipi-cli atualização Atualização para o semver mais publicado
cipi-cli atualização --force Reinstale mesmo que já esteja atualizado (permite downgrade)
festa
$ cipi-cli update
Baixando cipi-cli v1.2.5...
Soma de verificação verificada. Atualizado para 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

Instale o preenchimento automático do shell para cipi-cli. O caminho recomendado é completion install, que detecta seu shell, grava o script de conclusão e conecta em seu arquivo rc (idempotente).

Comando Descrição
cipi-cli conclusão da instalação Detectar automaticamente o shell e concluir a instalação
cipi-cli conclusão da instalação --shell zsh Instalar para um shell específico (zsh, bash, ou fish)
cipi-cli conclusão zsh Imprima o script de conclusão zsh para stdout
cipi-cli festa de conclusão Imprima o script de conclusão do bash em stdout
cipi-cli peixe de conclusão Imprima o script de conclusão do peixe em stdout
festa
$ cipi-cli completion install
Instalando a conclusão do zsh...
Conclusão instalada → ~/.cipi/completions/cipi-cli.zsh
Conectado em ~/.zshrc

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

Para zsh e bash, o script é escrito em ~/.cipi/completions/ e uma linha de origem é anexado ao seu arquivo shell rc. Para peixes, o script vai para ~/.config/fish/completions/ (carregado automaticamente). Recarregue o shell depois e tente cipi-cli <TAB>.


Bandeiras Globais

Esses sinalizadores estão disponíveis em todos os comandos.

--json Saída no formato JSON — útil para scripts e pipelines CI/CD
--no-color Desativar saída colorida
--help Mostrar ajuda para qualquer comando
festa
# JSON output for scripting
$ cipi-cli apps list --json
[{"nome":"meuapp","domínio":"meuapp.com","php":"8.5"}, ...]

# Pipe to jq for filtering
$ cipi-cli apps list --json | jq '.[].name'
"meu aplicativo"
"blogue"

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

Lançamentos

As liberações são automatizadas por meio de ações GitHub. Binários pré-construídos para Linux (amd64/arm64) e macOS (amd64/arm64) são publicados com somas de verificação SHA-256 no GitHub Página de lançamentos.

Código fonte

cipi-cli é open source, licenciado pelo MIT e escrito em Go. Contribuições são bem-vindas em GitHub.


Requisitos

O servidor Cipi deve ter o API pacote instalado e configurado antes de usar cipi-cli:

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

As novas versões do aplicativo PHP devem ser 8.3, 8.4, ou 8.5 (Cipi 4.5.4+). Alguns recursos do CLI dependem do servidor específico e das versões do API:

Recurso Mínimo Cipi Mínimo API
Suspender / cancelar a suspensão (apps suspend) 4.5.8 1.8.1
Renomear domínio primário (apps edit --domain) 4.6.2 1.9.0
Registros de aplicativos (apps logs) 1.11.9
Status do servidor (status) GET /api/status + status-view (1.11.6+)
Mapa de domínio global (domains) 4.5.5 - (construído a partir de /api/apps)