Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

nitaigf/base-nest-angular

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base Nest Angular — Stack Fullstack Completa

Angular NestJS Docker Kubernetes

Demo fullstack 100% funcional que demonstra as capacidades de uma stack moderna:

Frontend Angular 20.3.4:

  • SPA (Client-Side Rendering)
  • SSR (Server-Side Rendering com Angular Universal)
  • SSG (Static Site Generation)
  • PWA (Progressive Web App)
  • Prerender (Pré-renderização)

Backend NestJS:

  • REST API (Express + TypeScript)
  • GraphQL (Apollo Server)
  • WebSockets (Socket.IO)
  • Microservices (TCP Transport)
  • gRPC (Protocol Buffers)

Infraestrutura:

  • PostgreSQL com Prisma ORM (✅ Produção: 15.14)
  • MongoDB com Mongoose ODM (✅ Produção: 6.0.26)
  • Redis para Cache Manager (✅ Produção: 7-alpine)
  • Caddy Reverse Proxy (✅ Produção: 2.7-alpine)
  • Docker Compose (✅ Dev + ⚠️ Prod: Backend OK, Frontend em ajuste)
  • ⚠️ Kubernetes manifests (pendente: atualizar Traefik → Caddy)

🎯 Propósito

Projeto educacional e de demonstração para explorar tecnologias modernas de desenvolvimento web fullstack com foco em:

  • Múltiplos padrões de renderização frontend
  • Diversos protocolos de comunicação backend
  • Orquestração containerizada completa
  • Arquitetura escalável e cloud-ready

🚀 Quick Start

Desenvolvimento com Docker Compose

# Clone o repositório
git clone https://github.com/nitaigf/base-nest-angular
cd base-nest-angular

# Levantar todos os serviços
docker-compose -f docker-compose.dev.yml up -d

# Aguardar inicialização (~2-3 minutos)
# Verificar status
docker-compose -f docker-compose.dev.yml ps

Desenvolvimento Local

# Backend
cd backend
npm install
npm run start:dev  # Porta 3000

# Frontend (em terminais separados)
cd frontend
npm install
npm start          # SPA na porta 4200
npm run start:ssr  # SSR na porta 4000

🌐 Endpoints Funcionais

Serviço URL Status Descrição
Frontend SPA http://localhost:4200 Angular SPA com lazy loading
Frontend SSR http://localhost:4000 Angular Universal SSR
Backend REST http://localhost:3000/api NestJS REST API
GraphQL http://localhost:3000/graphql Apollo Server
WebSocket ws://localhost:3000 Socket.IO Gateway
gRPC localhost:5001 Protocol Buffers
PostgreSQL localhost:5432 Banco relacional
MongoDB localhost:27017 Banco NoSQL
Redis localhost:6379 Cache e sessões

🗺️ Rotas e Endpoints Validados

Backend API (localhost:3000)

Todas as rotas testadas e funcionais:

# REST API
GET  /api/metadata              # ✅ Status 200 - Metadados sistema
GET  /api/health               # ✅ Status 200 - Health check
GET  /api                      # ✅ Status 200 - API info

# GraphQL
POST /graphql                  # ✅ Status 200 - Apollo Server
GET  /graphql                  # ✅ Status 200 - GraphQL Playground

# WebSocket
ws://localhost:3000            # ✅ Socket.IO Gateway

# gRPC
localhost:5001                 # ✅ MetadataService

# Microservices
localhost:6000                 # ✅ TCP Transport

Frontend Rotas (Ambos SPA e SSR)

Todas as rotas testadas com status 200:

