3.0 KiB
IPTV Management System
Status: Actively in development ⚠️
A modern IPTV management system that leverages AWS Cognito for secure user authentication and provides tools for EPG generation, stream validation, and cloud deployment via AWS CDK.
Key Features
✅ Implemented
-
User Authentication:
- AWS Cognito integration for secure user sign-in
- JWT token generation & validation
- Role-based access control (RBAC) with the
require_rolesdecorator
(Endpoints include both general and admin-protected routes)
-
Stream & EPG Management:
- EPG generation from M3U8 playlists (
app/iptv/createEpg.py) - Playlist creation utility (
app/iptv/createPlaylist.py) - Stream validation tooling (
app/utils/check_streams.py)
- EPG generation from M3U8 playlists (
-
Deployment & Infrastructure:
- Infrastructure provisioning using AWS CDK (
app.py,infrastructure/stack.py) - Deployment scripts to deploy/destroy the stack and update running instances (
scripts/deploy.sh,scripts/destroy.sh) - Environment configuration driven by a
.envfile (app/utils/constants.py)
- Infrastructure provisioning using AWS CDK (
🛠️ In Progress
- User management interface and additional API endpoints
- Automated EPG updates and playlist management endpoints
- Refresh token implementation and enhanced security features
- Comprehensive API documentation
Installation & Deployment
Local Setup
-
Clone the repository:
git clone [repository-url] cd iptv-updater-aws -
Set up the virtual environment:
uv venv .venv source .venv/bin/activate uv pip install -r requirements.txt -
Configure environment variables:
Copy
.env.exampleto.envand update credentials as needed.
Deploying Infrastructure
The project uses AWS CDK to provision the required AWS resources.
-
Install dependencies and CDK globally:
./install.sh -
Deploy the stack:
./scripts/deploy.sh -
Update application on running instances:
The deployment script also updates code on EC2 instances automatically via AWS SSM.
-
Destroy the stack:
./scripts/destroy.sh
Usage
-
API Endpoints:
- Sign-in:
/signin - Protected endpoints:
/protectedand/protected_admin
- Sign-in:
-
EPG & Playlist Generation:
- Create playlists using
app/iptv/createPlaylist.py - Generate EPG data using
app/iptv/createEpg.py
- Create playlists using
-
Stream Validation:
- Validate stream URLs using the utility (
app/utils/check_streams.py)
- Validate stream URLs using the utility (
Notes
- This project is under active development. Expect additional functionality and improvements in upcoming releases.
- For deployment details and troubleshooting, refer to the deployment scripts and AWS CDK documentation.