Um projeto feito em NestJS para o backend do aplicativo web MonneyApp.
Este projeto é desenvolvido com as seguintes tecnologias:
Siga os passos abaixo para rodar o projeto localmente:
- Clone o repositório:
git clone https://github.com/daniloamsilva/monney-api.git- Acesse o diretório do projeto
cd monney-api- Instale as dependências:
npm install- Crie o arquivo .env:
cp .env.example .env- Inicie os containers Docker:
docker compose up -d- Rode as migrations
npm run migration:up- Rode os testes automatizados (opcional):
npm test- Inicie o servidor:
npm run start:devO projeto estará disponível em http://localhost:3000.
Este projeto utiliza um ambiente Docker com os seguintes serviços definidos no compose.yml:
📦 database: Container principal do PostgreSQL usado pela aplicação.
- Imagem: postgres:17.2-alpine3.21
- Porta Exposta: ${DB_PORT}:5432
- Variáveis de Ambiente: definidas via .env (DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD)
🧪 test-database: Instância separada do PostgreSQL utilizada exclusivamente para testes.
- Imagem: postgres:17.2-alpine3.21
- Porta Exposta: ${DB_TEST_PORT}:5432
- Importante: Usa as mesmas credenciais e banco da instância principal, mas escuta em uma porta diferente para evitar conflitos.
⚡ redis: Servidor Redis para cache ou fila de mensagens.
- Imagem: redis:7.4-alpine
- Porta Exposta: ${REDIS_PORT}:6379
- Senha: definida via variável REDIS_PASSWORD (recomenda-se manter segura no .env)
- Configuração Extra: Utiliza --requirepass para exigir autenticação
📬 mailpit: Servidor SMTP fake e visualizador de emails para desenvolvimento.
- Imagem: axllent/mailpit:latest
- Portas Expostas:
- Interface Web: 8025
- SMTP: ${MAIL_PORT}:1025