Ambientes Dev vs Produção (VPS)
🚀 Paridade de Ambientes: Dev vs Produção (VPS)
Section titled “🚀 Paridade de Ambientes: Dev vs Produção (VPS)”O CMS Murais Digitais foi arquitetado com paridade total de ambiente: o mesmo conjunto de repositórios polyrepo e arquivos de orquestração pode ser baixado e executado tanto em computadores de desenvolvimento quanto em servidores VPS remotos de produção.
🧭 Estrutura de Branches e Ambientes
Section titled “🧭 Estrutura de Branches e Ambientes”| Ambiente | Branch Git | Arquivos de Ambiente | Modo de Execução | Portas Padrão |
|---|---|---|---|---|
| Desenvolvimento | dev |
.env.development, .env.test |
Hot-Reload (Vite dev server + TSX Backend + Volumes montados) | Backend: 5007Frontend: 5179DB: 5445MinIO: 9000/9001 |
| Produção (VPS) | main |
.env.production |
Otimizado (Nginx SPA + Backend JS compilado + Cloudflare Tunnel) | Frontend: 80 / 443Backend: Interno na rede Docker |
💻 1. Rodando em Ambiente de Desenvolvimento
Section titled “💻 1. Rodando em Ambiente de Desenvolvimento”Em máquinas de desenvolvimento (ou na VPS durante testes de homologação):
# 1. Clonar e inicializar os submódulos na branch devgit clone --recurse-submodules git@github.com:dorneles-laboratory/cms.gitcd cms
# 2. Sincronizar na branch dev e instalar dependênciasmake sync-devmake install
# 3. Subir a stack de desenvolvimento com hot-reloadmake dev-upd
# 4. Acessar os serviços:# Frontend: http://localhost:5179# Backend: http://localhost:5007/api# Swagger UI: http://localhost:5007/api-docs# MinIO: http://localhost:9001# Jaeger: http://localhost:16692🌐 2. Rodando em Servidor de Produção (VPS)
Section titled “🌐 2. Rodando em Servidor de Produção (VPS)”Na VPS de produção, o sistema executa a stack compilada de alta performance:
# 1. Clonar o orquestrador com submódulos na VPSgit clone --recurse-submodules git@github.com:dorneles-laboratory/cms.gitcd cms
# 2. Sincronizar na branch de produção (main)make sync-main
# 3. Configurar os arquivos .env.production (com segredos reais, JWT secrets e tokens)# apps/backend/.env.production# apps/frontend/.env.production
# 4. Executar o pipeline de entrega contínua em produçãomake cd-prodO que o make cd-prod executa na VPS:
Section titled “O que o make cd-prod executa na VPS:”sync-main: Puxa os commits mais recentes da branchmainna raiz e em todos os submódulos.ci-local: Roda toda a bateria de testes automatizados e validações antes de colocar o código no ar.build-shared: Compila o@lib/sharedem TypeScript estrito.prod-up: Constrói as imagens de produção com BuildKit e inicia os containers:cms_backend_prod: Executa o código JavaScript compilado viatsupno estágio runner.cms_frontend_prod: Servido via Nginx de alta performance com compressão Gzip e suporte a SPA.cms_minio_prod: Armazenamento de mídias persistido em volume Docker.cms_tunnel_prod: Cloudflare Tunnel seguro para publicação web com TLS automático sem abrir portas no firewall da VPS.
migrate: Aplica migrações pendentes no banco de dados PostgreSQL comprisma migrate deploy.prune: Limpa imagens e camadas antigas do Docker, economizando espaço em disco na VPS.