[BR|EN]~/samuel-felix

cat como-foi-feito.md

Como foi feito

Referência rápida da arquitetura, do pipeline e das decisões deste site.

Cloudflare: plano gratuitoHTTPSbeaconpusha cada pushdeploy (main)cria Pages e AnalyticsstateVisitantescelular ou computadorCloudflare PagesHTML estático + CDNWeb Analyticsvisitas sem cookiesDesenvolvedorGitHubrepositórioGitHub Actionscheck · build · linksTerraformapply localHCP Terraformstate remoto

Peças

Peça Função
Astro Gera o site estático a partir do Markdown em content/
Cloudflare Pages Hospeda e serve pela CDN (plano gratuito)
Cloudflare Web Analytics Conta visitas sem cookies
Terraform Cria o projeto do Pages e o Web Analytics
HCP Terraform Guarda o state do Terraform
GitHub Actions Valida cada PR e publica cada push no main
Docker Compose Homologação local, só em localhost

Pipeline

  1. PR ou push: astro check, astro build, checagem de links e terraform validate.
  2. Push no main: se não houver conteúdo marcado como pendente, o build vai para produção com wrangler pages deploy.
  3. Homologação: docker compose up serve o build de produção em localhost. Não existe URL de preview pública.

A infraestrutura muda pouco. Por isso o terraform apply roda na minha máquina, e o CI só confere se o código continua válido.

Decisões (ADRs)

ADR Decisão
001 Astro, com o texto em Markdown numa pasta própria
002 Cloudflare no plano gratuito, com plano de saída escrito
003 Terraform com state remoto e apply local
004 Deploy pelo GitHub Actions, não pela integração Git do Pages

Limites declarados

Código

Tudo está em github.com/osamufelix/portfolio-samu.