π₯ Transform YouTube videos into intelligent, comprehensive summaries using advanced AI models.
Scriptify is a modern web application that generates detailed, structured summaries from YouTube videos using cutting-edge AI technology. Built with a robust DevOps pipeline featuring Docker containerization and Kubernetes orchestration.
- π€ AI-Powered Summarization: Advanced natural language processing for intelligent video summaries
- π Multiple Summary Types: Comprehensive, Brief, Bullet Points, and Academic formats
- β±οΈ Automatic Timestamps: Generated timestamps for key moments in videos
- π― Key Highlights: AI-extracted important points and insights
- π± Modern React Frontend: Built with Vite for fast, responsive user experience
- π FastAPI Backend: High-performance Python backend with async support
- π³ Docker Containerization: Consistent deployment across environments
- βοΈ Kubernetes Orchestration: Production-ready container management
- π Auto-scaling: Horizontal Pod Autoscaler (HPA) for traffic management
- π Secure Secrets Management: Kubernetes secrets for API key protection
- π GitLab CI/CD Pipeline: Automated build, test, and deployment
- π§ Docker: Container image building and development
- βΈοΈ Kubernetes: Production deployment and orchestration
- π Frontend: React + Vite + Nginx (containerized)
- β‘ Backend: FastAPI + Python (containerized)
- π Ingress: Traffic routing and load balancing
- π HPA: Automatic scaling based on resource usage
- π Secrets: Secure API key management
Git Push β GitLab CI β Single Build Job β Test β Kubernetes Deploy β Live App
β β β β β β
Code Sequential Backend+Frontend Image K8s Manifests Auto Port
Changes Execution Images Built Verify Applied Forwarding
Use the GitLab CI/CD pipeline for automatic deployment:
- Clone the Repository
git clone https://github.com/AyushChoudhary6/Scriptify.git
cd Scriptify- Setup GitLab Runner
# Start GitLab runner with Docker
docker compose -f gitlab-runner-docker-compose.yml up -d
# Register runner with your GitLab project
docker exec -it gitlab-runner gitlab-runner register \
--url https://gitlab.com \
--registration-token YOUR_TOKEN_HERE \
--executor docker \
--docker-image alpine:latest \
--description "Local Docker Runner" \
--tag-list "local" \
--docker-privileged=true \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock- Configure API Keys Update your Kubernetes secrets file with your API keys:
# Edit k8s/secrets.yml with your actual API keys
kubectl apply -f k8s/secrets.yml- Deploy via Pipeline
git add .
git commit -m "Deploy Scriptify"
git push origin mainThe pipeline will automatically:
- π§ Build backend and frontend Docker images in sequence
- π§ͺ Run comprehensive image verification tests
- π Deploy complete application to Kubernetes
- π Set up automatic port forwarding
- β Make app accessible at localhost:3000
# Build images
docker build -t scriptify-backend:latest ./backend
docker build -t scriptify-frontend:latest ./frontend
# Run with Docker Compose
docker compose up -d
# Access at:
# Frontend: http://localhost:3000
# Backend: http://localhost:8000# Build Docker images
docker build -t scriptify-backend:latest ./backend
docker build -t scriptify-frontend:latest ./frontend
# Apply Kubernetes manifests
kubectl apply -f k8s/
# Port forward to access locally
kubectl port-forward service/frontend-service 3000:80
kubectl port-forward service/backend-service 8000:8000- π§ Build: Complete application build (Backend + Frontend in sequence)
- π§ͺ Test: Validation of built images and application health
- π Deploy: Kubernetes deployment with automatic port forwarding
- β Sequential Execution: Build β Test β Deploy (one after another)
- β Single Job per Stage: No parallel executions, clean pipeline flow
- β Local GitLab Runner: Custom runner with "local" tag
- β Dependency Management: Each stage waits for the previous to complete
- β Kubernetes Integration: Complete k8s manifest application
- β Auto Port Forwarding: Immediate localhost access after deployment
The pipeline will automatically:
- π§ Build backend and frontend Docker images sequentially
- π§ͺ Run comprehensive tests on built images
- π Deploy to Kubernetes with all components
- π Set up automatic port forwarding
- β Make app accessible at localhost:3000
- π¦ Deployments: backend-deployment.yml, frontend-deployment.yml
- π Services: backend-service.yml, frontend-service.yml
- π Secrets: secrets.yml (API keys management)
- π Ingress: ingress.yml (traffic routing)
- π HPA: hpa.yml (horizontal pod autoscaling)
- βοΈ React 18: Modern component-based UI
- β‘ Vite: Fast build tool and dev server
- π¨ CSS3: Custom styling with gradients and animations
- π³ Nginx: Production web server in container
- π FastAPI: High-performance async Python framework
- π€ AI Integration: AssemblyAI + Gemini APIs
- π¦ Uvicorn: ASGI server for production
- π³ Docker: Containerized deployment
- π³ Docker: Container runtime and image building
- βΈοΈ Kubernetes: Container orchestration platform
- π GitLab CI/CD: Automated pipeline with local runner
- π HPA: Kubernetes Horizontal Pod Autoscaler
- π Secrets Management: Kubernetes native secret storage
- π Resource Monitoring: CPU/Memory usage tracking
- π Auto-scaling: Dynamic pod scaling based on load
- π Health Checks: Liveness and readiness probes
- π Deployment Status: Real-time pod and service monitoring
- π³ Docker & Docker Compose: Container runtime
- βΈοΈ Kubernetes Cluster: Local (kind, minikube) or cloud cluster
- π GitLab Runner: For CI/CD pipeline execution
- π API Keys: AssemblyAI and Gemini API access
- Access the Application: http://localhost:3000
- Paste YouTube URL: Any valid YouTube video link
- Select Summary Type: Choose from 4 AI summary formats
- Get AI Summary: Receive intelligent video summary with timestamps
After successful deployment:
- π Frontend: http://localhost:3000
- π§ Backend API: http://localhost:8000
- π API Documentation: http://localhost:8000/docs
- π₯ YouTube Summarizer: Ready to use!
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by Ayush Choudhary | Showcasing DevOps Excellence with Docker + Kubernetes