7. Implantação
Infraestrutura
Seção intitulada “Infraestrutura”flowchart LR
dev(["Desenvolvedora<br/>git push"]) --> bb["Bitbucket<br/>moldape/moldape-v2"]
bb -- "Pipelines: lint · test" --> ci{{"CI"}}
bb -- "Coolify puxa o branch<br/>e faz o build" --> coolify
subgraph vps ["VPS Contabo"]
coolify["Coolify<br/><small>build com Nixpacks</small>"]
subgraph svcs ["Serviços"]
web["web<br/>:3000"]
api["order-lifecycle<br/>:4001"]
docs["docs<br/>:4321"]
pg[("PostgreSQL")]
rd[("Redis")]
vol[["volume uploads"]]
end
coolify --> web & api & docs
api --- vol
web & api --- pg
api --- rd
end
cf["Cloudflare<br/>DNS + TLS"] --> web & api & docs
user(["Usuários"]) --> cf
| Elemento | Detalhe |
|---|---|
| Servidor | VPS na Contabo. |
| Orquestração | Coolify (PaaS self-hosted): build, variáveis de ambiente, health check, domínios e TLS interno. |
| Build | Nixpacks, configurado por nixpacks.toml em cada app. |
| Borda | Cloudflare para DNS e TLS; domínios moldape.com (web) e api.moldape.com (API). |
| Fora do escopo | AWS, Azure e Kubernetes não são usados. O workflow .github/workflows/azure-k8s.yml é legado e será removido. |
Configuração de build por app
Seção intitulada “Configuração de build por app”| App | Setup | Instalação | Build | Start |
|---|---|---|---|---|
web |
nodejs_22, git, pnpm |
pnpm install --filter=web... |
pnpm run prisma:generate && pnpm run build |
pnpm run start (porta 3000) |
order-lifecycle |
graphicsmagick (apt) |
pnpm install no workspace |
prisma generate + pnpm run build |
pnpm run start:prod (porta 4001) |
docs |
nodejs_24, pnpm_10 |
pnpm install --filter=@moldape/docs... |
astro build |
node apps/docs/scripts/serve.mjs (porta 4321, health em /healthz) |
Health check
Seção intitulada “Health check”O .coolify.json define, para o order-lifecycle, curl -f http://localhost:4001/api/health a cada 30 s (timeout 3 s, 3 tentativas),
com limite de 1 GB de memória e 0,5 CPU.
Pipeline de CI (Bitbucket)
Seção intitulada “Pipeline de CI (Bitbucket)”O bitbucket-pipelines.yml roda, em todo push e na main: Lint →
Tests → Health Check → Build Docker Image, com imagem node:18.

Desenvolvido e documentado porNós Tecnologia · Desenvolvimento Criativo

