https://github.com/cedraz/octochord-api
RESTful API to orchestrate GitHub repository event notifications directly into Discord channels.
https://github.com/cedraz/octochord-api
api-rest backend docker docker-compose nestjs postgresql prisma-orm typescript
Last synced: 3 months ago
JSON representation
RESTful API to orchestrate GitHub repository event notifications directly into Discord channels.
- Host: GitHub
- URL: https://github.com/cedraz/octochord-api
- Owner: cedraz
- Created: 2025-06-17T05:43:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-27T16:23:45.000Z (about 1 year ago)
- Last Synced: 2025-06-27T17:33:44.471Z (about 1 year ago)
- Topics: api-rest, backend, docker, docker-compose, nestjs, postgresql, prisma-orm, typescript
- Language: TypeScript
- Homepage:
- Size: 176 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Octochord
> Uma API robusta para monitoramento de saúde de APIs e integrações com GitHub e Discord
[](https://nestjs.com/)
[](https://www.prisma.io/)
[](https://www.postgresql.org/)
[](https://redis.io/)
## ✨ Funcionalidades
- 🔐 **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
## 🚀 Quick Start
### Pré-requisitos
- Node.js 22.14.0+
- Docker e Docker Compose
### Instalação
1. **Clone o repositório**
```bash
git clone
cd octochord
```
2. **Instale as dependências**
```bash
npm install
```
3. **Configure as variáveis de ambiente**
```bash
cp .env.example .env
# Edite o arquivo .env com suas configurações
```
4. **Inicie os serviços com Docker**
```bash
docker compose up -d
```
5. **Execute as migrações do banco**
```bash
npx prisma migrate dev
```
6. **Inicie a aplicação**
```bash
npm run start:dev
```
A API estará disponível em `http://localhost:3000` e a documentação em `http://localhost:3000/docs`
## 🏗️ Estrutura do Projeto
```
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
```
## 🗄️ 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
### Comandos úteis
```bash
# Gerar migration
npx prisma migrate dev
# Resetar banco (cuidado!)
npx prisma migrate reset
# Visualizar dados
npx prisma studio
# Seed do banco
npm run seed
```
## 🔧 Scripts Disponíveis
```bash
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
```
## 📚 Documentação
A documentação da API está disponível via **Swagger** em `/docs` quando a aplicação estiver rodando.
## 🐳 Docker
### Serviços incluídos:
- **PostgreSQL**: Banco de dados principal
- **Redis**: Cache e filas de processamento
### Comandos Docker:
```bash
# 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
```
## 🔗 Integrações
### GitHub
- Webhooks para eventos de repositório
- Notificações automáticas no Discord
### Discord
- Webhooks para notificações
- Integração com eventos GitHub
### Stripe
- Processamento de pagamentos
- Gerenciamento de assinaturas
### Cloudinary
- Upload e gerenciamento de imagens
- Otimização automática
---
**Desenvolvido com ❤️ por [@cedraz](https://github.com/cedraz)**