Foi uma live de quase três horas, sem power point, direto no terminal. Danilo (CEO/CTO) e Lucas "Virgo" (engenheiro de software) dividiram a aula em três blocos crescentes de complexidade — host compartilhado, VPS crua e VPS com Docker — reaproveitando sempre os mesmos fundamentos de requisição HTTP, permissões e configuração de .env, para deixar claro que o Laravel em si já está pronto para produção; o que muda é a infraestrutura em volta dele.
Destaques
- Hostgator (compartilhado): geração de chave SSH pelo cPanel,
chmod 400na chave,git clonevia SSH (repositório privado), instalação do Composer sem binário global (rodado via PHP), e o bloqueio clássico de host compartilhado — sem Node instalável, os assets tiveram que ser buildados localmente e commitados numa branch separada para não sujar amainde um projeto open source. - Debug por camadas: o roteiro de erro 403 (Apache não sabe onde fica o
public/index.php) →.htaccesscom rewrite → erro 500 (agora é o Laravel reclamando) →tail -f storage/logs/laravel.log→APP_KEYausente →.envcriado a partir do.env.example→ banco criado no assistente do cPanel. - AWS EC2 sem Docker: Amazon Linux 2023 (usa
dnf, nãoapt), instalação de PHP 8.2 + extensões exigidas pelo Laravel, Nginx como web server (/etc/nginx/conf.d/*.conf, semsites-available), usuárioec2-userincluído no gruponginx, permissões2775em pastas e644em arquivos (nunca777— o problema do 777 é dar permissão de execução onde não deveria). - PostgreSQL na própria instância:
initdbmanual (Amazon Linux exige criação explícita das pastas), edição dopg_hba.confdepeer/identparamd5para aceitar autenticação por senha, e o achado do socket do PHP-FPM viaps aux | grep php-fpmquando o Nginx devolvia bad gateway. - RDS como banco gerenciado: criação de instância PostgreSQL via RDS explicando o motivo de sair do banco na mesma máquina — separar o gargalo de CPU/memória da aplicação do gargalo do banco antes de precisar escalar cada um de forma independente.
- AWS com Docker: segunda instância EC2 só com Docker e Git instalados, Dockerfile customizado (imagem base + PHP-FPM + Nginx + Supervisor rodando dentro do mesmo container, variáveis de ambiente para versão de Node/PHP, volume compartilhado para hot-reload sem rebuild), container se conectando ao RDS externo em vez de subir banco em container.
- Segurança de rede: Security Group da AWS como firewall na frente da aplicação (porta 80/443 fechada por padrão), recomendação de restringir SSH e acesso ao banco por IP em vez de "0.0.0.0/0" em projetos reais.
Profundidade tecnica
O nível técnico foi de intermediário para avançado, com boas doses de "por que isso funciona assim" em vez de só copiar comando: explicação do ciclo de uma requisição HTTP (DNS → servidor web → PHP-FPM → aplicação) para ensinar a diagnosticar em qual camada um erro está acontecendo; diferença entre Amazon Linux 2023 (dnf) e Ubuntu (apt, www-data) nos mesmos passos de deploy; e uma explicação conceitual de imagem/container/volume do Docker antes de rodar o docker-compose up. Armadilhas reais discutidas: permissão 777 (execução indevida), esquecer o www. no domínio, confundir erro de infraestrutura com erro de aplicação, e a tentação de usar Kubernetes/ECS em projeto que não precisa disso — reforçando repetidamente que a arquitetura mais simples que resolve o problema é a certa, não a mais na moda.
Faça parte do Clã
Se esse tipo de aula ao vivo, sem cortes e com os erros de verdade acontecendo na sua frente é o seu formato de aprender, é exatamente isso que rola todo mês no Clã Beer and Code. Além dos encontros técnicos como este, você tem acesso a mentoria e a uma comunidade de devs Laravel que já passou (e resolveu) os mesmos problemas de deploy, infra e carreira que você vai enfrentar. Bora?
Engenharia de IA virou profissão, e se aprende construindo, não assistindo. O Clã Beer and Code é o ambiente onde isso acontece ao vivo, toda semana: RAG, agentes, observabilidade e LLMOps em projetos reais, ao lado de quem já está em produção. É pago, é assinatura, e é exatamente o ambiente que estes encontros dão uma amostra.
Entrar no Clã