Rota SPA (4200) SSR (4000) Descrição
/ ✅ ~9ms ✅ ~158ms Home → Redireciona para /pages/csr
/home ✅ ~10ms ✅ ~53ms Alias para home
/csr ✅ ~10ms ✅ ~66ms Redireciona para /pages/csr
/ssr ✅ ~6ms ✅ ~170ms Redireciona para /pages/ssr
/ssg ✅ ~8ms ✅ ~127ms Redireciona para /pages/ssg
/pwa ✅ ~11ms ✅ ~604ms Redireciona para /pages/pwa
/pages/csr ✅ ~12ms ✅ ~55ms Página CSR + GraphQL
/pages/ssr ✅ ~11ms ✅ ~63ms Página SSR + REST API
/pages/ssg ✅ ~6ms ✅ ~49ms Página SSG + WebSocket
/pages/pwa ✅ ~10ms ✅ ~59ms Página PWA + gRPC
/** ✅ ~9ms ✅ ~44ms Wildcard → Redireciona para /pages/csr

Diferenças SPA vs SSR:

  • SPA: HTML básico + JavaScript (hidratação no cliente)
  • SSR: HTML completo pré-renderizado + dados de hidratação

Serviços e portas (docker-compose padrão)

  • frontend-spa (service frontend-spa): 4200
  • frontend-ssr (service frontend-ssr): 4000
  • backend: 3000
  • postgres: 5432
  • mongo: 27017
  • redis: 6379

🛠️ Comandos Úteis

Docker Compose

# Desenvolvimento (validado ✅)
docker-compose -f docker-compose.dev.yml up -d
docker-compose -f docker-compose.dev.yml down
docker-compose -f docker-compose.dev.yml logs -f [service]

# Produção (build otimizado)
docker-compose -f docker-compose.prod.yml up -d --build
docker-compose -f docker-compose.prod.yml down

# Limpeza completa
docker-compose -f docker-compose.dev.yml down -v
docker system prune -f

Kubernetes Deployment

# Ordem de aplicação: Databases → Backend → Frontend
kubectl apply -f k8s-postgres.yaml
kubectl apply -f k8s-mongo.yaml
kubectl apply -f k8s-redis.yaml
kubectl apply -f k8s-backend.yaml
kubectl apply -f k8s-frontend.yaml

# Verificar status
kubectl get pods,svc,pvc
kubectl logs -f deployment/backend
kubectl logs -f deployment/frontend-spa

Desenvolvimento Local

# Backend NestJS
cd backend
npm run start:dev     # Desenvolvimento com hot reload
npm run start:debug   # Debug mode
npm run test         # Testes unitários

# Frontend Angular
cd frontend
npm start            # SPA na porta 4200
npm run start:ssr    # SSR na porta 4000
npm run build        # Build de produção
npm run test         # Testes unitários

✅ Status de Validação

Projeto 100% testado e funcional em:

  • Desenvolvimento Local (macOS Apple Silicon)
  • Docker Compose (containers Linux)
  • Todas as rotas frontend validadas
  • Todos os protocolos backend validados
  • Integração completa frontend ↔ backend ↔ databases
  • Angular 20.3.4 com BootstrapContext compliance

⚠️ Considerações Importantes

Arquitetura

  • SPA vs SSR: Executam em processos separados (limitação do Angular Universal)
  • Renderização: SSR pré-renderiza no servidor, SPA hidrata no cliente
  • Performance: SPA mais rápido após carregamento inicial, SSR melhor para SEO

Configuração

  • Variáveis de ambiente: Ajustar em docker-compose.dev.yml conforme necessário
  • Apple Silicon: Containers já configurados para ARM64
  • Portas: Configuráveis via environment variables

Status Produção (Outubro 2025)

✅ Infraestrutura Backend - 100% Funcional:

# Testar infraestrutura backend
docker-compose -f docker-compose.prod.yml -f docker-compose.prod.debug.yml up -d postgres mongo redis backend

# Testar endpoints
curl http://localhost:3000/                    # ✅ Hello World!
curl http://localhost:3000/rest/meta           # ✅ REST API
curl http://localhost:3000/grpc/meta           # ✅ gRPC
curl http://localhost:3000/micro/meta          # ✅ Microservices
curl http://localhost:3000/api/docs            # ✅ Swagger
curl http://localhost:3000/graphql             # ✅ GraphQL

⚠️ Frontend Angular 20 - Em Desenvolvimento:

  • Build SSR funcionando localmente
  • Docker de produção em ajuste (estrutura servidor Angular 20)
  • Configuração Caddy pronta

🔧 Configuração Flexível:

  • Sistema .env para portas e exposição
  • Override files para debug vs produção
  • Caddy substitui Traefik (configuração mais simples)

📚 Documentação

🤝 Contribuição

Projeto educacional aberto a contribuições! Veja issues para melhorias sugeridas.


Stack validada e pronta para desenvolvimento! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors