Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abheektripathy/rantman
over-engineered infra for a notes app.
https://github.com/abheektripathy/rantman
django django-rest-framework docker docker-compose reactjs typescript
Last synced: 3 days ago
JSON representation
over-engineered infra for a notes app.
- Host: GitHub
- URL: https://github.com/abheektripathy/rantman
- Owner: abheektripathy
- Created: 2022-10-28T18:11:12.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-12T18:50:36.000Z (over 1 year ago)
- Last Synced: 2023-07-12T19:42:37.348Z (over 1 year ago)
- Topics: django, django-rest-framework, docker, docker-compose, reactjs, typescript
- Language: TypeScript
- Homepage: https://rantman.vercel.app
- Size: 6.09 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rantman
An over-engineered notes app, with a scalable infra.
### Architecture Overview
Rantman consists of several components bundled together with docker-compose. The frontend is built with Next.js and sends HTTP requests to the Nginx load balancer. The load balancer is configured to use the least_conn algorithm to route requests to one of the three backend replicas of the Django application.
The Django application is served through Gunicorn, which handles memory balancing through its workers for better thread management. The backend communicates with a Postgres database to store and retrieve data.
All the components of the app are containerized and orchestrated through Docker Compose, which enables easy management and deployment of the app. The app uses a custom load balancer configuration through Nginx to handle incoming requests and distribute the load evenly among the backend replicas.
The use of containerization technology allows for better scalability and portability of the app. The app can be easily deployed to different environments, and the infrastructure can be easily replicated and scaled up or down as needed.
Overall, the app architecture is designed to provide high availability, scalability, and fault tolerance, ensuring that the app can handle a high volume of requests without downtime or performance issues.
### Installation and Deployment
To install and deploy Rantman, you will need to follow these steps:
1. Clone the Rantman repository from GitHub:
```
git clone
```1. Install Docker and Docker Compose on your machine, if they are not already installed.
2. Build the Docker images for the app by running the following command:```
docker-compose build
```1. Start the app using Docker Compose:
```
docker-compose up
```This will start the app in development mode.
p.s the vercel deployment currently just shows the start page, just for the sake of a college project, this was meant to be run locally.