- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
4.3 KiB
4.3 KiB
EasyStream Complete Database Setup
This directory contains the complete database schema for the EasyStream video streaming platform.
🗄️ Complete Database Schema
The __install/easystream.sql file contains ALL tables needed for a production-ready EasyStream installation:
Core Tables
- db_accountuser - User accounts with token balances and streaming settings
- db_videofiles - Video files with processing status and analytics
- db_settings - Platform configuration settings
- db_sessions - User session management
RBAC (Role-Based Access Control)
- db_roles - System roles (guest, member, verified, creator, moderator, admin, super_admin)
- db_user_roles - User role assignments with expiration
- db_role_permissions - Permission mappings for each role
Live Streaming
- db_live_streams - Live stream sessions with SRS integration
- db_stream_viewers - Real-time viewer tracking
- Stream analytics and recording management
API & Analytics
- db_api_keys - API key management with rate limiting
- db_api_logs - Complete API request logging
- db_video_analytics - Detailed video viewing analytics
- db_platform_metrics - Aggregated platform statistics
Token Monetization System
- token_transactions - All token-based transactions
- token_purchases - USD to token conversions
- token_donations - User-to-user token transfers
Branding & Customization
- db_branding_settings - Complete theme customization
- db_branding_images - Logo and image management
- Color schemes, typography, and layout settings
Additional Features
- IP tracking and fingerprinting
- Email logging and notifications
- Password reset management
- Enhanced security features
🚀 Quick Setup
For Docker Users (Recommended)
-
Start your Docker containers:
docker-compose up -d -
Load the schema:
docker exec -i easystream-db mysql -u easystream -peasystream easystream < __install/easystream.sql
Manual Setup
If you prefer to run the SQL manually:
# Copy SQL to container
docker cp __install/easystream.sql vs-db:/tmp/schema.sql
# Execute the schema
docker exec vs-db mysql -u root -proot easystream -e "source /tmp/schema.sql"
# Clean up
docker exec vs-db rm /tmp/schema.sql
✅ What Gets Created
After running the setup, your EasyStream platform will have:
- Complete user management with role-based permissions
- Video processing pipeline with HLS streaming support
- Live streaming capabilities integrated with SRS
- Comprehensive analytics for videos, streams, and platform metrics
- Token-based monetization system ready for payments
- Full branding customization with theme management
- Production-ready API with logging and rate limiting
- Advanced security features including IP tracking and fingerprinting
🔧 Default Configuration
The schema includes sensible defaults:
- 7 user roles from guest to super_admin with appropriate permissions
- Token system configured with "EasyCoins" as the default currency
- Branding settings with a clean blue theme
- Platform metrics initialized and ready for data collection
- API rate limits set to 100/hour for public, 1000/hour for members
📊 Database Statistics
The complete schema creates approximately:
- 25+ core tables for full functionality
- 50+ indexes for optimal performance
- 100+ default settings for immediate use
- Foreign key constraints for data integrity
- Triggers for automatic balance updates
🛠️ Maintenance
The database is designed for production use with:
- Proper indexing for performance
- Foreign key constraints for data integrity
- Timestamp tracking for audit trails
- JSON columns for flexible metadata storage
- Partitioning-ready for high-volume analytics
🔍 Verification
After setup, verify your installation by checking that key tables exist:
SHOW TABLES LIKE 'db_%';
SHOW TABLES LIKE 'token_%';
You should see all the tables listed above.
📝 Notes
- This schema is compatible with MariaDB 10.6+ and MySQL 8.0+
- All tables use UTF8MB4 charset for full Unicode support
- JSON columns are used for flexible metadata storage
- The schema is designed to handle high-volume production workloads
Your EasyStream platform is now ready for production use! 🎉