Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

RESTful API to orchestrate GitHub repository event notifications directly into Discord channels.

Notifications You must be signed in to change notification settings

cedraz/octochord-api

Repository files navigation

Octochord

Uma API robusta para monitoramento de saúde de APIs e integrações com GitHub e Discord

NestJS Prisma PostgreSQL Redis

✨ 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
git clone <seu-repositorio>
cd octochord
  1. Instale as dependências
npm install
  1. Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações
  1. Inicie os serviços com Docker
docker compose up -d
  1. Execute as migrações do banco
npx prisma migrate dev
  1. 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

🏗️ 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

# 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

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:

# 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

About

RESTful API to orchestrate GitHub repository event notifications directly into Discord channels.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /