5aa473eba3184692bbe4b9c5868b76a3
Stream Monitor is a comprehensive AI-powered application designed to monitor and analyze live video streams in real-time. The application utilizes advanced computer vision and machine learning algorithms to detect events, objects, and anomalies in video feeds, providing timely alerts and insights to users.
The application follows a microservices architecture with two main components:
- Frontend: A lightweight React application served via Busybox httpd
- Backend: API server handling stream processing, AI analysis, and data storage
- Frontend: React.js, served by Busybox httpd
- Backend: Python (Flask/FastAPI)
- Containerization: Docker
- Orchestration: Kubernetes
- Container Registry: AWS ECR
- CI/CD: GitHub Actions
- Docker and Docker Compose for local development
- kubectl and AWS CLI for production deployment
- Node.js 16+ for frontend development
-
Clone the repository:
git clone https://github.com/kashimkyari/AI_LiveStream_Monioring_Tool.git cd AI_LiveStream_Monioring_Tool
-
Start the development environment:
docker-compose up -d
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
-
Build and push Docker images:
# Build and push frontend image docker build -t 038462756156.dkr.ecr.us-east-1.amazonaws.com/stream-monitor-frontend:latest -f frontend/Dockerfile frontend/ docker push 038462756156.dkr.ecr.us-east-1.amazonaws.com/stream-monitor-frontend:latest # Build and push backend image (command will vary based on backend Dockerfile location)
-
Deploy to Kubernetes:
kubectl apply -f k8s/deploy-frontend.yml kubectl apply -f k8s/deploy-backend.yml # Assuming this file exists
- Real-time video stream monitoring
- Object detection and tracking
- Event and anomaly detection
- Customizable alerts and notifications
- Historical data analysis and reporting
- User-friendly dashboard interface
The application implements several security best practices:
- Non-root container execution
- Read-only root filesystem in production
- Minimized container capabilities
- Resource limits and requests
- Health checks and liveness probes
- Rolling update deployment strategy
# Get pod status
kubectl get pods -l app=stream-monitor-frontend
# View frontend logs
kubectl logs -l app=stream-monitor-frontend
# View backend logs
kubectl logs -l app=stream-monitor-backend
The application utilizes Horizontal Pod Autoscaler to automatically adjust to traffic demands:
# Check HPA status
kubectl get hpa
Manual scaling is also possible:
kubectl scale deployment stream-monitor-frontend --replicas=3
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the 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.
Project maintainer: DevOps Team - [email protected]
GitHub Repository: https://github.com/kashimkyari/AI_LiveStream_Monioring_Tool