Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aliramazanov/e-hive
NestJS Microservices for Community Driven Events
https://github.com/aliramazanov/e-hive
docker ingress-nginx kubernetes nestjs postgresql rabbitmq
Last synced: 14 days ago
JSON representation
NestJS Microservices for Community Driven Events
- Host: GitHub
- URL: https://github.com/aliramazanov/e-hive
- Owner: aliramazanov
- Created: 2024-10-23T15:17:32.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-21T20:30:23.000Z (about 1 month ago)
- Last Synced: 2024-11-21T21:20:28.261Z (about 1 month ago)
- Topics: docker, ingress-nginx, kubernetes, nestjs, postgresql, rabbitmq
- Language: TypeScript
- Homepage:
- Size: 305 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# E-Hive
## NestJS Microservices with Kubernetes
## Architecture:
- Auth Service: Handles authentication
- User Service: Manages user profiles and data
- Event Service: Event creation and management
- Booking Service: Handles booking operations## Tech Stack:
- Built On: Node.js
- Framework: NestJS
- ORM: TypeORM
- Database: PostgreSQL
- Message Layer: RabbitMQ
- Containerization: Docker
- Orchestration: Kubernetes
- Infrastructure: NGINX Ingress
- Dev Tools: Skaffold
- Authentication: JWT with Passport
- Email Service: Nodemailer & OAuth 2.0![Alt](https://repobeats.axiom.co/api/embed/c7f2aabb83bf51e8997007f2580643e45142f1a6.svg 'Repobeats analytics image')
## Note on Secret Files
- ⚠️ A quick note: The secret files in this repository are provided for being an example only
- ⚠️ In a real production environment, you should never commit actual secret files to Git## Services
### Auth Service
- The Auth Service is responsible for sign-up, login, and token management using JWT.
- It communicates with other microservices over RabbitMQ for decoupled messaging.#### Configuration for Email Secrets
You need to configure `email-config.yaml` file and create your own `email-secret.yaml` to securely handle email credentials. Here's how to configure it:
```yaml
apiVersion: v1
kind: Secret
metadata:
name: email-secret
type: Opaque
stringData:
GMAIL_CLIENT_ID: 'your-client-id.apps.googleusercontent.com'
GMAIL_CLIENT_SECRET: 'your-client-secret'
GMAIL_REFRESH_TOKEN: 'your-refresh-token'
```##
## Swagger OpenAPI
### Swagger UI Access for Auth:
- http://localhost/api/auth/docs