Saltar para o conteúdo

← Projetos

bilouro-web — este site

Site Wagtail com três subdomínios (www / tech / books) em AWS Lightsail. Conteúdo bilingue EN/PT com tradução e resumos gerados por IA, pesquisa, feeds RSS, SEO e comentários Giscus — tudo num só projeto Django.

Um único projeto Wagtail serve três subdomínios por hostname — www, tech, books — cada um com templates e navegação próprios, partilhando o mesmo admin e a mesma base de dados.

Funcionalidades principais

  • Conteúdo bilingue (EN/PT) — i18n em três camadas: gettext + django-rosetta para strings de interface, irmãos _pt por campo para conteúdo de páginas traduzíveis, e regra de idioma nativo para os posts de livros (sem tradução automática).
  • Operações de conteúdo com IA — Platform Prompts do OpenAI (via Responses API) traduzem campos de página PT↔EN e extraem títulos reais + resumos de 25–40 palavras para os posts de livros a partir do corpo markdown. Cada comando é um manage.py do Django.
  • Pesquisa — backend de base de dados do Wagtail, com âmbito por host (cada subdomínio pesquisa o seu próprio conteúdo).
  • 3 feeds RSS/Atom — feed combinado em www, mais feeds dedicados de tech e books.
  • SEO de raiz — JSON-LD (Person, BlogPosting, Book), OG/Twitter cards, sitemap.xml consciente do multi-site, robots.txt e hreflang.
  • Comentários Giscus — assentes em GitHub Discussions num repositório dedicado.
  • Deploy num só comando./scripts/deploy.sh a partir do portátil faz push e dispara sudo bilouro-deploy na VM: pull, sync, migrate, collectstatic, compilemessages, bootstrap idempotente dos sites, reinício do gunicorn, verificação de saúde e rollback automático em falha.
  • Extras operacionais — apex com 301 para www, pg_dump semanal → S3, media em S3 com URLs assinados, Certbot para HTTPS nos três hosts.

Migrado durante a construção de AWS App Runner para Lightsail (~22$ → ~8$/mês) quando o multi-site routing tornou o modelo do App Runner inconveniente.

Stack

Python, Django 5, Wagtail 7, Postgres 16, nginx, gunicorn, gettext + django-rosetta, OpenAI Responses API, AWS Lightsail, S3, Certbot, uv, ruff

Ver no GitHub