{"id":21396071,"url":"https://github.com/harsh098/microservice-deploy","last_synced_at":"2026-04-18T04:02:57.529Z","repository":{"id":139369055,"uuid":"582324970","full_name":"harsh098/microservice-deploy","owner":"harsh098","description":"A set of microservices that convert a Video to MP3 audio developed using Flask, RabbitMQ, MySQL, mongoDB, Docker and Kubernetes","archived":false,"fork":false,"pushed_at":"2023-02-13T00:04:18.000Z","size":919,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T14:48:35.098Z","etag":null,"topics":["docker","flask","kubernetes","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harsh098.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-26T13:16:13.000Z","updated_at":"2024-04-27T19:36:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a01ef569-f0f6-46d2-b21d-2dd4a8596ca0","html_url":"https://github.com/harsh098/microservice-deploy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/harsh098/microservice-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harsh098%2Fmicroservice-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harsh098%2Fmicroservice-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harsh098%2Fmicroservice-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harsh098%2Fmicroservice-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harsh098","download_url":"https://codeload.github.com/harsh098/microservice-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harsh098%2Fmicroservice-deploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","flask","kubernetes","python"],"created_at":"2024-11-22T14:24:47.358Z","updated_at":"2026-04-18T04:02:57.513Z","avatar_url":"https://github.com/harsh098.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microservices Project : A Video Converter Service\nThis project was my first introduction to developing microservices and deploying them to a local **Kubernetes** cluster(**minikube**).  \nMultiple repos were combined for your convinience.  \n\n------\n\n### Sub Repos for each service:-\n1. **Main repo** [https://github.com/harsh098/microservice-deploy/](https://github.com/harsh098/microservice-deploy/)\n2. **Authentication Service** [https://github.com/harsh098/microservice-deploy-auth](https://github.com/harsh098/microservice-deploy-auth)\n3. **Gateway Service** [https://github.com/harsh098/microservice-deploy-gateway-svc](https://github.com/harsh098/microservice-deploy-gateway-svc)\n4. **RabbitMQ deployment** [https://github.com/harsh098/microservice-deploy-rabbitmq](https://github.com/harsh098/microservice-deploy-rabbitmq)\n5. **Converter Service** [https://github.com/harsh098/microservice-deploy-converter-service](https://github.com/harsh098/microservice-deploy-converter-service)\n6. **Notification Service** [https://github.com/harsh098/microservice-deploy-notification-service](https://github.com/harsh098/microservice-deploy-notification-service)\n------\n\n### Setting up your Local kubernetes cluster\n\n\n#### Part-I. Start Docker, mysqld, and mongod\nAssuming you have `mysql` and `mongo` installed on local and `mongo` is configured to allow access without authentication.  \n\n1. Configure You `mysqld.service` and `mongod.service` to allow all hosts i.e. `0.0.0.0` (for all IPv4) or `::` (for all IPv6 abd IPv4)  \n `sudo systemctl start docker mysqld and mongod`\n2. Edit `init.sql` as instructed in the file\n3. run `init.sql`\n \n\n#### Part-II. Setting Up minikube and conatiners\n1. Run the following commands\n  ```\n  minikube start\n  eval $(minikube -p minikube docker-env)\n  ``` \n2. Clone the git repo\n3. cd into the directory  \n   Run the following command ```./builder.py .```\n4. edit following `secret.yaml` files for your setup \n   1. `JWT_SECRET` in `auth_service/manifests/secret.yaml [here](https://github.com/harsh098/microservice-deploy/blob/main/auth_service/manifests/secret.yaml)\n   2. `GMAIL_ADDRESS` and `GMAIL_PASSWORD` in `notification_service/manifests/secret.yaml` [here](https://github.com/harsh098/microservice-deploy/blob/main/notification_service/manifests/secret.yaml)\n5. Run `minikube ip`\n\n####  Part-III. Edit your DNS Records\n\n***Note:*** replace `192.168.49.2` with the **address** in the output of `minikube ip`  \nAdd the following lines to `/etc/hosts` (in **Mac/Linux**) or `C:\\Windows\\System32\\Drivers\\etc\\hosts` (in **Windows**)  \n\n\n```\n  192.168.49.2   kubernetes.docker.internal\n  192.168.49.2   vid2mp3.com\n  192.168.49.2   rabbitmq-manager.com\n\n```\n\n\n#### Part-IV. Start the deployments\nRun The following commands\n1. cd into project directory  \n\n```\nkubectl create -f auth_service/manifests\nkubectl create -f gateway/manifests\nkubectl create -f rabbit/manifests\nkubectl create -f converter_svc/manifests\nkubectl create -f notification_service/manifests\n```\n2. **Mac and Windows Users need to run** `minikube tunnel` **in a separate terminal window**\n\n## Running Demo\n\n##### STEP-1 login via /login endpoint and get JWT\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/login_endpoint.png?raw=true\"/\u003e\n\n##### STEP-2 Upload video via /upload endpoint and validate using JWT\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/secured_upload.png?raw=true\"/\u003e\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/upload_body.png?raw=true\"/\u003e\n\n##### STEP-3 The video is processed and notification received on e-mail\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/email_from_notification_Service.png?raw=true\"/\u003e\n\n##### STEP-4 Download the converted file using /download (validate using JWT)\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/download_endpoint.png?raw=true\"/\u003e\n\n##### Running Kubernetes cluster Objects\n\n######   I. Pods\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/pods_on_k8s.png?raw=true\"/\u003e  \n\n######   II. Ingresses\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/ingresses_on_k8s.png?raw=true\"/\u003e  \n\n######   III. Deployments\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/deployments_on_k8s.png?raw=true\"/\u003e  \n\n######   IV.  Persistent Volumes\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/pvc_k8s.png?raw=true\"/\u003e  \n\n######   V. Stateful Sets\n\u003cimg src=\"https://github.com/harsh098/microservice-deploy/blob/main/docs/images/statefulset.png?raw=true\"/\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharsh098%2Fmicroservice-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharsh098%2Fmicroservice-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharsh098%2Fmicroservice-deploy/lists"}