Pular para o conteúdo

Comandos

Esta é a referência completa da Pyahu CLI. Todos os comandos aceitam as flags globais da próxima seção. A maioria suporta --output json para uso em scripts.

pyahu [comando] [flags]

Disponíveis em qualquer comando:

FlagPadrãoDescrição
-f, --filedescoberta automáticaCaminho do pyahu.yaml do projeto. O config global continua sendo aplicado.
-o, --outputhumanFormato de saída: human ou json.
--no-colorfalseDesativa cores na saída.
-q, --quietfalseSuprime saída não essencial.
-v, --verbosefalseMostra a saída das ferramentas (k3d etc.).
--no-inputfalseNunca pergunta nada de forma interativa.
--versionMostra versão, commit e data de build.
-h, --helpAjuda do comando.

A CLI procura o arquivo de stack do diretório atual para cima, nesta ordem: pyahu.yaml, pyahu.yml, .pyahu/stack.yaml, .pyahu/stack.yml. Use --file só para apontar outro caminho.


Cria um pyahu.yaml a partir de um preset.

FlagPadrãoDescrição
--presetminimalPreset inicial: minimal (só PostgreSQL) ou platform (stack completa).
--forcefalseSobrescreve um stack file existente.
Terminal window
pyahu init --preset platform
pyahu init --preset minimal --force
pyahu init --preset platform -f infra/pyahu.yaml

Cria o cluster k3d quando necessário e reconcilia os recursos Kubernetes. É idempotente: um segundo pyahu up converge ou não faz nada.

FlagPadrãoDescrição
--skip-waitfalseAplica os recursos sem esperar pela prontidão dos serviços.

Fluxo: preflight (doctor) → cria/reutiliza o cluster → espera a API do Kubernetes → aplica os serviços → espera prontidão → imprime o resumo.

Terminal window
pyahu up
pyahu up --skip-wait
pyahu up --output json

Saída humana ao final:

Pyahu local stack is ready
cluster: pyahu-local
namespace: pyahu-local-dev
kubeconfig: /home/voce/.config/k3d/kubeconfig-pyahu-local.yaml
POSTGRES_URL postgresql://pyahu:pyahu_local@localhost:5432/app?sslmode=disable
ZITADEL_ISSUER https://zitadel.localhost
...
next: eval "$(pyahu env)"

Remove os recursos locais da Pyahu.

FlagPadrãoDescrição
--keep-clusterfalseRemove só o namespace da stack e mantém o cluster k3d.
Terminal window
pyahu down # apaga o cluster k3d inteiro
pyahu down --keep-cluster # mantém o cluster, remove o namespace

Verifica dependências e portas locais antes de subir a stack. Funciona mesmo sem stack file (usa defaults para a checagem).

Terminal window
pyahu doctor
pyahu doctor --output json

Ele checa:

  • k3d instalado no PATH
  • Docker ou Podman em execução
  • Outros clusters locais (k3d/Kind): apenas aviso, não falha
  • Disponibilidade das portas de host dos serviços habilitados (quando o cluster ainda não existe)
k3d ok k3d is installed
container-runtime ok docker is available
local-clusters ok no other local Kubernetes clusters detected
port:postgres ok 127.0.0.1:5432 is available
host ok linux/amd64

Mostra o estado do cluster e de cada serviço, incluindo os pods.

Terminal window
pyahu status
pyahu status --output json
cluster: pyahu-local
namespace: pyahu-local-dev
postgres ready 1/1 ready
zitadel ready 1/1 ready
kafka waiting starting

Lista os serviços habilitados, seu estado e endpoints locais. Aliases: svc, ls.

Terminal window
pyahu services
pyahu svc
pyahu services --output json
cluster: pyahu-local
namespace: pyahu-local-dev
state: running
SERVICE STATUS VERSION ENDPOINTS
postgres ready 18.4 localhost:5432
zitadel ready v4.15.2 https://zitadel.localhost
rabbitmq ready 4.3.2 localhost:5672, https://rabbitmq.localhost
kafka ready 4.3.0 localhost:9092
kafka-connect ready 3.5.2 http://localhost:8083
kafka-ui ready v1.5.0 https://kafka-ui.localhost

Detalhes de um serviço: status, endpoints (host + interno do cluster), variáveis de ambiente, detalhes da config e pods.

