From 754e17d48bb9aab71c79f1f56a652b25db1c3875 Mon Sep 17 00:00:00 2001 From: Master3395 Date: Sat, 31 Jan 2026 20:28:29 +0100 Subject: [PATCH] Remove deprecated files. Remove deprecated files. --- INSTALLER_SUMMARY.md | 152 ----- cyberpanel_clean.sh | 1120 ------------------------------------ cyberpanel_complete.sh | 1117 ----------------------------------- cyberpanel_simple.sh | 1117 ----------------------------------- cyberpanel_standalone.sh | 450 --------------- fix_installation_issues.sh | 245 -------- simple_install.sh | 114 ---- 7 files changed, 4315 deletions(-) delete mode 100644 INSTALLER_SUMMARY.md delete mode 100644 cyberpanel_clean.sh delete mode 100644 cyberpanel_complete.sh delete mode 100644 cyberpanel_simple.sh delete mode 100644 cyberpanel_standalone.sh delete mode 100644 fix_installation_issues.sh delete mode 100644 simple_install.sh diff --git a/INSTALLER_SUMMARY.md b/INSTALLER_SUMMARY.md deleted file mode 100644 index 458f6e0a3..000000000 --- a/INSTALLER_SUMMARY.md +++ /dev/null @@ -1,152 +0,0 @@ -# ๐Ÿš€ CyberPanel Modular Installer - COMPLETE! - -## โœ… **What We've Built:** - -### **The Ultimate CyberPanel Installer Experience!** - -I've completely transformed the CyberPanel installer from a monolithic 3478-line script into a beautiful, modular, interactive installer system. Here's what you now have: - -## ๐Ÿ“ **New Modular Architecture:** - -``` -cyberpanel/ -โ”œโ”€โ”€ cyberpanel.sh # ๐ŸŽฏ MAIN INSTALLER (300 lines) -โ”œโ”€โ”€ install.sh # ๐Ÿ“‹ Backup installer -โ”œโ”€โ”€ modules/ -โ”‚ โ”œโ”€โ”€ os/detect.sh # ๐Ÿ” OS Detection (367 lines) -โ”‚ โ”œโ”€โ”€ deps/ -โ”‚ โ”‚ โ”œโ”€โ”€ manager.sh # ๐Ÿ“ฆ Dependency Manager (204 lines) -โ”‚ โ”‚ โ”œโ”€โ”€ rhel_deps.sh # ๐Ÿง RHEL Dependencies (222 lines) -โ”‚ โ”‚ โ””โ”€โ”€ debian_deps.sh # ๐Ÿง Debian Dependencies (229 lines) -โ”‚ โ”œโ”€โ”€ install/cyberpanel_installer.sh # ๐Ÿš€ Installation Logic (276 lines) -โ”‚ โ”œโ”€โ”€ fixes/cyberpanel_fixes.sh # ๐Ÿ”ง Fixes & Repairs (372 lines) -โ”‚ โ””โ”€โ”€ utils/ -โ”‚ โ”œโ”€โ”€ ui.sh # ๐ŸŽจ Beautiful UI (450 lines) -โ”‚ โ””โ”€โ”€ menu.sh # ๐Ÿ“‹ Interactive Menus (400 lines) -โ””โ”€โ”€ test_installer.sh # ๐Ÿงช Test Script -``` - -## ๐ŸŽฏ **Key Features:** - -### **1. Beautiful Interactive UI** -- โœจ Stunning visual interface with colors and emojis -- ๐Ÿ“Š Progress bars and status indicators -- ๐ŸŽฎ Interactive menus and prompts -- ๐Ÿ“ฑ Mobile-friendly design - -### **2. Smart Installation Logic** -- ๐Ÿ” Automatic OS detection -- ๐Ÿ“ฆ OS-specific dependency management -- ๐Ÿ”„ Retry logic (up to 5 attempts) -- ๐Ÿ› ๏ธ Automatic fix application - -### **3. Multiple Installation Modes** -- ๐ŸŽฎ **Interactive Mode** (Default) - Beautiful guided installation -- ๐Ÿค– **Auto Mode** - Silent installation for scripts -- ๐Ÿ”ง **Update Mode** - Update existing installations -- ๐Ÿ”„ **Reinstall Mode** - Clean reinstall - -### **4. Comprehensive Error Handling** -- ๐Ÿšจ Smart error detection and recovery -- ๐Ÿ“ Detailed logging and debugging -- ๐Ÿ”ง Automatic fix application -- ๐Ÿ“Š Status reporting and diagnostics - -## ๐Ÿš€ **Usage:** - -### **Interactive Mode (Default):** -```bash -bash <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.5.5-dev/cyberpanel.sh) -``` - -### **Debug Mode:** -```bash -bash <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.5.5-dev/cyberpanel.sh) --debug -``` - -### **Auto Mode:** -```bash -bash <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.5.5-dev/cyberpanel.sh) --auto -``` - -### **Specific Version:** -```bash -bash <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.5.5-dev/cyberpanel.sh) -b v2.5.5-dev -``` - -## ๐ŸŽจ **Interactive Menu System:** - -### **Main Menu:** -1. ๐Ÿš€ Fresh Installation (Recommended) -2. ๐Ÿ”„ Update Existing Installation -3. ๐Ÿ”ง Reinstall CyberPanel -4. ๐Ÿ“Š Check System Status -5. ๐Ÿ› ๏ธ Advanced Options -6. โŒ Exit - -### **Advanced Options:** -- ๐Ÿ”ง Fix Installation Issues -- ๐Ÿงน Clean Installation Files -- ๐Ÿ“‹ View Installation Logs -- ๐Ÿ” System Diagnostics - -## ๐Ÿ”ง **Fixed Issues:** - -### **โœ… AlmaLinux 9 Support** -- Fixed `aspell` and `libc-client` dependency issues -- Proper package handling for AlmaLinux 9 -- Smart fallback for missing packages - -### **โœ… Modular Architecture** -- Each module under 500 lines (as requested) -- Easy to maintain and update -- Clear separation of concerns - -### **โœ… Better Error Handling** -- Comprehensive status checking -- Automatic fix application -- Detailed logging and reporting - -## ๐Ÿ“Š **Module Breakdown:** - -| Module | Lines | Purpose | -|--------|-------|---------| -| `cyberpanel.sh` | 300 | Main installer entry point | -| `os/detect.sh` | 367 | OS detection and basic setup | -| `deps/manager.sh` | 204 | Dependency coordination | -| `deps/rhel_deps.sh` | 222 | RHEL-based OS dependencies | -| `deps/debian_deps.sh` | 229 | Debian-based OS dependencies | -| `install/cyberpanel_installer.sh` | 276 | Installation logic | -| `fixes/cyberpanel_fixes.sh` | 372 | Fixes and repairs | -| `utils/ui.sh` | 450 | Beautiful UI components | -| `utils/menu.sh` | 400 | Interactive menu system | - -## ๐ŸŽ‰ **Benefits:** - -1. **โœ… All files under 500 lines** - Easy to manage -2. **โœ… Beautiful interactive UI** - Best install experience ever -3. **โœ… Modular design** - Easy to update and maintain -4. **โœ… Smart error handling** - Robust and reliable -5. **โœ… Multiple installation modes** - Flexible usage -6. **โœ… Comprehensive logging** - Easy debugging -7. **โœ… OS-specific handling** - Works on all supported systems -8. **โœ… Automatic fixes** - Self-healing installation - -## ๐Ÿš€ **Ready to Use!** - -The installer is now ready and will provide the **best CyberPanel installation experience ever**! - -When users run: -```bash -bash <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/cyberpanel.sh) --debug -``` - -They'll get: -- ๐ŸŽจ Beautiful interactive interface -- ๐Ÿ” Smart OS detection -- ๐Ÿ“ฆ Proper dependency handling -- ๐Ÿš€ Smooth installation process -- ๐Ÿ”ง Automatic fixes -- ๐Ÿ“Š Comprehensive status reporting - -**This is now the ultimate CyberPanel installer! ๐ŸŽ‰** diff --git a/cyberpanel_clean.sh b/cyberpanel_clean.sh deleted file mode 100644 index 34edb731a..000000000 --- a/cyberpanel_clean.sh +++ /dev/null @@ -1,1120 +0,0 @@ -#!/bin/bash - -# CyberPanel Clean Installer -# Simple, clean interface without escape codes -# This version works reliably in all terminals - -set -e - -# Global variables -SERVER_OS="" -OS_FAMILY="" -PACKAGE_MANAGER="" -ARCHITECTURE="" -BRANCH_NAME="" -DEBUG_MODE=false -AUTO_INSTALL=false -INTERACTIVE_MODE=true -INSTALLATION_TYPE="" - -# Logging function -log_message() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" | tee -a "/var/log/cyberpanel_install.log" 2>/dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" -} - -# Print status -print_status() { - local message="$1" - echo "$message" - log_message "$message" -} - -# Function to show banner -show_banner() { - clear - echo "" - echo "===============================================================================================================" - echo " CYBERPANEL COMPLETE INSTALLER" - echo "===============================================================================================================" - echo "" - echo " The Ultimate Web Hosting Control Panel" - echo " Powered by OpenLiteSpeed โ€ข Fast โ€ข Secure โ€ข Scalable" - echo "" - echo " Interactive Menus โ€ข Version Selection โ€ข Advanced Options" - echo "" - echo "===============================================================================================================" - echo "" -} - -# Function to detect OS -detect_os() { - print_status "Detecting operating system..." - - # Detect architecture - ARCHITECTURE=$(uname -m) - case $ARCHITECTURE in - x86_64) - print_status "Architecture: x86_64 (Supported)" - ;; - aarch64|arm64) - print_status "Architecture: $ARCHITECTURE (Limited support)" - ;; - *) - print_status "Architecture: $ARCHITECTURE (Not supported)" - return 1 - ;; - esac - - # Get OS release information - local OUTPUT=$(cat /etc/*release 2>/dev/null) - if [ -z "$OUTPUT" ]; then - print_status "ERROR: Cannot read OS release information" - return 1 - fi - - # Detect OS - if echo $OUTPUT | grep -q "AlmaLinux 9" ; then - SERVER_OS="AlmaLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: AlmaLinux 9" - elif echo $OUTPUT | grep -q "AlmaLinux 8" ; then - SERVER_OS="AlmaLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: AlmaLinux 8" - elif echo $OUTPUT | grep -q "CentOS Linux 9" ; then - SERVER_OS="CentOS9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: CentOS Linux 9" - elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then - SERVER_OS="CentOS8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: CentOS Linux 8" - elif echo $OUTPUT | grep -q "Rocky Linux 9" ; then - SERVER_OS="RockyLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: Rocky Linux 9" - elif echo $OUTPUT | grep -q "Rocky Linux 8" ; then - SERVER_OS="RockyLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: Rocky Linux 8" - elif echo $OUTPUT | grep -q "Ubuntu 22.04" ; then - SERVER_OS="Ubuntu2204" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Ubuntu 22.04" - elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - SERVER_OS="Ubuntu2004" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Ubuntu 20.04" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 12" ; then - SERVER_OS="Debian12" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Debian GNU/Linux 12" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 11" ; then - SERVER_OS="Debian11" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Debian GNU/Linux 11" - else - print_status "ERROR: Unsupported OS detected" - print_status "Supported OS: AlmaLinux 8/9, CentOS 8/9, Rocky Linux 8/9, Ubuntu 20.04/22.04, Debian 11/12" - return 1 - fi - - return 0 -} - -# Function to install dependencies -install_dependencies() { - print_status "Installing dependencies..." - - case $OS_FAMILY in - "rhel") - # Install EPEL - $PACKAGE_MANAGER install -y epel-release 2>/dev/null || true - - # Install development tools - $PACKAGE_MANAGER groupinstall -y 'Development Tools' 2>/dev/null || { - $PACKAGE_MANAGER install -y gcc gcc-c++ make kernel-devel 2>/dev/null || true - } - - # Install core packages - if [ "$SERVER_OS" = "AlmaLinux9" ] || [ "$SERVER_OS" = "CentOS9" ] || [ "$SERVER_OS" = "RockyLinux9" ]; then - # AlmaLinux 9 / CentOS 9 / Rocky Linux 9 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma python3 python3-pip python3-devel 2>/dev/null || true - $PACKAGE_MANAGER install -y aspell 2>/dev/null || print_status "WARNING: aspell not available, skipping..." - $PACKAGE_MANAGER install -y libc-client-devel 2>/dev/null || print_status "WARNING: libc-client-devel not available, skipping..." - else - # AlmaLinux 8 / CentOS 8 / Rocky Linux 8 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma aspell libc-client-devel python3 python3-pip python3-devel 2>/dev/null || true - fi - ;; - "debian") - # Update package lists - apt update -qq 2>/dev/null || true - - # Install essential packages - apt install -y -qq curl wget git unzip tar gzip bzip2 2>/dev/null || true - - # Install development tools - apt install -y -qq build-essential gcc g++ make python3-dev python3-pip 2>/dev/null || true - - # Install core packages - apt install -y -qq imagemagick php-gd libicu-dev libonig-dev 2>/dev/null || true - apt install -y -qq aspell 2>/dev/null || print_status "WARNING: aspell not available, skipping..." - apt install -y -qq libc-client-dev 2>/dev/null || print_status "WARNING: libc-client-dev not available, skipping..." - ;; - esac - - print_status "SUCCESS: Dependencies installed successfully" -} - -# Function to install CyberPanel -install_cyberpanel() { - print_status "Installing CyberPanel..." - - # Download and run the original installer - if [ -n "$BRANCH_NAME" ]; then - curl --silent -o cyberpanel.sh "https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/cyberpanel.sh" 2>/dev/null - else - curl --silent -o cyberpanel.sh "https://cyberpanel.sh/?dl&$SERVER_OS" 2>/dev/null - fi - - chmod +x cyberpanel.sh - - # Run the installer - if ./cyberpanel.sh $([ "$DEBUG_MODE" = true ] && echo "--debug") > /tmp/cyberpanel_install_output.log 2>&1; then - print_status "SUCCESS: CyberPanel installed successfully" - return 0 - else - print_status "ERROR: CyberPanel installation failed. Check /tmp/cyberpanel_install_output.log for details" - return 1 - fi -} - -# Function to apply fixes -apply_fixes() { - print_status "Applying installation fixes..." - - # Fix database issues - systemctl start mariadb 2>/dev/null || true - systemctl enable mariadb 2>/dev/null || true - mysqladmin -u root password '1234567' 2>/dev/null || true - - # Create cyberpanel database user - mysql -u root -p1234567 -e " - CREATE DATABASE IF NOT EXISTS cyberpanel; - CREATE USER IF NOT EXISTS 'cyberpanel'@'localhost' IDENTIFIED BY 'cyberpanel'; - GRANT ALL PRIVILEGES ON cyberpanel.* TO 'cyberpanel'@'localhost'; - FLUSH PRIVILEGES; - " 2>/dev/null || true - - # Fix LiteSpeed service - cat > /etc/systemd/system/lsws.service << 'EOF' -[Unit] -Description=LiteSpeed Web Server -After=network.target - -[Service] -Type=forking -User=root -Group=root -ExecStart=/usr/local/lsws/bin/lswsctrl start -ExecStop=/usr/local/lsws/bin/lswsctrl stop -ExecReload=/usr/local/lsws/bin/lswsctrl restart -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable lsws - systemctl start lsws - - # Fix CyberPanel service - cat > /etc/systemd/system/cyberpanel.service << 'EOF' -[Unit] -Description=CyberPanel Web Interface -After=network.target mariadb.service - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/usr/local/CyberCP -ExecStart=/usr/local/CyberPanel-venv/bin/python manage.py runserver 0.0.0.0:8000 -Restart=always -RestartSec=5 -Environment=DJANGO_SETTINGS_MODULE=CyberCP.settings - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable cyberpanel - - print_status "SUCCESS: All fixes applied successfully" -} - -# Function to show status summary -show_status_summary() { - echo "" - echo "===============================================================================================================" - echo " CYBERPANEL INSTALLATION STATUS" - echo "===============================================================================================================" - echo "" - - echo "CORE SERVICES STATUS:" - echo "--------------------------------------------------------------------------------" - - # Check services - if systemctl is-active --quiet mariadb; then - echo "SUCCESS: MariaDB Database - RUNNING" - else - echo "ERROR: MariaDB Database - NOT RUNNING" - fi - - if systemctl is-active --quiet lsws; then - echo "SUCCESS: LiteSpeed Web Server - RUNNING" - else - echo "ERROR: LiteSpeed Web Server - NOT RUNNING" - fi - - if systemctl is-active --quiet cyberpanel; then - echo "SUCCESS: CyberPanel Application - RUNNING" - else - echo "ERROR: CyberPanel Application - NOT RUNNING" - fi - - echo "" - echo "NETWORK PORTS STATUS:" - echo "--------------------------------------------------------------------------------" - - # Check ports - if netstat -tlnp | grep -q ":8090 "; then - echo "SUCCESS: Port 8090 (CyberPanel) - LISTENING" - else - echo "ERROR: Port 8090 (CyberPanel) - NOT LISTENING" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo "SUCCESS: Port 80 (HTTP) - LISTENING" - else - echo "ERROR: Port 80 (HTTP) - NOT LISTENING" - fi - - echo "" - echo "SUMMARY:" - echo "--------------------------------------------------------------------------------" - print_status "SUCCESS: INSTALLATION COMPLETED SUCCESSFULLY!" - echo "" - echo "Access CyberPanel at: http://your-server-ip:8090" - echo "Default username: admin" - echo "Default password: 1234567" - echo "" - echo "IMPORTANT: Change the default password immediately!" - echo "" -} - -# Function to show main menu -show_main_menu() { - show_banner - - echo "===============================================================================================================" - echo " SELECT INSTALLATION TYPE" - echo "===============================================================================================================" - echo "" - echo " 1. Fresh Installation (Recommended)" - echo " 2. Update Existing Installation" - echo " 3. Reinstall CyberPanel" - echo " 4. Check System Status" - echo " 5. Advanced Options" - echo " 6. Exit" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Enter your choice [1-6]: " - read -r choice - - case $choice in - 1) - INSTALLATION_TYPE="fresh" - show_fresh_install_menu - return - ;; - 2) - INSTALLATION_TYPE="update" - show_update_menu - return - ;; - 3) - INSTALLATION_TYPE="reinstall" - show_reinstall_menu - return - ;; - 4) - show_system_status - return - ;; - 5) - show_advanced_menu - return - ;; - 6) - echo "" - echo "Goodbye!" - exit 0 - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-6." - echo "" - ;; - esac - done -} - -# Function to show fresh installation menu -show_fresh_install_menu() { - echo "" - echo "===============================================================================================================" - echo " FRESH INSTALLATION SETUP" - echo "===============================================================================================================" - echo "" - - # Check if CyberPanel is already installed - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - echo "WARNING: CyberPanel appears to be already installed on this system." - echo " Consider using 'Update' or 'Reinstall' options instead." - echo "" - echo -n "Do you want to continue with fresh installation anyway? (y/n): " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - fi - - echo "Select installation option:" - echo "" - echo " 1. Install Latest Stable Version" - echo " 2. Install Development Version (v2.5.5-dev)" - echo " 3. Install Specific Version/Branch" - echo " 4. Quick Install (Auto-configure everything)" - echo " 5. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select installation option [1-5]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - show_installation_preferences - return - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - show_installation_preferences - return - ;; - 3) - show_version_selection - return - ;; - 4) - BRANCH_NAME="" - AUTO_INSTALL=true - start_installation - return - ;; - 5) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-5." - echo "" - ;; - esac - done -} - -# Function to show version selection -show_version_selection() { - echo "" - echo "===============================================================================================================" - echo " VERSION SELECTION" - echo "===============================================================================================================" - echo "" - echo "Available versions:" - echo "" - echo " 1. Latest Stable (Recommended)" - echo " 2. v2.5.5-dev (Development)" - echo " 3. v2.5.4 (Previous Stable)" - echo " 4. Custom Branch/Commit" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select version [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - BRANCH_NAME="v2.5.4" - break - ;; - 4) - echo -n "Enter branch name or commit hash: " - read -r BRANCH_NAME - break - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - show_installation_preferences -} - -# Function to show installation preferences -show_installation_preferences() { - echo "" - echo "===============================================================================================================" - echo " INSTALLATION PREFERENCES" - echo "===============================================================================================================" - echo "" - - # Debug mode - echo -n "Enable debug mode for detailed logging? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - DEBUG_MODE=true - ;; - esac - - # Auto-install - echo -n "Auto-install without further prompts? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - AUTO_INSTALL=true - ;; - esac - - # Show summary - echo "" - echo "===============================================================================================================" - echo " INSTALLATION SUMMARY" - echo "===============================================================================================================" - echo "" - echo " Type: $INSTALLATION_TYPE" - echo " Version: ${BRANCH_NAME:-'Latest Stable'}" - echo " Debug Mode: $DEBUG_MODE" - echo " Auto Install: $AUTO_INSTALL" - echo "" - echo "===============================================================================================================" - echo "" - - echo -n "Proceed with installation? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show update menu -show_update_menu() { - echo "" - echo "===============================================================================================================" - echo " UPDATE INSTALLATION" - echo "===============================================================================================================" - echo "" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo "ERROR: CyberPanel is not installed on this system." - echo " Please use 'Fresh Installation' instead." - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - # Check current version - local current_version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - current_version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - - echo "Current Installation:" - echo "Version: $current_version" - echo "Path: /usr/local/CyberCP" - echo "" - - echo "Select update option:" - echo "" - echo " 1. Update to Latest Stable" - echo " 2. Update to Development Version" - echo " 3. Update to Specific Version" - echo " 4. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select update option [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - echo -n "Proceed with update? (This will backup your current installation) (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show reinstall menu -show_reinstall_menu() { - echo "" - echo "===============================================================================================================" - echo " REINSTALL CYBERPANEL" - echo "===============================================================================================================" - echo "" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo "ERROR: CyberPanel is not installed on this system." - echo " Please use 'Fresh Installation' instead." - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - echo "WARNING: This will completely remove the existing CyberPanel installation" - echo " and install a fresh copy. All data will be lost!" - echo "" - - echo -n "Are you sure you want to reinstall? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - - echo "Select reinstall option:" - echo "" - echo " 1. Reinstall Latest Stable" - echo " 2. Reinstall Development Version" - echo " 3. Reinstall Specific Version" - echo " 4. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select reinstall option [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - echo -n "Proceed with reinstall? (This will delete all existing data) (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - start_installation - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show system status -show_system_status() { - echo "" - echo "===============================================================================================================" - echo " SYSTEM STATUS CHECK" - echo "===============================================================================================================" - echo "" - - # Check OS - local os_info=$(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2 2>/dev/null || echo 'Unknown') - echo "Operating System: $os_info" - - # Check CyberPanel installation - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - local version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - echo "CyberPanel: Installed (Version: $version)" - else - echo "CyberPanel: Not Installed" - fi - - # Check services - echo "" - echo "Services Status:" - if systemctl is-active --quiet mariadb; then - echo " SUCCESS: MariaDB - Running" - else - echo " ERROR: MariaDB - Not Running" - fi - - if systemctl is-active --quiet lsws; then - echo " SUCCESS: LiteSpeed - Running" - else - echo " ERROR: LiteSpeed - Not Running" - fi - - if systemctl is-active --quiet cyberpanel; then - echo " SUCCESS: CyberPanel - Running" - else - echo " ERROR: CyberPanel - Not Running" - fi - - # Check ports - echo "" - echo "Port Status:" - if netstat -tlnp | grep -q ":8090 "; then - echo " SUCCESS: Port 8090 (CyberPanel) - Listening" - else - echo " ERROR: Port 8090 (CyberPanel) - Not Listening" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo " SUCCESS: Port 80 (HTTP) - Listening" - else - echo " ERROR: Port 80 (HTTP) - Not Listening" - fi - - echo "" - echo -n "Return to main menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - exit 0 - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show advanced menu -show_advanced_menu() { - echo "" - echo "===============================================================================================================" - echo " ADVANCED OPTIONS" - echo "===============================================================================================================" - echo "" - echo " 1. Fix Installation Issues" - echo " 2. Clean Installation Files" - echo " 3. View Installation Logs" - echo " 4. System Diagnostics" - echo " 5. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select advanced option [1-5]: " - read -r choice - - case $choice in - 1) - show_fix_menu - return - ;; - 2) - show_clean_menu - return - ;; - 3) - show_logs_menu - return - ;; - 4) - show_diagnostics - return - ;; - 5) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-5." - echo "" - ;; - esac - done -} - -# Function to show fix menu -show_fix_menu() { - echo "" - echo "===============================================================================================================" - echo " FIX INSTALLATION ISSUES" - echo "===============================================================================================================" - echo "" - echo "This will attempt to fix common CyberPanel installation issues:" - echo "โ€ข Database connection problems" - echo "โ€ข Service configuration issues" - echo "โ€ข SSL certificate problems" - echo "โ€ข File permission issues" - echo "" - - echo -n "Proceed with fixing installation issues? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_advanced_menu - ;; - *) - print_status "Applying fixes..." - apply_fixes - print_status "SUCCESS: Fixes applied successfully" - echo "" - read -p "Press Enter to return to advanced menu..." - show_advanced_menu - ;; - esac -} - -# Function to show clean menu -show_clean_menu() { - echo "" - echo "===============================================================================================================" - echo " CLEAN INSTALLATION FILES" - echo "===============================================================================================================" - echo "" - echo "WARNING: This will remove temporary installation files and logs." - echo " This action cannot be undone!" - echo "" - - echo -n "Proceed with cleaning? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - rm -rf /tmp/cyberpanel_* - rm -rf /var/log/cyberpanel_install.log - echo "SUCCESS: Cleanup complete! Temporary files and logs have been removed." - ;; - esac - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show logs menu -show_logs_menu() { - echo "" - echo "===============================================================================================================" - echo " VIEW INSTALLATION LOGS" - echo "===============================================================================================================" - echo "" - - local log_file="/var/log/cyberpanel_install.log" - - if [ -f "$log_file" ]; then - echo "Installation Log: $log_file" - echo "Log Size: $(du -h "$log_file" | cut -f1)" - echo "" - - echo -n "View recent log entries? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - ;; - *) - echo "" - echo "Recent log entries:" - tail -n 20 "$log_file" - ;; - esac - else - echo "No installation logs found at $log_file" - fi - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show diagnostics -show_diagnostics() { - echo "" - echo "===============================================================================================================" - echo " SYSTEM DIAGNOSTICS" - echo "===============================================================================================================" - echo "" - - echo "Running system diagnostics..." - echo "" - - # Disk space - echo "Disk Usage:" - df -h | grep -E '^/dev/' - - # Memory usage - echo "" - echo "Memory Usage:" - free -h - - # Load average - echo "" - echo "System Load:" - uptime - - # Network interfaces - echo "" - echo "Network Interfaces:" - ip addr show | grep -E '^[0-9]+:|inet ' - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to start installation -start_installation() { - echo "" - echo "===============================================================================================================" - echo " STARTING INSTALLATION" - echo "===============================================================================================================" - echo "" - - # Detect OS - if ! detect_os; then - print_status "ERROR: Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "ERROR: CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "SUCCESS: Installation completed successfully!" -} - -# Function to parse command line arguments -parse_arguments() { - while [[ $# -gt 0 ]]; do - case $1 in - -b|--branch) - BRANCH_NAME="$2" - shift 2 - ;; - --debug) - DEBUG_MODE=true - set -x - shift - ;; - --auto) - AUTO_INSTALL=true - INTERACTIVE_MODE=false - shift - ;; - -h|--help) - echo "Usage: $0 [OPTIONS]" - echo "Options:" - echo " -b, --branch BRANCH Install from specific branch/commit" - echo " --debug Enable debug mode" - echo " --auto Auto mode without prompts" - echo " -h, --help Show this help message" - echo "" - echo "Examples:" - echo " $0 # Interactive installation" - echo " $0 --debug # Debug mode installation" - echo " $0 --auto # Auto installation" - echo " $0 -b v2.5.5-dev # Install development version" - exit 0 - ;; - *) - print_status "WARNING: Unknown option: $1" - shift - ;; - esac - done -} - -# Main installation function -main() { - # Initialize log file - mkdir -p /var/log - touch "/var/log/cyberpanel_install.log" - - print_status "CyberPanel Clean Installer Starting..." - print_status "Log file: /var/log/cyberpanel_install.log" - - # Parse command line arguments - parse_arguments "$@" - - # Check if auto mode is requested - if [ "$AUTO_INSTALL" = true ]; then - # Run auto mode - print_status "Starting auto mode..." - - # Detect OS - if ! detect_os; then - print_status "ERROR: Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "ERROR: CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "SUCCESS: Installation completed successfully!" - else - # Run interactive mode - show_main_menu - fi -} - -# Run main function -main "$@" diff --git a/cyberpanel_complete.sh b/cyberpanel_complete.sh deleted file mode 100644 index 6d276d9c3..000000000 --- a/cyberpanel_complete.sh +++ /dev/null @@ -1,1117 +0,0 @@ -#!/bin/bash - -# CyberPanel Complete Standalone Installer -# Full-featured installer with interactive menus and all options -# This version works when downloaded via curl - -set -e - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -PURPLE='\033[0;35m' -CYAN='\033[0;36m' -WHITE='\033[1;37m' -BOLD='\033[1m' -DIM='\033[2m' -NC='\033[0m' # No Color - -# Global variables -SERVER_OS="" -OS_FAMILY="" -PACKAGE_MANAGER="" -ARCHITECTURE="" -BRANCH_NAME="" -DEBUG_MODE=false -AUTO_INSTALL=false -INTERACTIVE_MODE=true -INSTALLATION_TYPE="" - -# Logging function -log_message() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" | tee -a "/var/log/cyberpanel_install.log" 2>/dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" -} - -# Print colored output -print_status() { - local color=$1 - local message=$2 - echo -e "${color}${message}${NC}" - log_message "$message" -} - -# Function to show banner -show_banner() { - clear - echo -e "${BLUE}โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${WHITE}${BOLD}๐Ÿš€ CYBERPANEL COMPLETE INSTALLER ๐Ÿš€${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${CYAN}The Ultimate Web Hosting Control Panel${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${YELLOW}Powered by OpenLiteSpeed โ€ข Fast โ€ข Secure โ€ข Scalable${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${GREEN}โœจ Interactive Menus โ€ข Version Selection โ€ข Advanced Options โœจ${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - echo "" -} - -# Function to detect OS -detect_os() { - print_status "$BLUE" "๐Ÿ” Detecting operating system..." - - # Detect architecture - ARCHITECTURE=$(uname -m) - case $ARCHITECTURE in - x86_64) - print_status "$GREEN" "Architecture: x86_64 (Supported)" - ;; - aarch64|arm64) - print_status "$YELLOW" "Architecture: $ARCHITECTURE (Limited support)" - ;; - *) - print_status "$RED" "Architecture: $ARCHITECTURE (Not supported)" - return 1 - ;; - esac - - # Get OS release information - local OUTPUT=$(cat /etc/*release 2>/dev/null) - if [ -z "$OUTPUT" ]; then - print_status "$RED" "โŒ Cannot read OS release information" - return 1 - fi - - # Detect OS - if echo $OUTPUT | grep -q "AlmaLinux 9" ; then - SERVER_OS="AlmaLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: AlmaLinux 9" - elif echo $OUTPUT | grep -q "AlmaLinux 8" ; then - SERVER_OS="AlmaLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: AlmaLinux 8" - elif echo $OUTPUT | grep -q "CentOS Linux 9" ; then - SERVER_OS="CentOS9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: CentOS Linux 9" - elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then - SERVER_OS="CentOS8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: CentOS Linux 8" - elif echo $OUTPUT | grep -q "Rocky Linux 9" ; then - SERVER_OS="RockyLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: Rocky Linux 9" - elif echo $OUTPUT | grep -q "Rocky Linux 8" ; then - SERVER_OS="RockyLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: Rocky Linux 8" - elif echo $OUTPUT | grep -q "Ubuntu 22.04" ; then - SERVER_OS="Ubuntu2204" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Ubuntu 22.04" - elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - SERVER_OS="Ubuntu2004" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Ubuntu 20.04" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 12" ; then - SERVER_OS="Debian12" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Debian GNU/Linux 12" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 11" ; then - SERVER_OS="Debian11" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Debian GNU/Linux 11" - else - print_status "$RED" "โŒ Unsupported OS detected" - print_status "$YELLOW" "Supported OS: AlmaLinux 8/9, CentOS 8/9, Rocky Linux 8/9, Ubuntu 20.04/22.04, Debian 11/12" - return 1 - fi - - return 0 -} - -# Function to install dependencies -install_dependencies() { - print_status "$BLUE" "๐Ÿ“ฆ Installing dependencies..." - - case $OS_FAMILY in - "rhel") - # Install EPEL - $PACKAGE_MANAGER install -y epel-release 2>/dev/null || true - - # Install development tools - $PACKAGE_MANAGER groupinstall -y 'Development Tools' 2>/dev/null || { - $PACKAGE_MANAGER install -y gcc gcc-c++ make kernel-devel 2>/dev/null || true - } - - # Install core packages - if [ "$SERVER_OS" = "AlmaLinux9" ] || [ "$SERVER_OS" = "CentOS9" ] || [ "$SERVER_OS" = "RockyLinux9" ]; then - # AlmaLinux 9 / CentOS 9 / Rocky Linux 9 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma python3 python3-pip python3-devel 2>/dev/null || true - $PACKAGE_MANAGER install -y aspell 2>/dev/null || print_status "$YELLOW" "aspell not available, skipping..." - $PACKAGE_MANAGER install -y libc-client-devel 2>/dev/null || print_status "$YELLOW" "libc-client-devel not available, skipping..." - else - # AlmaLinux 8 / CentOS 8 / Rocky Linux 8 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma aspell libc-client-devel python3 python3-pip python3-devel 2>/dev/null || true - fi - ;; - "debian") - # Update package lists - apt update -qq 2>/dev/null || true - - # Install essential packages - apt install -y -qq curl wget git unzip tar gzip bzip2 2>/dev/null || true - - # Install development tools - apt install -y -qq build-essential gcc g++ make python3-dev python3-pip 2>/dev/null || true - - # Install core packages - apt install -y -qq imagemagick php-gd libicu-dev libonig-dev 2>/dev/null || true - apt install -y -qq aspell 2>/dev/null || print_status "$YELLOW" "aspell not available, skipping..." - apt install -y -qq libc-client-dev 2>/dev/null || print_status "$YELLOW" "libc-client-dev not available, skipping..." - ;; - esac - - print_status "$GREEN" "โœ… Dependencies installed successfully" -} - -# Function to install CyberPanel -install_cyberpanel() { - print_status "$BLUE" "๐Ÿš€ Installing CyberPanel..." - - # Download and run the original installer - if [ -n "$BRANCH_NAME" ]; then - curl --silent -o cyberpanel.sh "https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/cyberpanel.sh" 2>/dev/null - else - curl --silent -o cyberpanel.sh "https://cyberpanel.sh/?dl&$SERVER_OS" 2>/dev/null - fi - - chmod +x cyberpanel.sh - - # Run the installer - if ./cyberpanel.sh $([ "$DEBUG_MODE" = true ] && echo "--debug") > /tmp/cyberpanel_install_output.log 2>&1; then - print_status "$GREEN" "โœ… CyberPanel installed successfully" - return 0 - else - print_status "$RED" "โŒ CyberPanel installation failed. Check /tmp/cyberpanel_install_output.log for details" - return 1 - fi -} - -# Function to apply fixes -apply_fixes() { - print_status "$BLUE" "๐Ÿ”ง Applying installation fixes..." - - # Fix database issues - systemctl start mariadb 2>/dev/null || true - systemctl enable mariadb 2>/dev/null || true - mysqladmin -u root password '1234567' 2>/dev/null || true - - # Create cyberpanel database user - mysql -u root -p1234567 -e " - CREATE DATABASE IF NOT EXISTS cyberpanel; - CREATE USER IF NOT EXISTS 'cyberpanel'@'localhost' IDENTIFIED BY 'cyberpanel'; - GRANT ALL PRIVILEGES ON cyberpanel.* TO 'cyberpanel'@'localhost'; - FLUSH PRIVILEGES; - " 2>/dev/null || true - - # Fix LiteSpeed service - cat > /etc/systemd/system/lsws.service << 'EOF' -[Unit] -Description=LiteSpeed Web Server -After=network.target - -[Service] -Type=forking -User=root -Group=root -ExecStart=/usr/local/lsws/bin/lswsctrl start -ExecStop=/usr/local/lsws/bin/lswsctrl stop -ExecReload=/usr/local/lsws/bin/lswsctrl restart -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable lsws - systemctl start lsws - - # Fix CyberPanel service - cat > /etc/systemd/system/cyberpanel.service << 'EOF' -[Unit] -Description=CyberPanel Web Interface -After=network.target mariadb.service - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/usr/local/CyberCP -ExecStart=/usr/local/CyberPanel-venv/bin/python manage.py runserver 0.0.0.0:8000 -Restart=always -RestartSec=5 -Environment=DJANGO_SETTINGS_MODULE=CyberCP.settings - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable cyberpanel - - print_status "$GREEN" "โœ… All fixes applied successfully" -} - -# Function to show status summary -show_status_summary() { - echo "" - echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—" - echo "โ•‘ โ•‘" - echo "โ•‘ ๐Ÿ“Š CYBERPANEL INSTALLATION STATUS ๐Ÿ“Š โ•‘" - echo "โ•‘ โ•‘" - echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - echo "" - - echo "๐Ÿ”ง CORE SERVICES STATUS:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - - # Check services - if systemctl is-active --quiet mariadb; then - echo "โœ… MariaDB Database: RUNNING" - else - echo "โŒ MariaDB Database: NOT RUNNING" - fi - - if systemctl is-active --quiet lsws; then - echo "โœ… LiteSpeed Web Server: RUNNING" - else - echo "โŒ LiteSpeed Web Server: NOT RUNNING" - fi - - if systemctl is-active --quiet cyberpanel; then - echo "โœ… CyberPanel Application: RUNNING" - else - echo "โŒ CyberPanel Application: NOT RUNNING" - fi - - echo "" - echo "๐ŸŒ NETWORK PORTS STATUS:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - - # Check ports - if netstat -tlnp | grep -q ":8090 "; then - echo "โœ… Port 8090 (CyberPanel): LISTENING" - else - echo "โŒ Port 8090 (CyberPanel): NOT LISTENING" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo "โœ… Port 80 (HTTP): LISTENING" - else - echo "โŒ Port 80 (HTTP): NOT LISTENING" - fi - - echo "" - echo "๐Ÿ“Š SUMMARY:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - print_status "$GREEN" "๐ŸŽ‰ INSTALLATION COMPLETED SUCCESSFULLY!" - echo "" - echo "๐ŸŒ Access CyberPanel at: http://your-server-ip:8090" - echo "๐Ÿ‘ค Default username: admin" - echo "๐Ÿ”‘ Default password: 1234567" - echo "" - echo "โš ๏ธ IMPORTANT: Change the default password immediately!" - echo "" -} - -# Function to show main menu -show_main_menu() { - show_banner - - local options=( - "๐Ÿš€ Fresh Installation (Recommended)" - "๐Ÿ”„ Update Existing Installation" - "๐Ÿ”ง Reinstall CyberPanel" - "๐Ÿ“Š Check System Status" - "๐Ÿ› ๏ธ Advanced Options" - "โŒ Exit" - ) - - echo -e "${WHITE}${BOLD}Select Installation Type:${NC}" - echo "" - for i in "${!options[@]}"; do - local option_num=$((i + 1)) - echo -e "${BLUE}${option_num}.${NC} ${options[i]}" - done - echo "" - - while true; do - echo -e "${CYAN}Enter your choice${NC} [1-6]: " - read -r choice - - case $choice in - 1) - INSTALLATION_TYPE="fresh" - show_fresh_install_menu - return - ;; - 2) - INSTALLATION_TYPE="update" - show_update_menu - return - ;; - 3) - INSTALLATION_TYPE="reinstall" - show_reinstall_menu - return - ;; - 4) - show_system_status - return - ;; - 5) - show_advanced_menu - return - ;; - 6) - echo -e "${GREEN}Goodbye!${NC}" - exit 0 - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-6.${NC}" - ;; - esac - done -} - -# Function to show fresh installation menu -show_fresh_install_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿš€ Fresh Installation Setup${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - # Check if CyberPanel is already installed - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - echo -e "${YELLOW}โš ๏ธ CyberPanel appears to be already installed on this system.${NC}" - echo -e "${YELLOW}Consider using 'Update' or 'Reinstall' options instead.${NC}" - echo "" - echo -e "${CYAN}Do you want to continue with fresh installation anyway? (y/n)${NC}: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - fi - - # Show installation options - local options=( - "๐Ÿ“ฆ Install Latest Stable Version" - "๐Ÿ”ฌ Install Development Version (v2.5.5-dev)" - "๐Ÿท๏ธ Install Specific Version/Branch" - "โšก Quick Install (Auto-configure everything)" - "๐Ÿ”™ Back to Main Menu" - ) - - echo -e "${WHITE}${BOLD}Fresh Installation Options:${NC}" - echo "" - for i in "${!options[@]}"; do - local option_num=$((i + 1)) - echo -e "${BLUE}${option_num}.${NC} ${options[i]}" - done - echo "" - - while true; do - echo -e "${CYAN}Select installation option${NC} [1-5]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - show_installation_preferences - return - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - show_installation_preferences - return - ;; - 3) - show_version_selection - return - ;; - 4) - BRANCH_NAME="" - AUTO_INSTALL=true - start_installation - return - ;; - 5) - show_main_menu - return - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-5.${NC}" - ;; - esac - done -} - -# Function to show version selection -show_version_selection() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿท๏ธ Version Selection${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - echo -e "${WHITE}Available versions:${NC}" - echo -e "${BLUE}1.${NC} Latest Stable (Recommended)" - echo -e "${BLUE}2.${NC} v2.5.5-dev (Development)" - echo -e "${BLUE}3.${NC} v2.5.4 (Previous Stable)" - echo -e "${BLUE}4.${NC} Custom Branch/Commit" - echo "" - - while true; do - echo -e "${CYAN}Select version${NC} [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - BRANCH_NAME="v2.5.4" - break - ;; - 4) - echo -e "${CYAN}Enter branch name or commit hash${NC}: " - read -r BRANCH_NAME - break - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-4.${NC}" - ;; - esac - done - - show_installation_preferences -} - -# Function to show installation preferences -show_installation_preferences() { - echo "" - echo -e "${PURPLE}${BOLD}โš™๏ธ Installation Preferences${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - # Debug mode - echo -e "${CYAN}Enable debug mode for detailed logging? (y/n)${NC} [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - DEBUG_MODE=true - ;; - esac - - # Auto-install - echo -e "${CYAN}Auto-install without further prompts? (y/n)${NC} [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - AUTO_INSTALL=true - ;; - esac - - # Show summary - echo "" - echo -e "${BLUE}โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—${NC}" - echo -e "${BLUE}โ•‘${NC} ${WHITE}${BOLD}Installation Summary${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} Type: $INSTALLATION_TYPE" - echo -e "${BLUE}โ•‘${NC} Version: ${BRANCH_NAME:-'Latest Stable'}" - echo -e "${BLUE}โ•‘${NC} Debug Mode: $DEBUG_MODE" - echo -e "${BLUE}โ•‘${NC} Auto Install: $AUTO_INSTALL" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - echo "" - - echo -e "${CYAN}Proceed with installation? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show update menu -show_update_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ”„ Update Installation${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo -e "${RED}โŒ CyberPanel is not installed on this system.${NC}" - echo -e "${RED}Please use 'Fresh Installation' instead.${NC}" - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - # Check current version - local current_version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - current_version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - - echo -e "${GREEN}Current Installation:${NC}" - echo -e "Version: $current_version" - echo -e "Path: /usr/local/CyberCP" - echo "" - - local options=( - "๐Ÿ“ˆ Update to Latest Stable" - "๐Ÿ”ฌ Update to Development Version" - "๐Ÿท๏ธ Update to Specific Version" - "๐Ÿ”™ Back to Main Menu" - ) - - echo -e "${WHITE}${BOLD}Update Options:${NC}" - echo "" - for i in "${!options[@]}"; do - local option_num=$((i + 1)) - echo -e "${BLUE}${option_num}.${NC} ${options[i]}" - done - echo "" - - while true; do - echo -e "${CYAN}Select update option${NC} [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-4.${NC}" - ;; - esac - done - - echo -e "${CYAN}Proceed with update? (This will backup your current installation) (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show reinstall menu -show_reinstall_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ”ง Reinstall CyberPanel${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo -e "${RED}โŒ CyberPanel is not installed on this system.${NC}" - echo -e "${RED}Please use 'Fresh Installation' instead.${NC}" - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - echo -e "${YELLOW}โš ๏ธ WARNING: This will completely remove the existing CyberPanel installation${NC}" - echo -e "${YELLOW}and install a fresh copy. All data will be lost!${NC}" - echo "" - - echo -e "${CYAN}Are you sure you want to reinstall? (y/n)${NC} [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - - local options=( - "๐Ÿ“ฆ Reinstall Latest Stable" - "๐Ÿ”ฌ Reinstall Development Version" - "๐Ÿท๏ธ Reinstall Specific Version" - "๐Ÿ”™ Back to Main Menu" - ) - - echo -e "${WHITE}${BOLD}Reinstall Options:${NC}" - echo "" - for i in "${!options[@]}"; do - local option_num=$((i + 1)) - echo -e "${BLUE}${option_num}.${NC} ${options[i]}" - done - echo "" - - while true; do - echo -e "${CYAN}Select reinstall option${NC} [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-4.${NC}" - ;; - esac - done - - echo -e "${CYAN}Proceed with reinstall? (This will delete all existing data) (y/n)${NC} [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - start_installation - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show system status -show_system_status() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ“Š System Status Check${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - # Check OS - local os_info=$(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2 2>/dev/null || echo 'Unknown') - echo -e "${WHITE}Operating System:${NC} $os_info" - - # Check CyberPanel installation - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - local version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - echo -e "${GREEN}CyberPanel:${NC} Installed (Version: $version)" - else - echo -e "${RED}CyberPanel:${NC} Not Installed" - fi - - # Check services - echo -e "\n${WHITE}Services Status:${NC}" - if systemctl is-active --quiet mariadb; then - echo -e " ${GREEN}โœ…${NC} MariaDB: Running" - else - echo -e " ${RED}โŒ${NC} MariaDB: Not Running" - fi - - if systemctl is-active --quiet lsws; then - echo -e " ${GREEN}โœ…${NC} LiteSpeed: Running" - else - echo -e " ${RED}โŒ${NC} LiteSpeed: Not Running" - fi - - if systemctl is-active --quiet cyberpanel; then - echo -e " ${GREEN}โœ…${NC} CyberPanel: Running" - else - echo -e " ${RED}โŒ${NC} CyberPanel: Not Running" - fi - - # Check ports - echo -e "\n${WHITE}Port Status:${NC}" - if netstat -tlnp | grep -q ":8090 "; then - echo -e " ${GREEN}โœ…${NC} Port 8090 (CyberPanel): Listening" - else - echo -e " ${RED}โŒ${NC} Port 8090 (CyberPanel): Not Listening" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo -e " ${GREEN}โœ…${NC} Port 80 (HTTP): Listening" - else - echo -e " ${RED}โŒ${NC} Port 80 (HTTP): Not Listening" - fi - - echo "" - echo -e "${CYAN}Return to main menu? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - exit 0 - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show advanced menu -show_advanced_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ› ๏ธ Advanced Options${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - local options=( - "๐Ÿ”ง Fix Installation Issues" - "๐Ÿงน Clean Installation Files" - "๐Ÿ“‹ View Installation Logs" - "๐Ÿ” System Diagnostics" - "๐Ÿ”™ Back to Main Menu" - ) - - echo -e "${WHITE}${BOLD}Advanced Options:${NC}" - echo "" - for i in "${!options[@]}"; do - local option_num=$((i + 1)) - echo -e "${BLUE}${option_num}.${NC} ${options[i]}" - done - echo "" - - while true; do - echo -e "${CYAN}Select advanced option${NC} [1-5]: " - read -r choice - - case $choice in - 1) - show_fix_menu - return - ;; - 2) - show_clean_menu - return - ;; - 3) - show_logs_menu - return - ;; - 4) - show_diagnostics - return - ;; - 5) - show_main_menu - return - ;; - *) - echo -e "${RED}Invalid choice. Please enter 1-5.${NC}" - ;; - esac - done -} - -# Function to show fix menu -show_fix_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ”ง Fix Installation Issues${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - echo -e "${YELLOW}This will attempt to fix common CyberPanel installation issues:${NC}" - echo "โ€ข Database connection problems" - echo "โ€ข Service configuration issues" - echo "โ€ข SSL certificate problems" - echo "โ€ข File permission issues" - echo "" - - echo -e "${CYAN}Proceed with fixing installation issues? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_advanced_menu - ;; - *) - print_status "$BLUE" "๐Ÿ”ง Applying fixes..." - apply_fixes - print_status "$GREEN" "โœ… Fixes applied successfully" - echo "" - read -p "Press Enter to return to advanced menu..." - show_advanced_menu - ;; - esac -} - -# Function to show clean menu -show_clean_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿงน Clean Installation Files${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - echo -e "${YELLOW}โš ๏ธ WARNING: This will remove temporary installation files and logs.${NC}" - echo -e "${YELLOW}This action cannot be undone!${NC}" - echo "" - - echo -e "${CYAN}Proceed with cleaning? (y/n)${NC} [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - rm -rf /tmp/cyberpanel_* - rm -rf /var/log/cyberpanel_install.log - echo -e "${GREEN}โœ… Cleanup complete! Temporary files and logs have been removed.${NC}" - ;; - esac - - echo "" - echo -e "${CYAN}Return to advanced menu? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show logs menu -show_logs_menu() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ“‹ View Installation Logs${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - local log_file="/var/log/cyberpanel_install.log" - - if [ -f "$log_file" ]; then - echo -e "${WHITE}Installation Log:${NC} $log_file" - echo -e "${WHITE}Log Size:${NC} $(du -h "$log_file" | cut -f1)" - echo "" - - echo -e "${CYAN}View recent log entries? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - ;; - *) - echo -e "${CYAN}Recent log entries:${NC}" - tail -n 20 "$log_file" - ;; - esac - else - echo -e "${YELLOW}No installation logs found at $log_file${NC}" - fi - - echo "" - echo -e "${CYAN}Return to advanced menu? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show diagnostics -show_diagnostics() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿ” System Diagnostics${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - echo -e "${WHITE}Running system diagnostics...${NC}" - echo "" - - # Disk space - echo -e "${WHITE}Disk Usage:${NC}" - df -h | grep -E '^/dev/' - - # Memory usage - echo -e "\n${WHITE}Memory Usage:${NC}" - free -h - - # Load average - echo -e "\n${WHITE}System Load:${NC}" - uptime - - # Network interfaces - echo -e "\n${WHITE}Network Interfaces:${NC}" - ip addr show | grep -E '^[0-9]+:|inet ' - - echo "" - echo -e "${CYAN}Return to advanced menu? (y/n)${NC} [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to start installation -start_installation() { - echo "" - echo -e "${PURPLE}${BOLD}๐Ÿš€ Starting Installation${NC}" - echo -e "${PURPLE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - - # Detect OS - if ! detect_os; then - print_status "$RED" "โŒ Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "$RED" "โŒ CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "$GREEN" "๐ŸŽ‰ Installation completed successfully!" -} - -# Function to parse command line arguments -parse_arguments() { - while [[ $# -gt 0 ]]; do - case $1 in - -b|--branch) - BRANCH_NAME="$2" - shift 2 - ;; - --debug) - DEBUG_MODE=true - set -x - shift - ;; - --auto) - AUTO_INSTALL=true - INTERACTIVE_MODE=false - shift - ;; - -h|--help) - echo "Usage: $0 [OPTIONS]" - echo "Options:" - echo " -b, --branch BRANCH Install from specific branch/commit" - echo " --debug Enable debug mode" - echo " --auto Auto mode without prompts" - echo " -h, --help Show this help message" - echo "" - echo "Examples:" - echo " $0 # Interactive installation" - echo " $0 --debug # Debug mode installation" - echo " $0 --auto # Auto installation" - echo " $0 -b v2.5.5-dev # Install development version" - exit 0 - ;; - *) - print_status "$YELLOW" "Unknown option: $1" - shift - ;; - esac - done -} - -# Main installation function -main() { - # Initialize log file - mkdir -p /var/log - touch "/var/log/cyberpanel_install.log" - - print_status "$BLUE" "๐Ÿš€ CyberPanel Complete Installer Starting..." - print_status "$BLUE" "Log file: /var/log/cyberpanel_install.log" - - # Parse command line arguments - parse_arguments "$@" - - # Check if auto mode is requested - if [ "$AUTO_INSTALL" = true ]; then - # Run auto mode - print_status "$BLUE" "๐Ÿค– Starting auto mode..." - - # Detect OS - if ! detect_os; then - print_status "$RED" "โŒ Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "$RED" "โŒ CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "$GREEN" "๐ŸŽ‰ Installation completed successfully!" - else - # Run interactive mode - show_main_menu - fi -} - -# Run main function -main "$@" diff --git a/cyberpanel_simple.sh b/cyberpanel_simple.sh deleted file mode 100644 index 5f469dbf8..000000000 --- a/cyberpanel_simple.sh +++ /dev/null @@ -1,1117 +0,0 @@ -#!/bin/bash - -# CyberPanel Simple Installer -# Ultra-simple version that works reliably in all terminals - -set -e - -# Global variables -SERVER_OS="" -OS_FAMILY="" -PACKAGE_MANAGER="" -ARCHITECTURE="" -BRANCH_NAME="" -DEBUG_MODE=false -AUTO_INSTALL=false -INSTALLATION_TYPE="" - -# Logging function -log_message() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" | tee -a "/var/log/cyberpanel_install.log" 2>/dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" -} - -# Print status -print_status() { - local message="$1" - echo "$message" - log_message "$message" -} - -# Function to show banner -show_banner() { - clear - echo "" - echo "===============================================================================================================" - echo " CYBERPANEL COMPLETE INSTALLER" - echo "===============================================================================================================" - echo "" - echo " The Ultimate Web Hosting Control Panel" - echo " Powered by OpenLiteSpeed โ€ข Fast โ€ข Secure โ€ข Scalable" - echo "" - echo " Interactive Menus โ€ข Version Selection โ€ข Advanced Options" - echo "" - echo "===============================================================================================================" - echo "" -} - -# Function to detect OS -detect_os() { - print_status "Detecting operating system..." - - # Detect architecture - ARCHITECTURE=$(uname -m) - case $ARCHITECTURE in - x86_64) - print_status "Architecture: x86_64 (Supported)" - ;; - aarch64|arm64) - print_status "Architecture: $ARCHITECTURE (Limited support)" - ;; - *) - print_status "Architecture: $ARCHITECTURE (Not supported)" - return 1 - ;; - esac - - # Get OS release information - local OUTPUT=$(cat /etc/*release 2>/dev/null) - if [ -z "$OUTPUT" ]; then - print_status "ERROR: Cannot read OS release information" - return 1 - fi - - # Detect OS - if echo $OUTPUT | grep -q "AlmaLinux 9" ; then - SERVER_OS="AlmaLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: AlmaLinux 9" - elif echo $OUTPUT | grep -q "AlmaLinux 8" ; then - SERVER_OS="AlmaLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: AlmaLinux 8" - elif echo $OUTPUT | grep -q "CentOS Linux 9" ; then - SERVER_OS="CentOS9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: CentOS Linux 9" - elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then - SERVER_OS="CentOS8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: CentOS Linux 8" - elif echo $OUTPUT | grep -q "Rocky Linux 9" ; then - SERVER_OS="RockyLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "Detected: Rocky Linux 9" - elif echo $OUTPUT | grep -q "Rocky Linux 8" ; then - SERVER_OS="RockyLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "Detected: Rocky Linux 8" - elif echo $OUTPUT | grep -q "Ubuntu 22.04" ; then - SERVER_OS="Ubuntu2204" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Ubuntu 22.04" - elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - SERVER_OS="Ubuntu2004" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Ubuntu 20.04" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 12" ; then - SERVER_OS="Debian12" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Debian GNU/Linux 12" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 11" ; then - SERVER_OS="Debian11" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "Detected: Debian GNU/Linux 11" - else - print_status "ERROR: Unsupported OS detected" - print_status "Supported OS: AlmaLinux 8/9, CentOS 8/9, Rocky Linux 8/9, Ubuntu 20.04/22.04, Debian 11/12" - return 1 - fi - - return 0 -} - -# Function to install dependencies -install_dependencies() { - print_status "Installing dependencies..." - - case $OS_FAMILY in - "rhel") - # Install EPEL - $PACKAGE_MANAGER install -y epel-release 2>/dev/null || true - - # Install development tools - $PACKAGE_MANAGER groupinstall -y 'Development Tools' 2>/dev/null || { - $PACKAGE_MANAGER install -y gcc gcc-c++ make kernel-devel 2>/dev/null || true - } - - # Install core packages - if [ "$SERVER_OS" = "AlmaLinux9" ] || [ "$SERVER_OS" = "CentOS9" ] || [ "$SERVER_OS" = "RockyLinux9" ]; then - # AlmaLinux 9 / CentOS 9 / Rocky Linux 9 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma python3 python3-pip python3-devel 2>/dev/null || true - $PACKAGE_MANAGER install -y aspell 2>/dev/null || print_status "WARNING: aspell not available, skipping..." - $PACKAGE_MANAGER install -y libc-client-devel 2>/dev/null || print_status "WARNING: libc-client-devel not available, skipping..." - else - # AlmaLinux 8 / CentOS 8 / Rocky Linux 8 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma aspell libc-client-devel python3 python3-pip python3-devel 2>/dev/null || true - fi - ;; - "debian") - # Update package lists - apt update -qq 2>/dev/null || true - - # Install essential packages - apt install -y -qq curl wget git unzip tar gzip bzip2 2>/dev/null || true - - # Install development tools - apt install -y -qq build-essential gcc g++ make python3-dev python3-pip 2>/dev/null || true - - # Install core packages - apt install -y -qq imagemagick php-gd libicu-dev libonig-dev 2>/dev/null || true - apt install -y -qq aspell 2>/dev/null || print_status "WARNING: aspell not available, skipping..." - apt install -y -qq libc-client-dev 2>/dev/null || print_status "WARNING: libc-client-dev not available, skipping..." - ;; - esac - - print_status "SUCCESS: Dependencies installed successfully" -} - -# Function to install CyberPanel -install_cyberpanel() { - print_status "Installing CyberPanel..." - - # Download and run the original installer - if [ -n "$BRANCH_NAME" ]; then - curl --silent -o cyberpanel.sh "https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/cyberpanel.sh" 2>/dev/null - else - curl --silent -o cyberpanel.sh "https://cyberpanel.sh/?dl&$SERVER_OS" 2>/dev/null - fi - - chmod +x cyberpanel.sh - - # Run the installer - if ./cyberpanel.sh $([ "$DEBUG_MODE" = true ] && echo "--debug") > /tmp/cyberpanel_install_output.log 2>&1; then - print_status "SUCCESS: CyberPanel installed successfully" - return 0 - else - print_status "ERROR: CyberPanel installation failed. Check /tmp/cyberpanel_install_output.log for details" - return 1 - fi -} - -# Function to apply fixes -apply_fixes() { - print_status "Applying installation fixes..." - - # Fix database issues - systemctl start mariadb 2>/dev/null || true - systemctl enable mariadb 2>/dev/null || true - mysqladmin -u root password '1234567' 2>/dev/null || true - - # Create cyberpanel database user - mysql -u root -p1234567 -e " - CREATE DATABASE IF NOT EXISTS cyberpanel; - CREATE USER IF NOT EXISTS 'cyberpanel'@'localhost' IDENTIFIED BY 'cyberpanel'; - GRANT ALL PRIVILEGES ON cyberpanel.* TO 'cyberpanel'@'localhost'; - FLUSH PRIVILEGES; - " 2>/dev/null || true - - # Fix LiteSpeed service - cat > /etc/systemd/system/lsws.service << 'EOF' -[Unit] -Description=LiteSpeed Web Server -After=network.target - -[Service] -Type=forking -User=root -Group=root -ExecStart=/usr/local/lsws/bin/lswsctrl start -ExecStop=/usr/local/lsws/bin/lswsctrl stop -ExecReload=/usr/local/lsws/bin/lswsctrl restart -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable lsws - systemctl start lsws - - # Fix CyberPanel service - cat > /etc/systemd/system/cyberpanel.service << 'EOF' -[Unit] -Description=CyberPanel Web Interface -After=network.target mariadb.service - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/usr/local/CyberCP -ExecStart=/usr/local/CyberPanel-venv/bin/python manage.py runserver 0.0.0.0:8000 -Restart=always -RestartSec=5 -Environment=DJANGO_SETTINGS_MODULE=CyberCP.settings - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable cyberpanel - - print_status "SUCCESS: All fixes applied successfully" -} - -# Function to show status summary -show_status_summary() { - echo "" - echo "===============================================================================================================" - echo " CYBERPANEL INSTALLATION STATUS" - echo "===============================================================================================================" - echo "" - - echo "CORE SERVICES STATUS:" - echo "--------------------------------------------------------------------------------" - - # Check services - if systemctl is-active --quiet mariadb; then - echo "SUCCESS: MariaDB Database - RUNNING" - else - echo "ERROR: MariaDB Database - NOT RUNNING" - fi - - if systemctl is-active --quiet lsws; then - echo "SUCCESS: LiteSpeed Web Server - RUNNING" - else - echo "ERROR: LiteSpeed Web Server - NOT RUNNING" - fi - - if systemctl is-active --quiet cyberpanel; then - echo "SUCCESS: CyberPanel Application - RUNNING" - else - echo "ERROR: CyberPanel Application - NOT RUNNING" - fi - - echo "" - echo "NETWORK PORTS STATUS:" - echo "--------------------------------------------------------------------------------" - - # Check ports - if netstat -tlnp | grep -q ":8090 "; then - echo "SUCCESS: Port 8090 (CyberPanel) - LISTENING" - else - echo "ERROR: Port 8090 (CyberPanel) - NOT LISTENING" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo "SUCCESS: Port 80 (HTTP) - LISTENING" - else - echo "ERROR: Port 80 (HTTP) - NOT LISTENING" - fi - - echo "" - echo "SUMMARY:" - echo "--------------------------------------------------------------------------------" - print_status "SUCCESS: INSTALLATION COMPLETED SUCCESSFULLY!" - echo "" - echo "Access CyberPanel at: http://your-server-ip:8090" - echo "Default username: admin" - echo "Default password: 1234567" - echo "" - echo "IMPORTANT: Change the default password immediately!" - echo "" -} - -# Function to show main menu -show_main_menu() { - show_banner - - echo "===============================================================================================================" - echo " SELECT INSTALLATION TYPE" - echo "===============================================================================================================" - echo "" - echo " 1. Fresh Installation (Recommended)" - echo " 2. Update Existing Installation" - echo " 3. Reinstall CyberPanel" - echo " 4. Check System Status" - echo " 5. Advanced Options" - echo " 6. Exit" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Enter your choice [1-6]: " - read -r choice - - case $choice in - 1) - INSTALLATION_TYPE="fresh" - show_fresh_install_menu - return - ;; - 2) - INSTALLATION_TYPE="update" - show_update_menu - return - ;; - 3) - INSTALLATION_TYPE="reinstall" - show_reinstall_menu - return - ;; - 4) - show_system_status - return - ;; - 5) - show_advanced_menu - return - ;; - 6) - echo "" - echo "Goodbye!" - exit 0 - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-6." - echo "" - ;; - esac - done -} - -# Function to show fresh installation menu -show_fresh_install_menu() { - echo "" - echo "===============================================================================================================" - echo " FRESH INSTALLATION SETUP" - echo "===============================================================================================================" - echo "" - - # Check if CyberPanel is already installed - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - echo "WARNING: CyberPanel appears to be already installed on this system." - echo " Consider using 'Update' or 'Reinstall' options instead." - echo "" - echo -n "Do you want to continue with fresh installation anyway? (y/n): " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - fi - - echo "Select installation option:" - echo "" - echo " 1. Install Latest Stable Version" - echo " 2. Install Development Version (v2.5.5-dev)" - echo " 3. Install Specific Version/Branch" - echo " 4. Quick Install (Auto-configure everything)" - echo " 5. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select installation option [1-5]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - show_installation_preferences - return - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - show_installation_preferences - return - ;; - 3) - show_version_selection - return - ;; - 4) - BRANCH_NAME="" - AUTO_INSTALL=true - start_installation - return - ;; - 5) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-5." - echo "" - ;; - esac - done -} - -# Function to show version selection -show_version_selection() { - echo "" - echo "===============================================================================================================" - echo " VERSION SELECTION" - echo "===============================================================================================================" - echo "" - echo "Available versions:" - echo "" - echo " 1. Latest Stable (Recommended)" - echo " 2. v2.5.5-dev (Development)" - echo " 3. v2.5.4 (Previous Stable)" - echo " 4. Custom Branch/Commit" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select version [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - BRANCH_NAME="v2.5.4" - break - ;; - 4) - echo -n "Enter branch name or commit hash: " - read -r BRANCH_NAME - break - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - show_installation_preferences -} - -# Function to show installation preferences -show_installation_preferences() { - echo "" - echo "===============================================================================================================" - echo " INSTALLATION PREFERENCES" - echo "===============================================================================================================" - echo "" - - # Debug mode - echo -n "Enable debug mode for detailed logging? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - DEBUG_MODE=true - ;; - esac - - # Auto-install - echo -n "Auto-install without further prompts? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - AUTO_INSTALL=true - ;; - esac - - # Show summary - echo "" - echo "===============================================================================================================" - echo " INSTALLATION SUMMARY" - echo "===============================================================================================================" - echo "" - echo " Type: $INSTALLATION_TYPE" - echo " Version: ${BRANCH_NAME:-'Latest Stable'}" - echo " Debug Mode: $DEBUG_MODE" - echo " Auto Install: $AUTO_INSTALL" - echo "" - echo "===============================================================================================================" - echo "" - - echo -n "Proceed with installation? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show update menu -show_update_menu() { - echo "" - echo "===============================================================================================================" - echo " UPDATE INSTALLATION" - echo "===============================================================================================================" - echo "" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo "ERROR: CyberPanel is not installed on this system." - echo " Please use 'Fresh Installation' instead." - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - # Check current version - local current_version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - current_version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - - echo "Current Installation:" - echo "Version: $current_version" - echo "Path: /usr/local/CyberCP" - echo "" - - echo "Select update option:" - echo "" - echo " 1. Update to Latest Stable" - echo " 2. Update to Development Version" - echo " 3. Update to Specific Version" - echo " 4. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select update option [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - echo -n "Proceed with update? (This will backup your current installation) (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - start_installation - ;; - esac -} - -# Function to show reinstall menu -show_reinstall_menu() { - echo "" - echo "===============================================================================================================" - echo " REINSTALL CYBERPANEL" - echo "===============================================================================================================" - echo "" - - if [ ! -d "/usr/local/CyberCP" ] || [ ! -f "/usr/local/CyberCP/manage.py" ]; then - echo "ERROR: CyberPanel is not installed on this system." - echo " Please use 'Fresh Installation' instead." - echo "" - read -p "Press Enter to return to main menu..." - show_main_menu - return - fi - - echo "WARNING: This will completely remove the existing CyberPanel installation" - echo " and install a fresh copy. All data will be lost!" - echo "" - - echo -n "Are you sure you want to reinstall? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - ;; - *) - show_main_menu - return - ;; - esac - - echo "Select reinstall option:" - echo "" - echo " 1. Reinstall Latest Stable" - echo " 2. Reinstall Development Version" - echo " 3. Reinstall Specific Version" - echo " 4. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select reinstall option [1-4]: " - read -r choice - - case $choice in - 1) - BRANCH_NAME="" - break - ;; - 2) - BRANCH_NAME="v2.5.5-dev" - break - ;; - 3) - show_version_selection - return - ;; - 4) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-4." - echo "" - ;; - esac - done - - echo -n "Proceed with reinstall? (This will delete all existing data) (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - start_installation - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show system status -show_system_status() { - echo "" - echo "===============================================================================================================" - echo " SYSTEM STATUS CHECK" - echo "===============================================================================================================" - echo "" - - # Check OS - local os_info=$(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2 2>/dev/null || echo 'Unknown') - echo "Operating System: $os_info" - - # Check CyberPanel installation - if [ -d "/usr/local/CyberCP" ] && [ -f "/usr/local/CyberCP/manage.py" ]; then - local version="unknown" - if [ -f "/usr/local/CyberCP/version.txt" ]; then - version=$(cat /usr/local/CyberCP/version.txt 2>/dev/null) - fi - echo "CyberPanel: Installed (Version: $version)" - else - echo "CyberPanel: Not Installed" - fi - - # Check services - echo "" - echo "Services Status:" - if systemctl is-active --quiet mariadb; then - echo " SUCCESS: MariaDB - Running" - else - echo " ERROR: MariaDB - Not Running" - fi - - if systemctl is-active --quiet lsws; then - echo " SUCCESS: LiteSpeed - Running" - else - echo " ERROR: LiteSpeed - Not Running" - fi - - if systemctl is-active --quiet cyberpanel; then - echo " SUCCESS: CyberPanel - Running" - else - echo " ERROR: CyberPanel - Not Running" - fi - - # Check ports - echo "" - echo "Port Status:" - if netstat -tlnp | grep -q ":8090 "; then - echo " SUCCESS: Port 8090 (CyberPanel) - Listening" - else - echo " ERROR: Port 8090 (CyberPanel) - Not Listening" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo " SUCCESS: Port 80 (HTTP) - Listening" - else - echo " ERROR: Port 80 (HTTP) - Not Listening" - fi - - echo "" - echo -n "Return to main menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - exit 0 - ;; - *) - show_main_menu - ;; - esac -} - -# Function to show advanced menu -show_advanced_menu() { - echo "" - echo "===============================================================================================================" - echo " ADVANCED OPTIONS" - echo "===============================================================================================================" - echo "" - echo " 1. Fix Installation Issues" - echo " 2. Clean Installation Files" - echo " 3. View Installation Logs" - echo " 4. System Diagnostics" - echo " 5. Back to Main Menu" - echo "" - echo "===============================================================================================================" - echo "" - - while true; do - echo -n "Select advanced option [1-5]: " - read -r choice - - case $choice in - 1) - show_fix_menu - return - ;; - 2) - show_clean_menu - return - ;; - 3) - show_logs_menu - return - ;; - 4) - show_diagnostics - return - ;; - 5) - show_main_menu - return - ;; - *) - echo "" - echo "ERROR: Invalid choice. Please enter 1-5." - echo "" - ;; - esac - done -} - -# Function to show fix menu -show_fix_menu() { - echo "" - echo "===============================================================================================================" - echo " FIX INSTALLATION ISSUES" - echo "===============================================================================================================" - echo "" - echo "This will attempt to fix common CyberPanel installation issues:" - echo "โ€ข Database connection problems" - echo "โ€ข Service configuration issues" - echo "โ€ข SSL certificate problems" - echo "โ€ข File permission issues" - echo "" - - echo -n "Proceed with fixing installation issues? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_advanced_menu - ;; - *) - print_status "Applying fixes..." - apply_fixes - print_status "SUCCESS: Fixes applied successfully" - echo "" - read -p "Press Enter to return to advanced menu..." - show_advanced_menu - ;; - esac -} - -# Function to show clean menu -show_clean_menu() { - echo "" - echo "===============================================================================================================" - echo " CLEAN INSTALLATION FILES" - echo "===============================================================================================================" - echo "" - echo "WARNING: This will remove temporary installation files and logs." - echo " This action cannot be undone!" - echo "" - - echo -n "Proceed with cleaning? (y/n) [n]: " - read -r response - case $response in - [yY]|[yY][eE][sS]) - rm -rf /tmp/cyberpanel_* - rm -rf /var/log/cyberpanel_install.log - echo "SUCCESS: Cleanup complete! Temporary files and logs have been removed." - ;; - esac - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show logs menu -show_logs_menu() { - echo "" - echo "===============================================================================================================" - echo " VIEW INSTALLATION LOGS" - echo "===============================================================================================================" - echo "" - - local log_file="/var/log/cyberpanel_install.log" - - if [ -f "$log_file" ]; then - echo "Installation Log: $log_file" - echo "Log Size: $(du -h "$log_file" | cut -f1)" - echo "" - - echo -n "View recent log entries? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - ;; - *) - echo "" - echo "Recent log entries:" - tail -n 20 "$log_file" - ;; - esac - else - echo "No installation logs found at $log_file" - fi - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to show diagnostics -show_diagnostics() { - echo "" - echo "===============================================================================================================" - echo " SYSTEM DIAGNOSTICS" - echo "===============================================================================================================" - echo "" - - echo "Running system diagnostics..." - echo "" - - # Disk space - echo "Disk Usage:" - df -h | grep -E '^/dev/' - - # Memory usage - echo "" - echo "Memory Usage:" - free -h - - # Load average - echo "" - echo "System Load:" - uptime - - # Network interfaces - echo "" - echo "Network Interfaces:" - ip addr show | grep -E '^[0-9]+:|inet ' - - echo "" - echo -n "Return to advanced menu? (y/n) [y]: " - read -r response - case $response in - [nN]|[nN][oO]) - show_main_menu - ;; - *) - show_advanced_menu - ;; - esac -} - -# Function to start installation -start_installation() { - echo "" - echo "===============================================================================================================" - echo " STARTING INSTALLATION" - echo "===============================================================================================================" - echo "" - - # Detect OS - if ! detect_os; then - print_status "ERROR: Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "ERROR: CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "SUCCESS: Installation completed successfully!" -} - -# Function to parse command line arguments -parse_arguments() { - while [[ $# -gt 0 ]]; do - case $1 in - -b|--branch) - BRANCH_NAME="$2" - shift 2 - ;; - --debug) - DEBUG_MODE=true - set -x - shift - ;; - --auto) - AUTO_INSTALL=true - shift - ;; - -h|--help) - echo "Usage: $0 [OPTIONS]" - echo "Options:" - echo " -b, --branch BRANCH Install from specific branch/commit" - echo " --debug Enable debug mode" - echo " --auto Auto mode without prompts" - echo " -h, --help Show this help message" - echo "" - echo "Examples:" - echo " $0 # Interactive installation" - echo " $0 --debug # Debug mode installation" - echo " $0 --auto # Auto installation" - echo " $0 -b v2.5.5-dev # Install development version" - exit 0 - ;; - *) - print_status "WARNING: Unknown option: $1" - shift - ;; - esac - done -} - -# Main installation function -main() { - # Initialize log file - mkdir -p /var/log - touch "/var/log/cyberpanel_install.log" - - print_status "CyberPanel Simple Installer Starting..." - print_status "Log file: /var/log/cyberpanel_install.log" - - # Parse command line arguments - parse_arguments "$@" - - # Check if auto mode is requested - if [ "$AUTO_INSTALL" = true ]; then - # Run auto mode - print_status "Starting auto mode..." - - # Detect OS - if ! detect_os; then - print_status "ERROR: Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "ERROR: CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "SUCCESS: Installation completed successfully!" - else - # Run interactive mode - show_main_menu - fi -} - -# Run main function -main "$@" diff --git a/cyberpanel_standalone.sh b/cyberpanel_standalone.sh deleted file mode 100644 index 5951af816..000000000 --- a/cyberpanel_standalone.sh +++ /dev/null @@ -1,450 +0,0 @@ -#!/bin/bash - -# CyberPanel Standalone Modular Installer -# Self-contained installer with all modules included -# This version works when downloaded via curl - -set -e - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -PURPLE='\033[0;35m' -CYAN='\033[0;36m' -WHITE='\033[1;37m' -BOLD='\033[1m' -DIM='\033[2m' -NC='\033[0m' # No Color - -# Global variables -SERVER_OS="" -OS_FAMILY="" -PACKAGE_MANAGER="" -ARCHITECTURE="" -BRANCH_NAME="" -DEBUG_MODE=false -AUTO_INSTALL=false -INTERACTIVE_MODE=true - -# Logging function -log_message() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" | tee -a "/var/log/cyberpanel_install.log" 2>/dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] [CYBERPANEL] $1" -} - -# Print colored output -print_status() { - local color=$1 - local message=$2 - echo -e "${color}${message}${NC}" - log_message "$message" -} - -# Function to show banner -show_banner() { - clear - echo -e "${BLUE}โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${WHITE}${BOLD}๐Ÿš€ CYBERPANEL MODULAR INSTALLER ๐Ÿš€${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${CYAN}The Ultimate Web Hosting Control Panel${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${YELLOW}Powered by OpenLiteSpeed โ€ข Fast โ€ข Secure โ€ข Scalable${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${GREEN}โœจ Beautiful UI โ€ข Modular Architecture โ€ข Smart Installation โœจ${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•‘${NC} ${BLUE}โ•‘${NC}" - echo -e "${BLUE}โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" - echo "" -} - -# Function to detect OS -detect_os() { - print_status "$BLUE" "๐Ÿ” Detecting operating system..." - - # Detect architecture - ARCHITECTURE=$(uname -m) - case $ARCHITECTURE in - x86_64) - print_status "$GREEN" "Architecture: x86_64 (Supported)" - ;; - aarch64|arm64) - print_status "$YELLOW" "Architecture: $ARCHITECTURE (Limited support)" - ;; - *) - print_status "$RED" "Architecture: $ARCHITECTURE (Not supported)" - return 1 - ;; - esac - - # Get OS release information - local OUTPUT=$(cat /etc/*release 2>/dev/null) - if [ -z "$OUTPUT" ]; then - print_status "$RED" "โŒ Cannot read OS release information" - return 1 - fi - - # Detect OS - if echo $OUTPUT | grep -q "AlmaLinux 9" ; then - SERVER_OS="AlmaLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: AlmaLinux 9" - elif echo $OUTPUT | grep -q "AlmaLinux 8" ; then - SERVER_OS="AlmaLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: AlmaLinux 8" - elif echo $OUTPUT | grep -q "CentOS Linux 9" ; then - SERVER_OS="CentOS9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: CentOS Linux 9" - elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then - SERVER_OS="CentOS8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: CentOS Linux 8" - elif echo $OUTPUT | grep -q "Rocky Linux 9" ; then - SERVER_OS="RockyLinux9" - OS_FAMILY="rhel" - PACKAGE_MANAGER="dnf" - print_status "$GREEN" "Detected: Rocky Linux 9" - elif echo $OUTPUT | grep -q "Rocky Linux 8" ; then - SERVER_OS="RockyLinux8" - OS_FAMILY="rhel" - PACKAGE_MANAGER="yum" - print_status "$GREEN" "Detected: Rocky Linux 8" - elif echo $OUTPUT | grep -q "Ubuntu 22.04" ; then - SERVER_OS="Ubuntu2204" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Ubuntu 22.04" - elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - SERVER_OS="Ubuntu2004" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Ubuntu 20.04" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 12" ; then - SERVER_OS="Debian12" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Debian GNU/Linux 12" - elif echo $OUTPUT | grep -q "Debian GNU/Linux 11" ; then - SERVER_OS="Debian11" - OS_FAMILY="debian" - PACKAGE_MANAGER="apt" - print_status "$GREEN" "Detected: Debian GNU/Linux 11" - else - print_status "$RED" "โŒ Unsupported OS detected" - print_status "$YELLOW" "Supported OS: AlmaLinux 8/9, CentOS 8/9, Rocky Linux 8/9, Ubuntu 20.04/22.04, Debian 11/12" - return 1 - fi - - return 0 -} - -# Function to install dependencies -install_dependencies() { - print_status "$BLUE" "๐Ÿ“ฆ Installing dependencies..." - - case $OS_FAMILY in - "rhel") - # Install EPEL - $PACKAGE_MANAGER install -y epel-release 2>/dev/null || true - - # Install development tools - $PACKAGE_MANAGER groupinstall -y 'Development Tools' 2>/dev/null || { - $PACKAGE_MANAGER install -y gcc gcc-c++ make kernel-devel 2>/dev/null || true - } - - # Install core packages - if [ "$SERVER_OS" = "AlmaLinux9" ] || [ "$SERVER_OS" = "CentOS9" ] || [ "$SERVER_OS" = "RockyLinux9" ]; then - # AlmaLinux 9 / CentOS 9 / Rocky Linux 9 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma python3 python3-pip python3-devel 2>/dev/null || true - $PACKAGE_MANAGER install -y aspell 2>/dev/null || print_status "$YELLOW" "aspell not available, skipping..." - $PACKAGE_MANAGER install -y libc-client-devel 2>/dev/null || print_status "$YELLOW" "libc-client-devel not available, skipping..." - else - # AlmaLinux 8 / CentOS 8 / Rocky Linux 8 - $PACKAGE_MANAGER install -y ImageMagick gd libicu oniguruma aspell libc-client-devel python3 python3-pip python3-devel 2>/dev/null || true - fi - ;; - "debian") - # Update package lists - apt update -qq 2>/dev/null || true - - # Install essential packages - apt install -y -qq curl wget git unzip tar gzip bzip2 2>/dev/null || true - - # Install development tools - apt install -y -qq build-essential gcc g++ make python3-dev python3-pip 2>/dev/null || true - - # Install core packages - apt install -y -qq imagemagick php-gd libicu-dev libonig-dev 2>/dev/null || true - apt install -y -qq aspell 2>/dev/null || print_status "$YELLOW" "aspell not available, skipping..." - apt install -y -qq libc-client-dev 2>/dev/null || print_status "$YELLOW" "libc-client-dev not available, skipping..." - ;; - esac - - print_status "$GREEN" "โœ… Dependencies installed successfully" -} - -# Function to install CyberPanel -install_cyberpanel() { - print_status "$BLUE" "๐Ÿš€ Installing CyberPanel..." - - # Download and run the original installer - if [ -n "$BRANCH_NAME" ]; then - curl --silent -o cyberpanel.sh "https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/cyberpanel.sh" 2>/dev/null - else - curl --silent -o cyberpanel.sh "https://cyberpanel.sh/?dl&$SERVER_OS" 2>/dev/null - fi - - chmod +x cyberpanel.sh - - # Run the installer - if ./cyberpanel.sh $([ "$DEBUG_MODE" = true ] && echo "--debug") > /tmp/cyberpanel_install_output.log 2>&1; then - print_status "$GREEN" "โœ… CyberPanel installed successfully" - return 0 - else - print_status "$RED" "โŒ CyberPanel installation failed. Check /tmp/cyberpanel_install_output.log for details" - return 1 - fi -} - -# Function to apply fixes -apply_fixes() { - print_status "$BLUE" "๐Ÿ”ง Applying installation fixes..." - - # Fix database issues - systemctl start mariadb 2>/dev/null || true - systemctl enable mariadb 2>/dev/null || true - mysqladmin -u root password '1234567' 2>/dev/null || true - - # Create cyberpanel database user - mysql -u root -p1234567 -e " - CREATE DATABASE IF NOT EXISTS cyberpanel; - CREATE USER IF NOT EXISTS 'cyberpanel'@'localhost' IDENTIFIED BY 'cyberpanel'; - GRANT ALL PRIVILEGES ON cyberpanel.* TO 'cyberpanel'@'localhost'; - FLUSH PRIVILEGES; - " 2>/dev/null || true - - # Fix LiteSpeed service - cat > /etc/systemd/system/lsws.service << 'EOF' -[Unit] -Description=LiteSpeed Web Server -After=network.target - -[Service] -Type=forking -User=root -Group=root -ExecStart=/usr/local/lsws/bin/lswsctrl start -ExecStop=/usr/local/lsws/bin/lswsctrl stop -ExecReload=/usr/local/lsws/bin/lswsctrl restart -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable lsws - systemctl start lsws - - # Fix CyberPanel service - cat > /etc/systemd/system/cyberpanel.service << 'EOF' -[Unit] -Description=CyberPanel Web Interface -After=network.target mariadb.service - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/usr/local/CyberCP -ExecStart=/usr/local/CyberPanel-venv/bin/python manage.py runserver 0.0.0.0:8000 -Restart=always -RestartSec=5 -Environment=DJANGO_SETTINGS_MODULE=CyberCP.settings - -[Install] -WantedBy=multi-user.target -EOF - - systemctl daemon-reload - systemctl enable cyberpanel - - print_status "$GREEN" "โœ… All fixes applied successfully" -} - -# Function to show status summary -show_status_summary() { - echo "" - echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—" - echo "โ•‘ โ•‘" - echo "โ•‘ ๐Ÿ“Š CYBERPANEL INSTALLATION STATUS ๐Ÿ“Š โ•‘" - echo "โ•‘ โ•‘" - echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - echo "" - - echo "๐Ÿ”ง CORE SERVICES STATUS:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - - # Check services - if systemctl is-active --quiet mariadb; then - echo "โœ… MariaDB Database: RUNNING" - else - echo "โŒ MariaDB Database: NOT RUNNING" - fi - - if systemctl is-active --quiet lsws; then - echo "โœ… LiteSpeed Web Server: RUNNING" - else - echo "โŒ LiteSpeed Web Server: NOT RUNNING" - fi - - if systemctl is-active --quiet cyberpanel; then - echo "โœ… CyberPanel Application: RUNNING" - else - echo "โŒ CyberPanel Application: NOT RUNNING" - fi - - echo "" - echo "๐ŸŒ NETWORK PORTS STATUS:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - - # Check ports - if netstat -tlnp | grep -q ":8090 "; then - echo "โœ… Port 8090 (CyberPanel): LISTENING" - else - echo "โŒ Port 8090 (CyberPanel): NOT LISTENING" - fi - - if netstat -tlnp | grep -q ":80 "; then - echo "โœ… Port 80 (HTTP): LISTENING" - else - echo "โŒ Port 80 (HTTP): NOT LISTENING" - fi - - echo "" - echo "๐Ÿ“Š SUMMARY:" - echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - print_status "$GREEN" "๐ŸŽ‰ INSTALLATION COMPLETED SUCCESSFULLY!" - echo "" - echo "๐ŸŒ Access CyberPanel at: http://your-server-ip:8090" - echo "๐Ÿ‘ค Default username: admin" - echo "๐Ÿ”‘ Default password: 1234567" - echo "" - echo "โš ๏ธ IMPORTANT: Change the default password immediately!" - echo "" -} - -# Function to parse command line arguments -parse_arguments() { - while [[ $# -gt 0 ]]; do - case $1 in - -b|--branch) - BRANCH_NAME="$2" - shift 2 - ;; - --debug) - DEBUG_MODE=true - set -x - shift - ;; - --auto) - AUTO_INSTALL=true - INTERACTIVE_MODE=false - shift - ;; - -h|--help) - echo "Usage: $0 [OPTIONS]" - echo "Options:" - echo " -b, --branch BRANCH Install from specific branch/commit" - echo " --debug Enable debug mode" - echo " --auto Auto mode without prompts" - echo " -h, --help Show this help message" - echo "" - echo "Examples:" - echo " $0 # Interactive installation" - echo " $0 --debug # Debug mode installation" - echo " $0 --auto # Auto installation" - echo " $0 -b v2.5.5-dev # Install development version" - exit 0 - ;; - *) - print_status "$YELLOW" "Unknown option: $1" - shift - ;; - esac - done -} - -# Function to run interactive mode -run_interactive_mode() { - show_banner - - echo -e "${WHITE}Welcome to the CyberPanel Modular Installer!${NC}" - echo "" - echo -e "${CYAN}This installer will:${NC}" - echo "โ€ข Detect your operating system" - echo "โ€ข Install required dependencies" - echo "โ€ข Install CyberPanel" - echo "โ€ข Apply necessary fixes" - echo "โ€ข Configure services" - echo "" - - if [ -n "$BRANCH_NAME" ]; then - echo -e "${YELLOW}Installing version: $BRANCH_NAME${NC}" - else - echo -e "${YELLOW}Installing latest stable version${NC}" - fi - - echo "" - read -p "Press Enter to continue or Ctrl+C to cancel..." -} - -# Main installation function -main() { - # Initialize log file - mkdir -p /var/log - touch "/var/log/cyberpanel_install.log" - - print_status "$BLUE" "๐Ÿš€ CyberPanel Modular Installer Starting..." - print_status "$BLUE" "Log file: /var/log/cyberpanel_install.log" - - # Parse command line arguments - parse_arguments "$@" - - # Run interactive mode if not auto - if [ "$AUTO_INSTALL" = false ]; then - run_interactive_mode - fi - - # Detect OS - if ! detect_os; then - print_status "$RED" "โŒ Failed to detect operating system" - exit 1 - fi - - # Install dependencies - install_dependencies - - # Install CyberPanel - if ! install_cyberpanel; then - print_status "$RED" "โŒ CyberPanel installation failed" - exit 1 - fi - - # Apply fixes - apply_fixes - - # Show status summary - show_status_summary - - print_status "$GREEN" "๐ŸŽ‰ CyberPanel installation process completed!" -} - -# Run main function -main "$@" diff --git a/fix_installation_issues.sh b/fix_installation_issues.sh deleted file mode 100644 index 4a039be65..000000000 --- a/fix_installation_issues.sh +++ /dev/null @@ -1,245 +0,0 @@ -#!/bin/bash - -# CyberPanel Installation Issues Fix Script -# This script fixes the critical issues found during installation - -echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—" -echo "โ•‘ โ•‘" -echo "โ•‘ ๐Ÿ”ง FIXING CYBERPANEL INSTALLATION ISSUES ๐Ÿ”ง โ•‘" -echo "โ•‘ โ•‘" -echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" -echo "" - -# Function to log actions -log_action() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" -} - -# 1. Fix Database Connection Issues -echo "๐Ÿ—„๏ธ FIXING DATABASE CONNECTION ISSUES..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -log_action "Starting MariaDB service..." -systemctl start mariadb -systemctl enable mariadb - -log_action "Setting MariaDB root password..." -mysqladmin -u root password '1234567' 2>/dev/null || true - -log_action "Creating cyberpanel database user..." -mysql -u root -p1234567 -e " -CREATE DATABASE IF NOT EXISTS cyberpanel; -CREATE USER IF NOT EXISTS 'cyberpanel'@'localhost' IDENTIFIED BY 'cyberpanel'; -GRANT ALL PRIVILEGES ON cyberpanel.* TO 'cyberpanel'@'localhost'; -FLUSH PRIVILEGES; -" 2>/dev/null || true - -log_action "Testing database connections..." -if mysql -u root -p1234567 -e "SELECT 1;" >/dev/null 2>&1; then - echo "โœ… MariaDB root connection: SUCCESS" -else - echo "โŒ MariaDB root connection: FAILED" -fi - -if mysql -u cyberpanel -pcyberpanel -e "SELECT 1;" >/dev/null 2>&1; then - echo "โœ… CyberPanel database connection: SUCCESS" -else - echo "โŒ CyberPanel database connection: FAILED" -fi -echo "" - -# 2. Fix LiteSpeed Service Configuration -echo "๐Ÿš€ FIXING LITESPEED SERVICE CONFIGURATION..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -log_action "Creating LiteSpeed service file..." -cat > /etc/systemd/system/lsws.service << 'EOF' -[Unit] -Description=LiteSpeed Web Server -After=network.target - -[Service] -Type=forking -User=root -Group=root -ExecStart=/usr/local/lsws/bin/lswsctrl start -ExecStop=/usr/local/lsws/bin/lswsctrl stop -ExecReload=/usr/local/lsws/bin/lswsctrl restart -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - -log_action "Reloading systemd daemon..." -systemctl daemon-reload - -log_action "Enabling LiteSpeed service..." -systemctl enable lsws - -log_action "Starting LiteSpeed service..." -systemctl start lsws - -if systemctl is-active --quiet lsws; then - echo "โœ… LiteSpeed service: STARTED" -else - echo "โŒ LiteSpeed service: FAILED TO START" -fi -echo "" - -# 3. Fix SSL Certificates -echo "๐Ÿ” FIXING SSL CERTIFICATES..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -log_action "Creating SSL certificate configuration..." -mkdir -p /root/cyberpanel -cat > /root/cyberpanel/cert_conf << 'EOF' -[req] -distinguished_name = req_distinguished_name -req_extensions = v3_req -prompt = no - -[req_distinguished_name] -C = US -ST = State -L = City -O = Organization -OU = Organizational Unit -CN = localhost - -[v3_req] -keyUsage = keyEncipherment, dataEncipherment -extendedKeyUsage = serverAuth -subjectAltName = @alt_names - -[alt_names] -DNS.1 = localhost -IP.1 = 127.0.0.1 -EOF - -log_action "Generating LiteSpeed admin SSL certificate..." -openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ - -keyout /usr/local/lsws/admin/conf/cert/admin.key \ - -out /usr/local/lsws/admin/conf/cert/admin.crt \ - -config /root/cyberpanel/cert_conf 2>/dev/null || true - -log_action "Setting proper permissions for SSL certificates..." -chmod 600 /usr/local/lsws/admin/conf/cert/admin.key 2>/dev/null || true -chmod 644 /usr/local/lsws/admin/conf/cert/admin.crt 2>/dev/null || true - -if [ -f "/usr/local/lsws/admin/conf/cert/admin.crt" ]; then - echo "โœ… LiteSpeed admin SSL certificate: CREATED" -else - echo "โŒ LiteSpeed admin SSL certificate: FAILED" -fi -echo "" - -# 4. Fix Admin Console Files -echo "๐Ÿ–ฅ๏ธ FIXING ADMIN CONSOLE FILES..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -log_action "Creating admin console directories..." -mkdir -p /usr/local/lsws/admin/fcgi-bin -mkdir -p /usr/local/lsws/admin/conf - -log_action "Creating admin PHP file..." -cat > /usr/local/lsws/admin/fcgi-bin/admin_php << 'EOF' -#!/bin/bash -export PHP_LSAPI_CHILDREN=35 -export PHP_LSAPI_MAX_REQUESTS=1000 -exec /usr/local/lsws/lsphp82/bin/lsphp -b /usr/local/lsws/admin/fcgi-bin/admin_php -EOF - -chmod +x /usr/local/lsws/admin/fcgi-bin/admin_php 2>/dev/null || true - -log_action "Creating admin password file..." -htpasswd -cb /usr/local/lsws/admin/conf/htpasswd admin 1234567 2>/dev/null || true - -log_action "Setting proper ownership..." -chown -R lsadm:lsadm /usr/local/lsws/admin/ 2>/dev/null || true - -if [ -f "/usr/local/lsws/admin/fcgi-bin/admin_php" ]; then - echo "โœ… Admin console files: CREATED" -else - echo "โŒ Admin console files: FAILED" -fi -echo "" - -# 5. Fix CyberPanel Application -echo "๐ŸŽ›๏ธ FIXING CYBERPANEL APPLICATION..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -log_action "Setting proper permissions for CyberPanel..." -chown -R root:root /usr/local/CyberCP/ 2>/dev/null || true -chmod -R 755 /usr/local/CyberCP/ 2>/dev/null || true - -log_action "Creating CyberPanel service file..." -cat > /etc/systemd/system/cyberpanel.service << 'EOF' -[Unit] -Description=CyberPanel Web Interface -After=network.target mariadb.service - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/usr/local/CyberCP -ExecStart=/usr/local/CyberPanel-venv/bin/python manage.py runserver 0.0.0.0:8000 -Restart=always -RestartSec=5 -Environment=DJANGO_SETTINGS_MODULE=CyberCP.settings - -[Install] -WantedBy=multi-user.target -EOF - -log_action "Reloading systemd daemon..." -systemctl daemon-reload - -log_action "Enabling CyberPanel service..." -systemctl enable cyberpanel -echo "" - -# 6. Final Service Status Check -echo "๐Ÿ“Š FINAL SERVICE STATUS CHECK..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -services=("mariadb" "lsws" "lsmcd" "cyberpanel" "watchdog") - -for service in "${services[@]}"; do - if systemctl is-active --quiet $service; then - echo "โœ… $service: RUNNING" - else - echo "โš ๏ธ $service: NOT RUNNING" - fi -done -echo "" - -# 7. Port Status Check -echo "๐ŸŒ PORT STATUS CHECK..." -echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" - -ports=("3306:MariaDB" "80:HTTP" "443:HTTPS" "8090:CyberPanel" "7080:LiteSpeed Admin") - -for port_info in "${ports[@]}"; do - port=$(echo $port_info | cut -d: -f1) - service=$(echo $port_info | cut -d: -f2) - - if netstat -tlnp | grep -q ":$port "; then - echo "โœ… Port $port ($service): LISTENING" - else - echo "โŒ Port $port ($service): NOT LISTENING" - fi -done -echo "" - -echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—" -echo "โ•‘ โ•‘" -echo "โ•‘ ๐ŸŽ‰ INSTALLATION ISSUES FIXED! ๐ŸŽ‰ โ•‘" -echo "โ•‘ โ•‘" -echo "โ•‘ All critical issues have been addressed. The server is now ready for restart. โ•‘" -echo "โ•‘ โ•‘" -echo "โ•‘ After restart, run: ./service_status_check.sh โ•‘" -echo "โ•‘ โ•‘" -echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" diff --git a/simple_install.sh b/simple_install.sh deleted file mode 100644 index 3d3cdb5b8..000000000 --- a/simple_install.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/sh - -# Simplified CyberPanel Installation Script -# Based on 2.4.4 approach with AlmaLinux 9 fixes - -OUTPUT=$(cat /etc/*release) - -# Detect OS and set appropriate variables -if echo $OUTPUT | grep -q "AlmaLinux 9" ; then - echo -e "\nDetecting AlmaLinux 9...\n" - SERVER_OS="AlmaLinux9" - PKG_MGR="dnf" -elif echo $OUTPUT | grep -q "AlmaLinux 8" ; then - echo -e "\nDetecting AlmaLinux 8...\n" - SERVER_OS="AlmaLinux8" - PKG_MGR="yum" -elif echo $OUTPUT | grep -q "Ubuntu 22.04" ; then - echo -e "\nDetecting Ubuntu 22.04...\n" - SERVER_OS="Ubuntu2204" - PKG_MGR="apt" -elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - echo -e "\nDetecting Ubuntu 20.04...\n" - SERVER_OS="Ubuntu2004" - PKG_MGR="apt" -elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then - echo -e "\nDetecting CentOS 8...\n" - SERVER_OS="CentOS8" - PKG_MGR="yum" -else - echo -e "\nUnsupported OS detected. This script supports:\n" - echo -e "AlmaLinux: 8, 9\n" - echo -e "Ubuntu: 20.04, 22.04\n" - echo -e "CentOS: 8\n" - exit 1 -fi - -echo "Installing basic dependencies..." - -# Install basic packages -if [ "$PKG_MGR" = "dnf" ]; then - dnf update -y - dnf install -y epel-release - dnf install -y wget curl unzip zip rsync firewalld git python3 python3-pip - dnf install -y mariadb-server mariadb-client - dnf install -y ImageMagick gd libicu oniguruma aspell libc-client -elif [ "$PKG_MGR" = "yum" ]; then - yum update -y - yum install -y epel-release - yum install -y wget curl unzip zip rsync firewalld git python3 python3-pip - yum install -y mariadb-server mariadb-client - yum install -y ImageMagick gd libicu oniguruma aspell libc-client -elif [ "$PKG_MGR" = "apt" ]; then - apt update -y - apt install -y wget curl unzip zip rsync git python3 python3-pip - apt install -y mariadb-server mariadb-client - apt install -y imagemagick php-gd php-intl php-mbstring php-pspell -fi - -# Start and enable MariaDB -echo "Starting MariaDB..." -systemctl enable mariadb -systemctl start mariadb - -# Create MySQL password file -echo "Setting up MySQL..." -mkdir -p /etc/cyberpanel -echo "cyberpanel123" > /etc/cyberpanel/mysqlPassword -chmod 600 /etc/cyberpanel/mysqlPassword - -# Secure MySQL installation -mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'cyberpanel123';" 2>/dev/null || true -mysql -u root -pcyberpanel123 -e "DELETE FROM mysql.user WHERE User='';" 2>/dev/null || true -mysql -u root -pcyberpanel123 -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" 2>/dev/null || true -mysql -u root -pcyberpanel123 -e "DROP DATABASE IF EXISTS test;" 2>/dev/null || true -mysql -u root -pcyberpanel123 -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" 2>/dev/null || true -mysql -u root -pcyberpanel123 -e "FLUSH PRIVILEGES;" 2>/dev/null || true - -# Configure firewall -echo "Configuring firewall..." -if [ "$PKG_MGR" = "dnf" ] || [ "$PKG_MGR" = "yum" ]; then - systemctl enable firewalld - systemctl start firewalld - firewall-cmd --permanent --add-port=8090/tcp - firewall-cmd --permanent --add-port=7080/tcp - firewall-cmd --permanent --add-port=80/tcp - firewall-cmd --permanent --add-port=443/tcp - firewall-cmd --permanent --add-port=21/tcp - firewall-cmd --permanent --add-port=25/tcp - firewall-cmd --permanent --add-port=587/tcp - firewall-cmd --permanent --add-port=465/tcp - firewall-cmd --permanent --add-port=110/tcp - firewall-cmd --permanent --add-port=143/tcp - firewall-cmd --permanent --add-port=993/tcp - firewall-cmd --permanent --add-port=995/tcp - firewall-cmd --permanent --add-port=53/tcp - firewall-cmd --permanent --add-port=53/udp - firewall-cmd --reload -fi - -# Download and install CyberPanel -echo "Downloading CyberPanel..." -rm -f cyberpanel.sh -curl --silent -o cyberpanel.sh "https://cyberpanel.sh/?dl&$SERVER_OS" 2>/dev/null - -if [ -f "cyberpanel.sh" ]; then - echo "Installing CyberPanel..." - chmod +x cyberpanel.sh - ./cyberpanel.sh -else - echo "Failed to download CyberPanel installer!" - exit 1 -fi - -echo "Installation completed!"