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]Flags globais
Seção intitulada “Flags globais”Disponíveis em qualquer comando:
| Flag | Padrão | Descrição |
|---|---|---|
-f, --file | descoberta automática | Caminho do pyahu.yaml do projeto. O config global continua sendo aplicado. |
-o, --output | human | Formato de saída: human ou json. |
--no-color | false | Desativa cores na saída. |
-q, --quiet | false | Suprime saída não essencial. |
-v, --verbose | false | Mostra a saída das ferramentas (k3d etc.). |
--no-input | false | Nunca pergunta nada de forma interativa. |
--version | — | Mostra versão, commit e data de build. |
-h, --help | — | Ajuda 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.
Ciclo de vida
Seção intitulada “Ciclo de vida”pyahu init
Seção intitulada “pyahu init”Cria um pyahu.yaml a partir de um preset.
| Flag | Padrão | Descrição |
|---|---|---|
--preset | minimal | Preset inicial: minimal (só PostgreSQL) ou platform (stack completa). |
--force | false | Sobrescreve um stack file existente. |
pyahu init --preset platformpyahu init --preset minimal --forcepyahu init --preset platform -f infra/pyahu.yamlpyahu up
Seção intitulada “pyahu up”Cria o cluster k3d quando necessário e reconcilia os recursos Kubernetes. É idempotente:
um segundo pyahu up converge ou não faz nada.
| Flag | Padrão | Descrição |
|---|---|---|
--skip-wait | false | Aplica 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.
pyahu uppyahu up --skip-waitpyahu up --output jsonSaída humana ao final:
Pyahu local stack is readycluster: pyahu-localnamespace: pyahu-local-devkubeconfig: /home/voce/.config/k3d/kubeconfig-pyahu-local.yaml
POSTGRES_URL postgresql://pyahu:pyahu_local@localhost:5432/app?sslmode=disableZITADEL_ISSUER https://zitadel.localhost...
next: eval "$(pyahu env)"pyahu down
Seção intitulada “pyahu down”Remove os recursos locais da Pyahu.
| Flag | Padrão | Descrição |
|---|---|---|
--keep-cluster | false | Remove só o namespace da stack e mantém o cluster k3d. |
pyahu down # apaga o cluster k3d inteiropyahu down --keep-cluster # mantém o cluster, remove o namespacepyahu doctor
Seção intitulada “pyahu doctor”Verifica dependências e portas locais antes de subir a stack. Funciona mesmo sem stack file (usa defaults para a checagem).
pyahu doctorpyahu doctor --output jsonEle checa:
k3dinstalado noPATH- 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 installedcontainer-runtime ok docker is availablelocal-clusters ok no other local Kubernetes clusters detectedport:postgres ok 127.0.0.1:5432 is availablehost ok linux/amd64Inspeção
Seção intitulada “Inspeção”pyahu status
Seção intitulada “pyahu status”Mostra o estado do cluster e de cada serviço, incluindo os pods.
pyahu statuspyahu status --output jsoncluster: pyahu-localnamespace: pyahu-local-devpostgres ready 1/1 readyzitadel ready 1/1 readykafka waiting startingpyahu services
Seção intitulada “pyahu services”Lista os serviços habilitados, seu estado e endpoints locais. Aliases: svc, ls.
pyahu servicespyahu svcpyahu services --output jsoncluster: pyahu-localnamespace: pyahu-local-devstate: running
SERVICE STATUS VERSION ENDPOINTSpostgres ready 18.4 localhost:5432zitadel ready v4.15.2 https://zitadel.localhostrabbitmq ready 4.3.2 localhost:5672, https://rabbitmq.localhostkafka ready 4.3.0 localhost:9092kafka-connect ready 3.5.2 http://localhost:8083kafka-ui ready v1.5.0 https://kafka-ui.localhostpyahu describe <service>
Seção intitulada “pyahu describe <service>”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.
| Flag | Padrão | Descrição |
|---|---|---|
--show-secrets | false | Mostra valores secretos na saída humana (por padrão são mascarados). |
pyahu describe postgrespyahu describe zitadel --show-secretspyahu describe kafka-connect --output jsonpyahu logs <service>
Seção intitulada “pyahu logs <service>”Transmite os logs de um serviço.
| Flag | Padrão | Descrição |
|---|---|---|
--follow | false | Acompanha os logs em tempo real. |
--tail | 100 | Número de linhas iniciais a mostrar. |
pyahu logs postgres --tail 50pyahu logs zitadel --followpyahu logs kafka-connect --tail 200Conexão e dados
Seção intitulada “Conexão e dados”pyahu env
Seção intitulada “pyahu env”Imprime as variáveis de conexão para os apps locais.
| Flag | Padrão | Descrição |
|---|---|---|
--format | shell | shell (com export), dotenv ou json. |
pyahu env # export VAR='valor'pyahu env --format dotenv # VAR=valorpyahu env --format jsoneval "$(pyahu env)" # carrega no shell atualAs variáveis cobrem cada serviço habilitado, por exemplo POSTGRES_URL,
RABBITMQ_URL, KAFKA_BOOTSTRAP_SERVERS, KAFKA_CONNECT_URL, ZITADEL_ISSUER.
pyahu kubeconfig
Seção intitulada “pyahu kubeconfig”Imprime o caminho do kubeconfig do cluster local.
| Flag | Padrão | Descrição |
|---|---|---|
--raw | false | Escreve o conteúdo do kubeconfig no stdout, em vez do caminho. |
pyahu kubeconfigpyahu kubeconfig --raw > kubeconfig.yamlexport KUBECONFIG="$(pyahu kubeconfig)"pyahu backup postgres [database]
Seção intitulada “pyahu backup postgres [database]”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.
| Flag | Padrão | Descrição |
|---|---|---|
--dir | .pyahu/backups | Diretório de host para o arquivo .dump. |
pyahu backup postgres app --dir ./backupspyahu backup postgres # usa o primeiro database configuradoO arquivo recebe o nome <stack>-<database>-<YYYYMMDD-HHMMSS>.dump (UTC).
pyahu restore postgres [database]
Seção intitulada “pyahu restore postgres [database]”Restaura um dump custom do PostgreSQL a partir de um arquivo local ou de s3://.
| Flag | Padrão | Descrição |
|---|---|---|
--source | — (obrigatório) | Caminho do arquivo .dump ou URI s3://. |
--s3-endpoint-url | — | Endpoint S3-compatível para origens s3://. |
--clean | true | Remove objetos correspondentes antes de restaurar. |
--yes | false | Confirma o restore destrutivo sem prompt. |
pyahu restore postgres app --source ./backups/pyahu-local-app-20260622-131500.dumppyahu restore postgres app --source s3://meu-bucket/dev/app.dump --yespyahu restore postgres app \ --source s3://bucket/app.dump \ --s3-endpoint-url http://localhost:9000 \ --yesTLS local
Seção intitulada “TLS local”pyahu certs status
Seção intitulada “pyahu certs status”Mostra o estado da CA local, do certificado wildcard e do trust no host.
pyahu certs statuspyahu certs status --output jsonlocal CA: ~/.config/pyahu/certs/ca.crtCA status: valid until 2036-06-19host trust: trustedcertificate: .pyahu/local/certs/localhost.crtcert status: valid until 2027-07-24domains: *.localhost, localhost, zitadel.localhostpyahu certs trust
Seção intitulada “pyahu certs trust”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.
pyahu certs trustpyahu certs rotate
Seção intitulada “pyahu certs rotate”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.
pyahu certs rotatepyahu certs trustpyahu upMais contexto em Certificados locais.
pyahu completion [shell]
Seção intitulada “pyahu completion [shell]”Gera o script de autocomplete. Shells suportados: bash, zsh, fish, powershell.
pyahu completion zsh > "${fpath[1]}/_pyahu"pyahu completion bash | sudo tee /etc/bash_completion.d/pyahu > /dev/nullpyahu completion fish > ~/.config/fish/completions/pyahu.fishSaída JSON para scripts
Seção intitulada “Saída JSON para scripts”Quase todos os comandos de leitura suportam --output json:
pyahu doctor --output jsonpyahu status --output jsonpyahu services --output jsonpyahu describe postgres --output jsonpyahu env --format jsonpyahu certs status --output jsonFluxo recomendado
Seção intitulada “Fluxo recomendado”pyahu init --preset platformpyahu doctorpyahu uppyahu certs trustpyahu serviceseval "$(pyahu env)"