DOC/ Atualizado em 2026-09-19
Deploy
Build, hospedagem, domínio e configuração de analytics.
O site é construído como HTML estático no build pelo Next.js:
pnpm build
O Next.js pré-renderiza a home, as páginas de documentação, o sitemap e os assets estáticos para os sete idiomas. Não há runtime de servidor, então qualquer host estático funciona.
A hospedagem de produção é a Vercel:
- framework preset: Next.js
- root directory:
apps/web - build command:
pnpm build
O domínio é ella.yuricunha.com, configurado em
apps/web/src/data/site.ts e na metadata do app, que dirige as URLs
canônicas, o Open Graph e o sitemap.
/docsíndice das páginas de documentação, por idioma;/docs/<slug>página individual de documentação, por idioma.
Ambas são rotas estáticas geradas no build. O idioma padrão (inglês) não
tem prefixo de URL; os outros idiomas carregam o prefixo, por exemplo
/pt/docs ou /ja/docs.
- Inglês padrão:
https://ella.yuricunha.com - Outros idiomas:
https://ella.yuricunha.com/<locale>
Cada página declara alternates hreflang para os sete idiomas, e o sitemap
lista cada variante.
Umami está preparado, mas inerte por padrão. O componente Analytics só renderiza quando ambas as variáveis de ambiente estão presentes no build:
NEXT_PUBLIC_UMAMI_SRC=https://seu-host-umami/script.js
NEXT_PUBLIC_UMAMI_WEBSITE_ID=seu-website-id
Sem elas, o site entrega zero JavaScript de analytics. Nenhum ID de placeholder é commitado.
O pipeline do GitLab roda em main. Ele é criado com um profile GitLab que
tem verificação de identidade, porque o GitLab.com se recusa a rodar jobs de
CI sem ela. Dispare com:
glab api --method POST \
"projects/isyuricunha%2Fella-mizuki/pipeline" -f "ref=main"
Verifique se o pipeline criado chega a success: quality, build, SAST e
secret detection devem passar antes de considerar o deploy verde.
- metadata, Open Graph, Twitter cards, canonical e JSON-LD no layout do locale;
robots.txte o sitemap são gerados no build;- o social card é
public/og.png(1200x630, gerado com as fontes Geist a partir de um template HTML renderizado); - cada idioma ganha sua própria metadata e alternates hreflang.