Pré-requisitos:
- Node.js v20 ou superior
- npm v10+
- Docker Desktop instalado e rodando
- Git
1. Clonar o repositório
2. Subir a infraestrutura local (Docker)
O projeto usa PostgreSQL 15 e Redis como dependências. O jeito mais rápido de tê-los rodando é via Docker Compose, cujo arquivo está na pastadocker/ na raiz do monorepo:
3. Instalar dependências
4. Configurar variáveis de ambiente
Copie o arquivo de exemplo:.env com os valores corretos para seu ambiente:
Referência completa de variáveis
5. Executar as migrations
O banco começa vazio. As migrations criam todas as tabelas:As migrations lêem as variáveis do
.env automaticamente via dotenv. Certifique-se de que o banco está acessível antes de rodar.6. Rodar em desenvolvimento
APP_PORT).
O servidor reinicia automaticamente ao detectar mudanças nos arquivos (modo --watch).
7. Verificar se está funcionando
Acesse a documentação Swagger gerada automaticamente:Comandos disponíveis
Migrations
O projeto usa TypeORM com migrations para controle de esquema. Osynchronize está desabilitado — nunca altere o banco sem criar uma migration.
Gerar uma migration após alterar uma entity
Endpoints principais
Troubleshooting
Erro: ECONNREFUSED ao tentar conectar ao banco
Erro: ECONNREFUSED ao tentar conectar ao banco
O PostgreSQL não está rodando. Execute:Aguarde alguns segundos e tente novamente.
Erro: Error: getaddrinfo ENOTFOUND redis
Erro: Error: getaddrinfo ENOTFOUND redis
O Redis não está rodando. Execute:
Erro: Cannot find module 'dist/...' ao rodar migrations
Erro: Cannot find module 'dist/...' ao rodar migrations
As migrations exigem o projeto compilado. O comando
npm run migration:run faz o build automaticamente. Se o erro persistir, rode manualmente:Erro 403 (CORS) vindo do frontend
Erro 403 (CORS) vindo do frontend
Verifique a variável
FRONTEND_URL no .env. Ela precisa ser exatamente a origem do frontend, incluindo protocolo e porta:Erro: ConfigService: key 'DB_HOST' cannot be found
Erro: ConfigService: key 'DB_HOST' cannot be found
O arquivo
.env não foi encontrado. Certifique-se de que ele existe na raiz do backend (não na raiz do monorepo) e que o processo está sendo iniciado no diretório correto.Swagger em branco ou sem rotas
Swagger em branco ou sem rotas
O Swagger só está disponível em modo de desenvolvimento. Se o build de produção estiver sendo usado, o endpoint
/api não estará disponível.