Pitch: Parei de editar o Caddyfile na mão… e acabei criando uma CLI
Esses dias comecei a usar domínios locais com Caddy pra evitar coisas tipo:
localhost:3000
Funcionou bem.
Mas rapidamente apareceu um problema.
A dor
Toda vez que eu criava um projeto novo, eu precisava:
- abrir o Caddyfile
- copiar um bloco
- ajustar domínio
- ajustar porta
No começo ok.
Depois começou a ficar repetitivo.
A ideia
Em vez de continuar fazendo manual, pensei:
«por que não automatizar isso?»
A solução
Criei um CLI simples que:
- pergunta protocolo (http/https)
- pergunta domínio
- pergunta porta
E já adiciona no Caddyfile.
Um detalhe interessante
Eu nunca tinha publicado nada no npm.
Acabei publicando essa ferramenta:
https://www.npmjs.com/package/caddy-cli-manager
Bug que apareceu no meio do caminho 😅
Na validação de domínio eu usei algo assim:
content.includes(domain)
Resultado:
- digitei "a"
- ele disse que já existia
Porque bateu com:
api.rag.localhost
Corrigi depois usando parsing em vez de substring.
Conclusão
No fim:
- levei mais tempo criando a ferramenta
- do que teria levado fazendo manual
Mas agora tenho algo reutilizável.
E principalmente:
«consigo transformar uma dor em ferramenta»
Se alguém quiser ver o código:
https://github.com/williammoreschi/caddy-cli-manager