• tutoriais
  • FrankenPHP parte 2 - Usando o Caddyfile

    No post anterior, vimos como subir uma aplicação usando o FrankenPHP sem nenhuma configuração, de modo simples e rápido. Nesse artigo, vamos evoluir um pouco mais e começar a explorar configurações com o Caddyfile e habilitar a funcionalidade de métricas para o prometheus.

    #Criando o Caddyfile

    na pasta raiz do projeto Laravel vamos criar um arquivo Caddyfile com o seguinte conteúdo:

     1{
     2	frankenphp
     3	metrics
     4    admin 0.0.0.0:2019
     5    log {
     6        output stdout
     7        format console
     8    }
     9}
    10
    11localhost {
    12	root * /app/public/
    13	encode zstd br gzip
    14	php_server {
    15		try_files {path} index.php
    16	}
    17}
    

    Nessa configuração, estamos deixando querendo:

    • Habilitar o módulo do frankenphp no caddy
    • Habilitar as métricas, que podem ser consultadas acessando localhost:2019/metrics
    • Permitir o acesso externo a métricas com a linha admin 0.0.0.0:2019
    • Configurar um log mais bonito
    • Definir as configurações pro host localhost, dizendo onde está o arquivo inicial do php, permitindo encode de zstd, br e gzip, e dizendo para usar o php_server passando as rotas pro index.php do public/

    #Utilizando o Caddyfile

    Agora temos uma outra mudança, vamos precisar trocar o comando frankenphp php-server por franken-php run. O comando php-server serve como um atalho para rodar o básico sem se preocupar com nenhuma configuração, mas como vamos começar a explorar as configurações disponíveis precisamos mudar para o comando run que lê um arquivo Caddyfile, que no caso vai estar no mesmo diretório em que o comando é executado na nossa imagem docker. No arquivo Dockerfile troque CMD ["frankenphp", "php-server", "-r", "public/"] por CMD ["frankenphp", "run"]. E também adicione as portas 443 pro https e a 2019 pro metrics no docker-compose.yaml.

    #Testando tudo

    Rode o comando docker compose up e acesse o localhost, deve aparecer algo com certificado suspeito no navegador, inclua na exceção. E para ver os dados de métricas, é só acessar localhost:2019/metrics e verá um texto com várias linhas sendo comentários e o padrão parâmetro e valor.

    Deixei essas mudanças publicadas no repositório de exemplo na tag 1.0.1, pode ver clicando aqui.

    Bons códigos e até a próxima!

    profile image of Lucien Risso Coreia

    Lucien Risso Coreia

    Engenheiro de Software, entusiasta de tecnologia e criador de conteúdo.

    Mais posts de Lucien Risso Coreia