7417fdd7d4
USER REQUEST: "you have to confirm it will check for all of the sites? as it effects them all" PROBLEM: CT_LIMIT affects ALL sites on server, but optimizer only looked at aggregate traffic, not individual site requirements SOLUTION: Added comprehensive per-site analysis using sysref database NEW CAPABILITIES: 1. AUTO-DISCOVERS ALL SITES - Reads sysref database (auto-generated at launcher startup) - Gets all domains, document roots, and log paths - Confirms: "Per-Site Analysis (All X Sites Checked)" 2. DETECTS SITE TYPE FOR EACH DOMAIN - WordPress (checks WP database entries) - Ecommerce (WooCommerce, Magento indicators) - Framework (Composer/vendor detection) - Dynamic (50+ PHP files) - Moderate (5-50 PHP files) - Static (minimal PHP) 3. CALCULATES SITE COMPLEXITY SCORE (1-10) Factors: - WordPress: +3 base + (plugins/5) - Ecommerce: +5 (shopping cart needs many connections) - Framework/Dynamic: +2 - Ajax-heavy (20+ .js files): +2 - Result: Higher score = needs more CT_LIMIT headroom 4. ANALYZES TRAFFIC PER DOMAIN - Max concurrent connections per site - Unique IPs per site - Total requests per site - Separated from aggregate analysis 5. FACTORS COMPLEXITY INTO RECOMMENDATIONS - Average complexity across all sites - Complexity buffer added to recommendations - Ecommerce sites get +15/+10 buffer - Formula: CT_LIMIT = max_legit + buffer + complexity_factor 6. DISPLAYS PER-SITE BREAKDOWN ``` Per-Site Analysis (All 3 Sites Checked): DOMAIN TYPE CMPLX MAX_CONN UNIQ_IPs ──────────────────────────────────────────────────────────────────── example.com wordpress 7 45 128 shop.example.com ecommerce 9 82 245 static.example.com static 1 8 34 ⚠️ 2 high-complexity sites detected (WordPress/Ecommerce/Framework - need higher CT_LIMIT) ``` EXAMPLE RECOMMENDATION ADJUSTMENT: BEFORE (no site analysis): - BALANCED: CT_LIMIT = 65 AFTER (with 2 WordPress sites, 1 ecommerce): - Average complexity: 7 - Complexity buffer: 7 * 2 = 14 - Ecommerce bonus: +10 - BALANCED: CT_LIMIT = 89 - Reason: "Accounts for WordPress admin/Ajax + ecommerce checkout" INTELLIGENCE: ✅ Knows WordPress admin needs more connections ✅ Knows ecommerce checkout = simultaneous AJAX calls ✅ Knows static sites need minimal limits ✅ Knows Ajax-heavy sites (React/Vue) need headroom ✅ Accounts for plugin count (more plugins = more connections) CONFIRMATION FOR USER: Report clearly shows: "Per-Site Analysis (All X Sites Checked)" Where X = actual number of sites discovered from sysref database SAFETY: - If sysref.db doesn't exist, builds it automatically - Skips aliases (only analyzes primary domains) - Skips unknown/system domains - Only analyzes sites with actual log files FUNCTIONS ADDED: - detect_site_type() - WordPress/ecommerce/framework detection - calculate_site_complexity() - 1-10 score based on site needs - analyze_per_site_traffic() - Per-domain traffic breakdown - Enhanced generate_recommendation() - Factors in complexity FILES MODIFIED: - modules/security/optimize-ct-limit.sh - Added reference-db.sh sourcing (line 19) - Added detect_site_type() (lines 54-92) - Added calculate_site_complexity() (lines 94-136) - Added analyze_per_site_traffic() (lines 138-183) - Enhanced generate_recommendation() (lines 368-408, 449-465) - Added per-site analysis call in main() (line 625) RESULT: ✅ Confirms ALL sites checked ✅ Tailors CT_LIMIT to actual site portfolio ✅ Prevents blocking legitimate WordPress/ecommerce traffic ✅ Shows exactly which sites drive the requirement