diff --git a/README.md b/README.md index 67999018d..3ced9a731 100755 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgr | 🐳 Docker | [Command Execution](guides/Docker_Command_Execution_Guide.md) | Execute commands in containers | | 🤖 Security | [AI Scanner](guides/AIScannerDocs.md) | AI-powered security scanning | | 📧 Email | [Mautic Setup](guides/MAUTIC_INSTALLATION_GUIDE.md) | Email marketing platform | -| 🎨 Design | [Custom CSS Guide](guides/CUSTOM_CSS_GUIDE.md) | Create custom themes for 2.5.5-dev | +| 🎨 Design | [Custom CSS Guide](guides/CUSTOM_CSS_GUIDE.md) | Create custom themes | | 🔥 Security | [Firewall Blocking Feature](guides/FIREWALL_BLOCKING_FEATURE.md) | Advanced security features | --- diff --git a/guides/DEBIAN_13_INSTALLATION_GUIDE.md b/guides/DEBIAN_13_INSTALLATION_GUIDE.md index f714ac6ff..24e87d0dc 100644 --- a/guides/DEBIAN_13_INSTALLATION_GUIDE.md +++ b/guides/DEBIAN_13_INSTALLATION_GUIDE.md @@ -284,18 +284,7 @@ free -h ### Testing Compatibility -Run the compatibility test script: - -```bash -# Download test script -wget https://raw.githubusercontent.com/cyberpanel/cyberpanel/main/test_debian13_support.sh - -# Make executable -chmod +x test_debian13_support.sh - -# Run test -sudo ./test_debian13_support.sh -``` +For comprehensive compatibility testing, refer to the diagnostic commands in the troubleshooting section below. ## ✅ Verification Checklist diff --git a/test_debian13_support.sh b/test_debian13_support.sh deleted file mode 100644 index 81650f704..000000000 --- a/test_debian13_support.sh +++ /dev/null @@ -1,430 +0,0 @@ -#!/bin/bash - -# Debian 13 Support Test Script for CyberPanel -# This script tests the compatibility of CyberPanel with Debian 13 - -set -e - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# Test results -TESTS_PASSED=0 -TESTS_FAILED=0 -TESTS_TOTAL=0 - -# Function to print colored output -print_status() { - echo -e "${BLUE}[INFO]${NC} $1" -} - -print_success() { - echo -e "${GREEN}[SUCCESS]${NC} $1" - ((TESTS_PASSED++)) -} - -print_warning() { - echo -e "${YELLOW}[WARNING]${NC} $1" -} - -print_error() { - echo -e "${RED}[ERROR]${NC} $1" - ((TESTS_FAILED++)) -} - -print_test_header() { - echo -e "\n${BLUE}=== $1 ===${NC}" - ((TESTS_TOTAL++)) -} - -# Function to run a test -run_test() { - local test_name="$1" - local test_command="$2" - local expected_result="$3" - - print_test_header "$test_name" - - if eval "$test_command" >/dev/null 2>&1; then - if [[ "$expected_result" == "success" ]]; then - print_success "$test_name passed" - return 0 - else - print_error "$test_name failed (unexpected success)" - return 1 - fi - else - if [[ "$expected_result" == "failure" ]]; then - print_success "$test_name passed (expected failure)" - return 0 - else - print_error "$test_name failed" - return 1 - fi - fi -} - -# Function to check OS detection -test_os_detection() { - print_test_header "OS Detection Test" - - # Check if we're on Debian 13 - if [[ -f /etc/os-release ]]; then - source /etc/os-release - if [[ "$ID" == "debian" && "$VERSION_ID" == "13" ]]; then - print_success "Debian 13 detected correctly" - else - print_warning "Not running on Debian 13 (Current: $ID $VERSION_ID)" - print_status "This test is designed for Debian 13, but will continue with current OS" - fi - else - print_error "Cannot detect OS - /etc/os-release not found" - return 1 - fi -} - -# Function to test CyberPanel OS detection logic -test_cyberpanel_os_detection() { - print_test_header "CyberPanel OS Detection Logic Test" - - # Test the OS detection logic from cyberpanel.sh - if grep -q -E "Debian GNU/Linux 11|Debian GNU/Linux 12|Debian GNU/Linux 13" /etc/os-release; then - print_success "CyberPanel OS detection logic recognizes Debian 11/12/13" - else - print_error "CyberPanel OS detection logic does not recognize current Debian version" - return 1 - fi -} - -# Function to test package manager compatibility -test_package_manager() { - print_test_header "Package Manager Compatibility Test" - - # Test apt-get availability - if command -v apt-get >/dev/null 2>&1; then - print_success "apt-get package manager is available" - else - print_error "apt-get package manager not found" - return 1 - fi - - # Test apt-get update (dry run) - if apt-get update --dry-run >/dev/null 2>&1; then - print_success "apt-get update works correctly" - else - print_warning "apt-get update failed (may be network related)" - fi -} - -# Function to test systemd compatibility -test_systemd_compatibility() { - print_test_header "Systemd Compatibility Test" - - # Test systemctl availability - if command -v systemctl >/dev/null 2>&1; then - print_success "systemctl is available" - else - print_error "systemctl not found" - return 1 - fi - - # Test systemd status - if systemctl is-system-running >/dev/null 2>&1; then - print_success "systemd is running" - else - print_warning "systemd status unclear" - fi -} - -# Function to test Python compatibility -test_python_compatibility() { - print_test_header "Python Compatibility Test" - - # Test Python 3 availability - if command -v python3 >/dev/null 2>&1; then - local python_version=$(python3 --version 2>&1 | cut -d' ' -f2) - print_success "Python 3 is available: $python_version" - - # Check if Python version is compatible (3.6+) - local major_version=$(echo "$python_version" | cut -d'.' -f1) - local minor_version=$(echo "$python_version" | cut -d'.' -f2) - - if [[ $major_version -ge 3 && $minor_version -ge 6 ]]; then - print_success "Python version is compatible (3.6+)" - else - print_warning "Python version may not be fully compatible (requires 3.6+)" - fi - else - print_error "Python 3 not found" - return 1 - fi - - # Test pip3 availability - if command -v pip3 >/dev/null 2>&1; then - print_success "pip3 is available" - else - print_warning "pip3 not found (may need to be installed)" - fi -} - -# Function to test web server compatibility -test_web_server_compatibility() { - print_test_header "Web Server Compatibility Test" - - # Test Apache2 availability - if command -v apache2 >/dev/null 2>&1; then - print_success "Apache2 is available" - else - print_warning "Apache2 not found (will be installed by CyberPanel)" - fi - - # Test if Apache2 can be installed - if apt-cache show apache2 >/dev/null 2>&1; then - print_success "Apache2 package is available in repositories" - else - print_error "Apache2 package not found in repositories" - return 1 - fi -} - -# Function to test required packages availability -test_required_packages() { - print_test_header "Required Packages Availability Test" - - local required_packages=( - "curl" - "wget" - "git" - "build-essential" - "python3-dev" - "python3-pip" - "python3-venv" - "software-properties-common" - "apt-transport-https" - "ca-certificates" - "gnupg" - ) - - local available_count=0 - local total_count=${#required_packages[@]} - - for package in "${required_packages[@]}"; do - if apt-cache show "$package" >/dev/null 2>&1; then - print_success "$package is available" - ((available_count++)) - else - print_warning "$package not found in repositories" - fi - done - - print_status "Available packages: $available_count/$total_count" - - if [[ $available_count -ge $((total_count * 8 / 10)) ]]; then - print_success "Most required packages are available" - else - print_warning "Many required packages are missing" - fi -} - -# Function to test LiteSpeed repository compatibility -test_litespeed_repo_compatibility() { - print_test_header "LiteSpeed Repository Compatibility Test" - - # Test if we can access LiteSpeed Debian repository - if curl -s --head "http://rpms.litespeedtech.com/debian/" | head -n 1 | grep -q "200 OK"; then - print_success "LiteSpeed Debian repository is accessible" - else - print_warning "LiteSpeed Debian repository may not be accessible" - fi - - # Test if we can download the repository setup script - if wget --spider "http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh" 2>/dev/null; then - print_success "LiteSpeed repository setup script is available" - else - print_warning "LiteSpeed repository setup script may not be available" - fi -} - -# Function to test MariaDB compatibility -test_mariadb_compatibility() { - print_test_header "MariaDB Compatibility Test" - - # Test MariaDB repository accessibility - if curl -s --head "https://mariadb.org/mariadb_release_signing_key.pgp" | head -n 1 | grep -q "200 OK"; then - print_success "MariaDB signing key is accessible" - else - print_warning "MariaDB signing key may not be accessible" - fi - - # Test if MariaDB packages are available - if apt-cache show mariadb-server >/dev/null 2>&1; then - print_success "MariaDB packages are available in repositories" - else - print_warning "MariaDB packages not found in default repositories" - fi -} - -# Function to test network connectivity -test_network_connectivity() { - print_test_header "Network Connectivity Test" - - local test_urls=( - "https://github.com" - "https://pypi.org" - "http://rpms.litespeedtech.com" - "https://mariadb.org" - ) - - local accessible_count=0 - local total_count=${#test_urls[@]} - - for url in "${test_urls[@]}"; do - if curl -s --head "$url" >/dev/null 2>&1; then - print_success "$url is accessible" - ((accessible_count++)) - else - print_warning "$url is not accessible" - fi - done - - print_status "Accessible URLs: $accessible_count/$total_count" - - if [[ $accessible_count -ge $((total_count * 3 / 4)) ]]; then - print_success "Network connectivity is good" - else - print_warning "Network connectivity may be limited" - fi -} - -# Function to test system resources -test_system_resources() { - print_test_header "System Resources Test" - - # Test available memory - local total_memory=$(free -m | awk 'NR==2{print $2}') - if [[ $total_memory -ge 1024 ]]; then - print_success "Sufficient memory available: ${total_memory}MB" - else - print_warning "Low memory: ${total_memory}MB (recommended: 1GB+)" - fi - - # Test available disk space - local available_space=$(df / | awk 'NR==2{print $4}') - local available_gb=$((available_space / 1024 / 1024)) - if [[ $available_gb -ge 10 ]]; then - print_success "Sufficient disk space: ${available_gb}GB" - else - print_warning "Low disk space: ${available_gb}GB (recommended: 10GB+)" - fi - - # Test CPU cores - local cpu_cores=$(nproc) - if [[ $cpu_cores -ge 2 ]]; then - print_success "Sufficient CPU cores: $cpu_cores" - else - print_warning "Limited CPU cores: $cpu_cores (recommended: 2+)" - fi -} - -# Function to run all tests -run_all_tests() { - echo -e "${BLUE}========================================${NC}" - echo -e "${BLUE} CyberPanel Debian 13 Compatibility Test${NC}" - echo -e "${BLUE}========================================${NC}\n" - - test_os_detection - test_cyberpanel_os_detection - test_package_manager - test_systemd_compatibility - test_python_compatibility - test_web_server_compatibility - test_required_packages - test_litespeed_repo_compatibility - test_mariadb_compatibility - test_network_connectivity - test_system_resources - - echo -e "\n${BLUE}========================================${NC}" - echo -e "${BLUE} Test Results Summary${NC}" - echo -e "${BLUE}========================================${NC}" - echo -e "Total Tests: $TESTS_TOTAL" - echo -e "Passed: ${GREEN}$TESTS_PASSED${NC}" - echo -e "Failed: ${RED}$TESTS_FAILED${NC}" - - if [[ $TESTS_FAILED -eq 0 ]]; then - echo -e "\n${GREEN}✅ All tests passed! Debian 13 appears to be compatible with CyberPanel.${NC}" - return 0 - elif [[ $TESTS_FAILED -le 2 ]]; then - echo -e "\n${YELLOW}⚠️ Most tests passed. Debian 13 should be compatible with minor issues.${NC}" - return 0 - else - echo -e "\n${RED}❌ Multiple tests failed. Debian 13 may have compatibility issues.${NC}" - return 1 - fi -} - -# Function to show usage -show_usage() { - echo "Usage: $0 [OPTIONS]" - echo "" - echo "Options:" - echo " -h, --help Show this help message" - echo " -v, --verbose Enable verbose output" - echo " --quick Run only essential tests" - echo "" - echo "This script tests CyberPanel compatibility with Debian 13." - echo "Run as root for best results." -} - -# Main execution -main() { - local verbose=false - local quick=false - - # Parse command line arguments - while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - show_usage - exit 0 - ;; - -v|--verbose) - verbose=true - shift - ;; - --quick) - quick=true - shift - ;; - *) - echo "Unknown option: $1" - show_usage - exit 1 - ;; - esac - done - - # Check if running as root - if [[ $EUID -ne 0 ]]; then - print_warning "Not running as root. Some tests may fail." - print_status "Consider running: sudo $0" - fi - - # Run tests - if [[ "$quick" == "true" ]]; then - print_status "Running quick compatibility test..." - test_os_detection - test_cyberpanel_os_detection - test_package_manager - test_systemd_compatibility - else - run_all_tests - fi -} - -# Run main function -main "$@"