Skip to content

mhizterpaul/video2mp3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This project implements a scalable microservices architecture built with Docker and orchestrated using Kubernetes. It integrates multiple services including authentication, media conversion, messaging, and notifications, all connected through asynchronous communication patterns and robust data storage.

🛠️ Tech Stack

Component Technology
Base Image python:3.10-slim-bullseye
Containers Docker
Orchestration Kubernetes
Messaging Queue RabbitMQ
Databases MySQL, MongoDB
Video Processing moviepy (Python)
API Gateway Custom (Dockerized)
Service Architecture Microservices

📦 Microservices Overview

Microservice Image Description
Gateway mhizterpaul/gateway Entry point for routing API requests
Auth Service mhizterpaul/auth Handles user authentication and sessions
Converter Service mhizterpaul/converter Converts video files to mp3 using moviepy
Notification Service mhizterpaul/notification Sends notifications (email/SMS/etc)

🧰 Getting Started

🪟 On Windows

  1. Install Docker Desktop

  2. Verify Installation

    docker --version
    kubectl version --client
    
    
    

🐧 On Linux (Ubuntu/Debian-based)

  1. Install Docker

sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

  1. Add Your User to Docker Group

sudo usermod -aG docker $USER newgrp docker

  1. Install Kubernetes (kubectl)

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/

  1. Optional: Install Minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube minikube start

📂 Clone the Project

git clone https://github.com/mhizterpaul/your-project-repo.git cd your-project-repo

🐳 Docker Usage

Use Prebuilt Docker Images

docker pull mhizterpaul/gateway docker pull mhizterpaul/auth docker pull mhizterpaul/converter docker pull mhizterpaul/notification

OR Build from Dockerfiles (Based on python:3.10-slim-bullseye)

docker build -t mhizterpaul/gateway ./gateway docker build -t mhizterpaul/auth ./auth docker build -t mhizterpaul/converter ./converter docker build -t mhizterpaul/notification ./notification

⚙️ Kubernetes Deployment

Supported on both Docker Desktop (Windows/macOS) and Minikube (Linux)

kubectl apply -f k8s/

Check service health:

kubectl get pods kubectl get services

🔄 Converter Service: Video to MP3

Uses moviepy and ffmpeg to extract audio from uploaded video files.

📨 Notification Service

Supports Email and SMS delivery. Configuration is handled via environment variables or ConfigMaps.

🗄️ Data Layer

MySQL: Relational database (e.g., users, auth)

MongoDB: NoSQL for metadata, logs

RabbitMQ: Queuing for inter-service messaging

📌 Notes

All services are containerized using python:3.10-slim-bullseye.

Kubernetes manages internal networking between services.

You may customize the Dockerfiles and Kubernetes specs to fit specific deployment environments.

🤝 Contributing

Fork the repo, open pull requests, or submit issues.

📄 License

MIT License

About

Video to mp3 converter

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published