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-rosettapara strings de interface, irmãos_ptpor 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.pydo 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 detechebooks. - SEO de raiz — JSON-LD (Person, BlogPosting, Book), OG/Twitter cards,
sitemap.xmlconsciente do multi-site,robots.txtehreflang. - Comentários Giscus — assentes em GitHub Discussions num repositório dedicado.
- Deploy num só comando —
./scripts/deploy.sha partir do portátil faz push e disparasudo bilouro-deployna 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
301para www,pg_dumpsemanal → 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