~/beer-and-code
~ / eventos / desafio-deploy-15-minutos-hostgator-e-aws $ _
Workshop Encerrado

Desafio: Deploy em 15 Minutos — Hostgator e AWS

## Deploy em 15 Minutos: Hostgator e AWS Encontro prático (ao vivo) do Beer and Code em que Danilo e Lucas "Virgo" fazem deploy de aplicações Laravel ao vivo em três cenários reais: host compartilhado (Hostgator, cPanel), VPS na AWS sem Docker (EC2 + Nginx +...

Ficha do evento
formato workshop
quando 20 Fev 2024
horário 19h às 22h
status encerrado

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 400 na chave, git clone via 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 a main de um projeto open source.
  • Debug por camadas: o roteiro de erro 403 (Apache não sabe onde fica o public/index.php) → .htaccess com rewrite → erro 500 (agora é o Laravel reclamando) → tail -f storage/logs/laravel.logAPP_KEY ausente → .env criado a partir do .env.example → banco criado no assistente do cPanel.
  • AWS EC2 sem Docker: Amazon Linux 2023 (usa dnf, não apt), instalação de PHP 8.2 + extensões exigidas pelo Laravel, Nginx como web server (/etc/nginx/conf.d/*.conf, sem sites-available), usuário ec2-user incluído no grupo nginx, permissões 2775 em pastas e 644 em arquivos (nunca 777 — o problema do 777 é dar permissão de execução onde não deveria).
  • PostgreSQL na própria instância: initdb manual (Amazon Linux exige criação explícita das pastas), edição do pg_hba.conf de peer/ident para md5 para aceitar autenticação por senha, e o achado do socket do PHP-FPM via ps aux | grep php-fpm quando 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?

▪ Clã Beer and Code
Faça parte do Clã. Construa o que importa.

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ã
tocando