Backend NestJSNestJS 11REST + GraphQLDocker ComposeTemplate open source

Backend NestJS

Um template NestJS de referência pra clonar e colocar no ar: REST + GraphQL, auth de verdade, infra no Docker Compose e docs no mesmo lugar da API.

Depois de seis meses endurecendo — health checks, Graylog, repos prontos pra CQRS e uma wiki que sobe no mesmo container do Swagger.

Stack ao vivo

nest.lacorte.dev

docs

nest.lacorte.dev

api

Swagger UI

GET /health → ok

compose

docker compose up -d --build

APIs

REST + GraphQL

Infra

Compose em um comando

Limite de cobertura

≥80% Jest

Recursos

O que vem incluso

1

Auth pro mundo real

Login/registro/refresh com JWT, Active Directory on-prem (LDAP/LDAPS) e uma lista grande de provedores sociais — do Google ao Apple, Steam, MetaMask e por aí vai.

2

REST e GraphQL no mesmo app

REST versionado em `/api/v1` e Apollo GraphQL no mesmo app Fastify, com Swagger cobrindo os endpoints HTTP.

3

Persistência pronta pra CQRS

Padrão Repository com PostgreSQL (TypeORM) como store padrão de users e um repositório MongoDB de reserva se você separar commands e queries depois.

4

Mensageria e object storage

Cache Redis, Apache Kafka e MinIO já vêm no Compose — fila e arquivo não viram projeto de fim de semana.

5

Observabilidade de fábrica

Health do Terminus em `/health`, logs GELF estruturados no Graylog/OpenSearch, MailHog pra e-mail local e wiki embutida do lado da API.

6

Testes que barram commit

Suite Jest com threshold global de cobertura ≥80% e hook Husky de pre-commit que não deixa passar no “quase”.

Como funciona

Do clone à API no ar em três passos

1

Suba a stack completa

Um `docker compose --env-file .env.docker up -d --build` sobe Postgres, Mongo, Redis, Kafka, MinIO, Graylog e a API.

2

Mexa na API ao vivo

Abra Swagger, GraphQL e a wiki na mesma origem — sem “docs pra cá, API pra lá.”

3

Confie no health check

`GET /health` verifica Postgres, Mongo, Redis, Kafka e heap. O Compose usa isso como HEALTHCHECK do container.

Experimente

Explore a demo ou clone o template

  1. 1Abra a docs ao vivo em nest.lacorte.dev e dê uma olhada no guia de instalação.
  2. 2Explore a API interativa em /swagger — mesma origem da wiki.
  3. 3Clone o repo no GitHub e suba a stack completa com Compose.
  4. 4Confirme que `/health` está verde antes de sair apagando módulos que você não precisa.

Implementação

A stack em resumo

Runtime

NestJS 11, TypeScript, Fastify

APIs

REST, GraphQL (Apollo), Swagger

Dados

PostgreSQL, MongoDB, Redis

Plataforma

Kafka, MinIO, Graylog, Docker Compose

FAQ

Perguntas frequentes

Isso está pronto pra produção ou só uma demo?+
É um template de referência pronto pra clonar, com demo ao vivo. Apague o que não precisa e suba o resto com Compose ou com a orquestração que você já usa.
Preciso de todos os serviços no Compose?+
Não. O Compose sobe a stack completa pra ficar realista no local. Corte Kafka, MinIO ou Graylog se o caso for mais enxuto — os health checks se adaptam ao que sobrar.
REST ou GraphQL — qual é o principal?+
Os dois vêm. A maioria começa no Swagger pelos endpoints HTTP; o GraphQL fica em `/graphql` se essa for a sua religião.
Onde fica a documentação?+
Na mesma origem da API: nest.lacorte.dev pra wiki, /swagger pro contrato interativo.

Clone. Suba com Compose. Corte o que não precisa.

A parte chata já está pronta. Comece pela demo ao vivo ou pelo template no GitHub.