Skip to main content
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 pasta docker/ na raiz do monorepo:
Isso sobe dois containers:
Para parar os containers sem apagar os dados: docker compose -f docker/docker-compose.yml stopPara apagar tudo (incluindo volumes): docker compose -f docker/docker-compose.yml down -v

3. Instalar dependências

4. Configurar variáveis de ambiente

Copie o arquivo de exemplo:
Edite o .env com os valores corretos para seu ambiente:
As variáveis JWT_SECRET e TOKEN_ENCRYPTION_KEY são críticas para segurança. Use valores aleatórios e longos. Nunca compartilhe os valores de produção.

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

A API estará disponível em http://localhost:3000 (ou na porta definida em 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:
Você verá todos os endpoints documentados e poderá testar chamadas direto pelo browser.

Comandos disponíveis


Migrations

O projeto usa TypeORM com migrations para controle de esquema. O synchronize está desabilitado — nunca altere o banco sem criar uma migration.

Gerar uma migration após alterar uma entity

Sempre revise o arquivo de migration gerado antes de executar. O TypeORM às vezes gera operações destrutivas (DROP COLUMN, DROP TABLE) que precisam ser verificadas.

Endpoints principais


Troubleshooting

O PostgreSQL não está rodando. Execute:
Aguarde alguns segundos e tente novamente.
O Redis não está rodando. Execute:
As migrations exigem o projeto compilado. O comando npm run migration:run faz o build automaticamente. Se o erro persistir, rode manualmente:
Verifique a variável FRONTEND_URL no .env. Ela precisa ser exatamente a origem do frontend, incluindo protocolo e porta:
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.
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.