Serviços válidos: postgres, zitadel, rabbitmq, kafka, kafka-connect, kafka-ui.

FlagPadrãoDescrição
--show-secretsfalseMostra valores secretos na saída humana (por padrão são mascarados).
Terminal window
pyahu describe postgres
pyahu describe zitadel --show-secrets
pyahu describe kafka-connect --output json

Transmite os logs de um serviço.

FlagPadrãoDescrição
--followfalseAcompanha os logs em tempo real.
--tail100Número de linhas iniciais a mostrar.
Terminal window
pyahu logs postgres --tail 50
pyahu logs zitadel --follow
pyahu logs kafka-connect --tail 200

Imprime as variáveis de conexão para os apps locais.

FlagPadrãoDescrição
--formatshellshell (com export), dotenv ou json.
Terminal window
pyahu env # export VAR='valor'
pyahu env --format dotenv # VAR=valor
pyahu env --format json
eval "$(pyahu env)" # carrega no shell atual

As variáveis cobrem cada serviço habilitado, por exemplo POSTGRES_URL, RABBITMQ_URL, KAFKA_BOOTSTRAP_SERVERS, KAFKA_CONNECT_URL, ZITADEL_ISSUER.

Imprime o caminho do kubeconfig do cluster local.

FlagPadrãoDescrição
--rawfalseEscreve o conteúdo do kubeconfig no stdout, em vez do caminho.
Terminal window
pyahu kubeconfig
pyahu kubeconfig --raw > kubeconfig.yaml
export KUBECONFIG="$(pyahu kubeconfig)"

Faz um dump real do PostgreSQL no pod primário direto para um arquivo no host (pg_dump --format=custom). Sem [database], usa o primeiro banco configurado.

FlagPadrãoDescrição
--dir.pyahu/backupsDiretório de host para o arquivo .dump.
Terminal window
pyahu backup postgres app --dir ./backups
pyahu backup postgres # usa o primeiro database configurado

O arquivo recebe o nome <stack>-<database>-<YYYYMMDD-HHMMSS>.dump (UTC).

Restaura um dump custom do PostgreSQL a partir de um arquivo local ou de s3://.

FlagPadrãoDescrição
--source— (obrigatório)Caminho do arquivo .dump ou URI s3://.
--s3-endpoint-urlEndpoint S3-compatível para origens s3://.
--cleantrueRemove objetos correspondentes antes de restaurar.
--yesfalseConfirma o restore destrutivo sem prompt.
Terminal window
pyahu restore postgres app --source ./backups/pyahu-local-app-20260622-131500.dump
pyahu restore postgres app --source s3://meu-bucket/dev/app.dump --yes
pyahu restore postgres app \
--source s3://bucket/app.dump \
--s3-endpoint-url http://localhost:9000 \
--yes

Mostra o estado da CA local, do certificado wildcard e do trust no host.

Terminal window
pyahu certs status
pyahu certs status --output json
local CA: ~/.config/pyahu/certs/ca.crt
CA status: valid until 2036-06-19
host trust: trusted
certificate: .pyahu/local/certs/localhost.crt
cert status: valid until 2027-07-24
domains: *.localhost, localhost, zitadel.localhost

Instala a CA local da Pyahu no trust store do host. No macOS pode pedir senha. Depois, curl e browsers aceitam https://zitadel.localhost (e as demais UIs *.localhost) sem avisos.

Terminal window
pyahu certs trust

Regenera a CA local e o certificado wildcard. Rode pyahu certs trust e pyahu up depois para reconfiar a CA e atualizar o Secret TLS no cluster.

Terminal window
pyahu certs rotate
pyahu certs trust
pyahu up

Mais contexto em Certificados locais.


Gera o script de autocomplete. Shells suportados: bash, zsh, fish, powershell.

Terminal window
pyahu completion zsh > "${fpath[1]}/_pyahu"
pyahu completion bash | sudo tee /etc/bash_completion.d/pyahu > /dev/null
pyahu completion fish > ~/.config/fish/completions/pyahu.fish

Quase todos os comandos de leitura suportam --output json:

Terminal window
pyahu doctor --output json
pyahu status --output json
pyahu services --output json
pyahu describe postgres --output json
pyahu env --format json
pyahu certs status --output json
Terminal window
pyahu init --preset platform
pyahu doctor
pyahu up
pyahu certs trust
pyahu services
eval "$(pyahu env)"