=') ? 'success' : 'warning';
if ($phpStatus === 'warning') $overallStatus = 'warning';
// Database Connection Check
$dbStatus = 'error';
$dbInfo = [];
try {
$pdo = new PDO(
"mysql:host=db;dbname=easystream;charset=utf8mb4",
"easystream",
"easystream",
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
$dbStatus = 'success';
// Get database info
$dbInfo['version'] = $pdo->query("SELECT VERSION()")->fetchColumn();
$dbInfo['tables'] = count($pdo->query("SHOW TABLES")->fetchAll());
$dbInfo['users'] = $pdo->query("SELECT COUNT(*) FROM db_accountuser")->fetchColumn();
$dbInfo['videos'] = $pdo->query("SELECT COUNT(*) FROM db_videofiles")->fetchColumn();
} catch (Exception $e) {
$dbStatus = 'error';
$overallStatus = 'error';
$dbInfo['error'] = $e->getMessage();
}
// File System Checks
$coreFiles = [
'index.php' => 'Main Platform',
'login.php' => 'Authentication System',
'admin.php' => 'Admin Dashboard',
'users.php' => 'User Management',
'status.php' => 'System Status',
'f_core/config.database.php' => 'Database Configuration',
'deploy/create_db.sql' => 'Database Schema'
];
$fileStatus = [];
foreach ($coreFiles as $file => $desc) {
$fileStatus[$file] = [
'exists' => file_exists($file),
'description' => $desc,
'size' => file_exists($file) ? filesize($file) : 0
];
}
// Server Environment
$serverInfo = [
'hostname' => gethostname(),
'server_software' => $_SERVER['SERVER_SOFTWARE'] ?? 'Unknown',
'document_root' => $_SERVER['DOCUMENT_ROOT'] ?? 'Unknown',
'server_name' => $_SERVER['SERVER_NAME'] ?? 'Unknown',
'server_port' => $_SERVER['SERVER_PORT'] ?? 'Unknown',
'request_time' => date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']),
'container' => $_SERVER['HTTP_X_HOSTNAME'] ?? 'Not in container'
];
?>
🚀 Installation Status
= $overallStatus === 'success' ? '✅' : ($overallStatus === 'warning' ? '⚠️' : '❌') ?>
Overall Status
✅ Installation Successful';
break;
case 'warning':
echo '⚠️ Installation Complete with Warnings';
break;
case 'error':
echo '❌ Installation Issues Detected';
break;
}
?>
🐘
PHP Version
= $phpVersion ?>
= $phpStatus === 'success' ? '✅ Compatible' : '⚠️ Update Recommended' ?>
💾
Database
✅ Connected
= $dbInfo['tables'] ?> tables, = $dbInfo['users'] ?> users
❌ Connection Failed
🐳
Container
✅ Docker Active
= $serverInfo['container'] ?>
🖥️ System Information
| PHP Version | = PHP_VERSION ?> |
| Server Software | = $serverInfo['server_software'] ?> |
| Hostname | = $serverInfo['hostname'] ?> |
| Container ID | = $serverInfo['container'] ?> |
| Server Name | = $serverInfo['server_name'] ?> |
| Server Port | = $serverInfo['server_port'] ?> |
| Document Root | = $serverInfo['document_root'] ?> |
| Current Time | = $serverInfo['request_time'] ?> |
| Memory Limit | = ini_get('memory_limit') ?> |
| Max Execution Time | = ini_get('max_execution_time') ?>s |
| Upload Max Filesize | = ini_get('upload_max_filesize') ?> |
| Post Max Size | = ini_get('post_max_size') ?> |
💾 Database Information
| Database Version | = $dbInfo['version'] ?> |
| Total Tables | = $dbInfo['tables'] ?> |
| Total Users | = $dbInfo['users'] ?> |
| Total Videos | = $dbInfo['videos'] ?> |
| Connection Host | db (Docker container) |
| Database Name | easystream |
| Character Set | utf8mb4 |
['db_accountuser', 'db_videofiles', 'db_settings'],
'RBAC System' => ['db_roles', 'db_user_roles', 'db_role_permissions'],
'Live Streaming' => ['db_live_streams', 'db_stream_viewers'],
'Token System' => ['token_transactions', 'token_purchases'],
'API System' => ['db_api_keys', 'db_api_logs'],
'Branding' => ['db_branding_settings']
];
// Core video platform features
$videoFeatures = [
'Video Processing' => [
'files' => ['f_core/f_classes/class.videoprocessor.php', 'f_jobs/VideoProcessingJob.php'],
'description' => 'Video conversion and thumbnail generation system',
'ffmpeg_check' => true
],
'Video Player' => [
'files' => ['f_templates/tpl_frontend/tpl_file/tpl_view.tpl', 'f_templates/tpl_frontend/css/player.css'],
'description' => 'HTML5 video player with streaming support',
'ffmpeg_check' => false
],
'Video Upload' => [
'files' => ['f_templates/tpl_frontend/tpl_file/tpl_upload.tpl', 'f_templates/tpl_frontend/css/upload.css'],
'description' => 'Video upload and management system',
'ffmpeg_check' => false
]
];
$allTables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
?>
🎯 Core Feature Status
$tables): ?>
= $featureStatus === 'success' ? '✅' : '⚠️' ?>
= $feature ?>
✅ Ready
⚠️ Missing: = implode(', ', $missingTables) ?>
🎬 Video Platform Features
$config): ?>
/dev/null') !== null;
}
// Determine status
if (!$filesExist) {
$status = 'error';
$statusText = '❌ Missing Files';
$statusDetail = 'Missing: ' . implode(', ', $missingFiles);
} elseif ($config['ffmpeg_check'] && !$ffmpegExists) {
$status = 'warning';
$statusText = '⚠️ FFmpeg Required';
$statusDetail = 'Core files ready, FFmpeg needed for processing';
} else {
$status = 'success';
$statusText = '✅ Ready';
$statusDetail = 'All components available';
}
?>
✅
⚠️
❌
= $feature ?>
= $statusText ?>
= $statusDetail ?>
= $config['description'] ?>
💾 Database Connection Error
❌
Connection Failed
Error: = htmlspecialchars($dbInfo['error']) ?>
Make sure Docker containers are running: docker-compose up -d
📁 Core Files Status
$info): ?>
| = htmlspecialchars($file) ?> |
✅ Present
(= number_format($info['size']) ?> bytes) - = $info['description'] ?>
❌ Missing - = $info['description'] ?>
|
🔧 PHP Extensions
'Database connectivity',
'pdo_mysql' => 'MySQL database support',
'gd' => 'Image processing',
'curl' => 'HTTP requests',
'json' => 'JSON processing',
'mbstring' => 'Multibyte string support',
'zip' => 'Archive support',
'xml' => 'XML processing'
];
foreach ($requiredExtensions as $ext => $desc):
$loaded = extension_loaded($ext);
?>
= $loaded ? '✅' : '❌' ?>
= $ext ?>
= $loaded ? '✅ Loaded' : '❌ Missing' ?>
= $desc ?>
🎬 Video Platform Requirements
Core video streaming functionality status:
/dev/null') !== null;
?>
= $ffmpegAvailable ? '✅' : '⚠️' ?>
FFmpeg (Video Processing)
✅ Available
Features: Video conversion, thumbnails, optimization
Full video processing capabilities enabled
⚠️ Not Found
Impact: Limited video processing
Install FFmpeg for full functionality
📡
SRS Live Streaming
✅ Configured
Protocol: RTMP input, HLS output
Port: 1935 (RTMP)
Ready for live broadcasts
💰
Monetization System
✅ Active
Features: Tokens, payments, donations
Currency: EasyCoins (EC)
Revenue system operational
🔧
Background Jobs
✅ Ready
Queue: Redis-based job processing
Workers: Video, email, notifications
Async processing system ready
⚠️ FFmpeg Setup Required
For full video processing capabilities, install FFmpeg:
• Automatic video conversion and optimization
• Thumbnail generation from videos
• Multiple format support
• Video quality processing
Current Status: Basic video upload/playback works, but processing features are limited.
🚀 Quick Actions
Your EasyStream platform is ready! Use these links to get started:
🏠 Visit Main Platform
🔐 User Login
⚙️ Admin Panel
📊 System Status
Default Admin Account
| Username | admin |
| Password | admin123 |
| Access | Login Now |
🎯 Platform Capabilities
- ✅ Video Upload & Playback: Core streaming functionality ready
- ✅ User Management: Registration, profiles, channels
- ✅ Admin Dashboard: Complete platform administration
- ✅ Live Streaming: RTMP broadcasting (port 1935)
- ✅ Monetization: Token system with payments
- ✅ API System: RESTful endpoints for mobile apps
- = $ffmpegAvailable ? '✅' : '⚠️' ?> Video Processing: = $ffmpegAvailable ? 'Full conversion & thumbnails' : 'Basic upload (FFmpeg needed for processing)' ?>