Hosting
TL;DR: Coolify self-hosted faz deploy automático de cada Astro project em clientes/<slug>/site/ para https://<slug>.pandora.mukutu.cloud. DNS wildcard via Cloudflare. Cert SSL automático via Traefik + Let’s Encrypt. Custo marginal por preview ~R$0.
Arquitetura
1 VPS (já existente ou novo $5-10/mês) com Coolify instalado. DNS wildcard *.pandora.mukutu.cloud → IP do VPS. Coolify gerencia provisioning de apps + SSL automaticamente.
prospect git push │ ▼GitHub/GitLab repo (clientes/<slug>/site/) │ ▼ webhookCoolify (VPS) │ ├─ build Astro (SSG) ├─ provision subdomain <slug>.pandora.mukutu.cloud ├─ SSL via Let's Encrypt (Traefik ACME) └─ sirva static │ ▼https://<slug>.pandora.mukutu.cloud ← prospect abreSetup (uma vez só)
| Passo | O quê |
|---|---|
| 1 | Provisionar VPS com Coolify rodando (Hetzner, Contabo, ou existente). Doc oficial: https://coolify.io |
| 2 | DNS no Cloudflare: A record pandora.mukutu.cloud → IP, A record *.pandora.mukutu.cloud → IP. Proxied OU DNS-only (Coolify lida com SSL via Traefik) |
| 3 | Conectar repo starlight no Coolify via Git source |
| 4 | Habilitar “auto-deploy” no Coolify pra branch principal |
| 5 | Configurar wildcard cert no Traefik (DNS-01 challenge no Cloudflare via token API) — uma vez, vale pra todos os subdomínios |
Deploy por prospect (2 opções)
Opção A — manual via UI (v0 default)
Vendedor entra na Coolify UI, clica “New Application”, aponta para clientes/<slug>/site/, set domain <slug>.pandora.mukutu.cloud. Coolify roda build + provision em ~30-60s. ~30 segundos de clique por prospect.
| Pró | Contra |
|---|---|
| Zero código pra escrever | Manual em volume alto |
| Visibilidade dos logs no UI | Vendedor precisa logar no Coolify |
Opção B — script CLI (v0.5)
Script bash que chama Coolify API criando app + setando domain. Triggered por hook git pós-push. ~5s automatizado.
# pseudocódigoslug=$(basename $(ls -dt clientes/*/ | head -1))curl -X POST https://coolify.mukutu.cloud/api/v1/applications \ -H "Authorization: Bearer $COOLIFY_TOKEN" \ -d "{ \"name\": \"$slug\", \"git_repository\": \"...\", \"base_directory\": \"clientes/$slug/site\", \"fqdn\": \"$slug.pandora.mukutu.cloud\" }"| Pró | Contra |
|---|---|
| Zero clique por prospect | Manutenção de script + token |
Plugga no fluxo git push | Debug de API Coolify se quebrar |
v0 começa com Opção A. Quando passa de 30 previews/mês, vale construir Opção B.
Wildcard cert
Coolify usa Traefik por baixo, que tem ACME wildcard support via DNS-01. Configura uma vez (Cloudflare API token com permissão DNS edit no zone mukutu.cloud), todos os subdomains pegam cert automaticamente sem precisar de challenge HTTP por slug.
Custos
| Item | Custo |
|---|---|
| VPS Coolify (já existente OU novo Contabo/Hetzner) | $0-10/mês |
| DNS Cloudflare | grátis |
| SSL Let’s Encrypt | grátis |
| Build minutes | grátis (rodam no VPS) |
| Banda saída | grátis até ~TB/mês em VPS típicas |
Custo marginal por preview ~R$0.
Limites do v0
- 1 VPS suporta facilmente ~50-100 sites Astro static simultâneos (SSG build, sirva static via Traefik)
- Se passar de 100 sites ativos, considera CDN edge (Cloudflare Pages, ou Coolify com múltiplos workers)
- Build paralelo limitado pelo VPS — em pico, deploys ficam em fila
- Auto-cleanup de previews antigos (>30 dias sem interação) recomendado pra não acumular
Cleanup policy
Previews ficam ativos por 30 dias. Depois disso, vendedor remove da Coolify (UI ou script). Mantém apenas previews de clientes ativos (Express fechado).
Regra de ouro: se prospect não respondeu em 30 dias após dispatch, preview vira morto. Libera VPS e mantém repo limpo.
Backup
- Código: repo está no Git (GitHub/GitLab) — backup natural
- Coolify state: volume Docker no VPS — snapshot semanal recomendado (Hetzner/Contabo oferecem snapshot integrado)
- DNS: Cloudflare config exportada via
cloudflaredou Terraform (opcional)
Vantagens vs Lovable hosting
| Critério | Coolify + pandora.mukutu.cloud | Lovable hosting |
|---|---|---|
| Watermark de terceiro | Não | Sim (lovable.app ou banner) |
| Rate limit de geração | Limitado só pelo Claude Code | Lovable plan tem cap |
| Customização do Astro | Total (código próprio) | Limitada ao Lovable engine |
| Domínio | <slug>.pandora.mukutu.cloud (boutique signal) | lovable.app/<slug> |
| Lock-in | Zero (sai do Coolify = move pra Vercel/Netlify) | Alto (sai do Lovable = perde tudo) |
| Custo marginal por preview | ~R$0 | $20-50/mês plan + per-app |
→ Próximo: Roadmap 90d