Uma API robusta para monitoramento de saúde de APIs e integrações com GitHub e Discord
NestJS Prisma PostgreSQL Redis
- 🔐 Autenticação JWT com suporte a Google OAuth
- 📊 Monitoramento de APIs com verificações automáticas de saúde
- 🔗 Integrações GitHub com webhooks
- 💬 Notificações Discord via webhooks
- 📧 Sistema de emails com templates
- 🎯 Códigos únicos para verificação e reset de senha
- 📁 Upload de arquivos com Cloudinary
- ⚡ Filas de processamento com BullMQ
- Node.js 22.14.0+
- Docker e Docker Compose
- Clone o repositório
git clone <seu-repositorio> cd octochord
- Instale as dependências
npm install
- Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações- Inicie os serviços com Docker
docker compose up -d
- Execute as migrações do banco
npx prisma migrate dev
- Inicie a aplicação
npm run start:dev
A API estará disponível em http://localhost:3000 e a documentação em http://localhost:3000/docs
src/
├── auth/ # Autenticação e autorização
├── user/ # Gerenciamento de usuários
├── integration/ # Integrações GitHub/Discord
├── api-health-check/ # Monitoramento de APIs
├── one-time-code/ # Códigos únicos
├── jobs/ # Filas de processamento
├── providers/ # Integrações externas
│ ├── cloudinary/ # Upload de arquivos
│ ├── mailer/ # Envio de emails
│ └── google-sheets/ # Google Sheets
├── common/ # Utilitários compartilhados
├── config/ # Configurações
└── prisma/ # Modelos do banco de dados
O projeto utiliza PostgreSQL com Prisma ORM. Principais entidades:
- User: Usuários do sistema
- Integration: Integrações GitHub/Discord
- ApiHealthCheck: Monitoramento de APIs
- OneTimeCode: Códigos de verificação
# Gerar migration npx prisma migrate dev # Resetar banco (cuidado!) npx prisma migrate reset # Visualizar dados npx prisma studio # Seed do banco npm run seed
npm run start:dev # Desenvolvimento npm run start:prod # Produção npm run build # Build da aplicação npm run test # Executar testes npm run lint # Linter npm run format # Formatação de código
A documentação da API está disponível via Swagger em /docs quando a aplicação estiver rodando.
- PostgreSQL: Banco de dados principal
- Redis: Cache e filas de processamento
# Iniciar serviços docker compose up -d # Acessar PostgreSQL docker exec -it postgres-octochord psql -U octochord -d octochorddb # Parar serviços docker compose down
- Webhooks para eventos de repositório
- Notificações automáticas no Discord
- Webhooks para notificações
- Integração com eventos GitHub
- Processamento de pagamentos
- Gerenciamento de assinaturas
- Upload e gerenciamento de imagens
- Otimização automática
Desenvolvido com ❤️ por @cedraz