refine: Update roadmap to focus on automatic data collection, not menus

This commit is contained in:
Developer
2026-03-19 19:58:49 -04:00
parent 9f8522d8a6
commit c7080d04b6
+169 -142
View File
@@ -1,188 +1,207 @@
# Dev Launcher - Platform Support Roadmap # Dev Launcher - Platform Support Roadmap
**Goal**: Build a launcher in the dev branch that fully supports all documented platforms with proper detection, health checks, and platform-specific options. **Goal**: Build comprehensive **automatic platform detection** that collects all system data during launcher startup and stores in reference database (`.sysref.beta`).
**Key Principle**: Launcher runs on startup, collects ALL data automatically, displays findings, stores in reference DB. No interactive menus - modules use the detected/stored data.
--- ---
## Phase 1: Enhanced Platform Detection (CURRENT) ## Phase 1: Comprehensive Automatic Detection (CURRENT)
**Status**: In Progress (Step 1 Complete) **Status**: 🔄 In Progress
### Step 1: Quick System Overview ✅ DONE ### Step 1: System Detection at Startup ✅ DONE
- [x] System info display at startup - [x] System info display at startup (show_system_overview)
- [x] Quick platform overview in menu - [x] Control panel detection (cPanel, Plesk, InterWorx, Standalone)
- [x] Detailed system info menu option (7) - [x] OS detection (CentOS, AlmaLinux, Rocky, CloudLinux, Ubuntu, Debian)
- [x] Show detected platforms on every menu refresh - [x] Web server detection (Apache, Nginx, LiteSpeed, OpenLiteSpeed)
- [x] Database detection (MySQL, MariaDB)
- [x] PHP version detection (default + EA4 + Plesk + alt-php)
- [x] Firewall detection (CSF, firewalld, UFW, iptables)
### Step 2: Platform Health Checks (NEXT) ### Step 2: Automatic Data Collection & Storage (NEXT)
- [ ] Create `modules/diagnostics/platform-health-check.sh` - [ ] **Enhance reference-db.sh** to collect platform compatibility data
- Verify control panel is running - Add PLATFORM record type to .sysref:
- Check essential services (apache/nginx, mysql/mariadb, php) ```
- Firewall status and basic rules PLATFORM|control_panel|cpanel|120.0|ok
- CloudFlare integration status PLATFORM|os|almalinux|9|supported
- Storage and resource warnings PLATFORM|web_server|apache|2.4.57|ok
PLATFORM|php_version|8.1|available
PLATFORM|compatibility|cpanel_almalinux|ok
```
- Add health status for each component
- Add package status (installed/missing/conflict)
- [ ] Create `modules/diagnostics/os-compatibility-check.sh` - [ ] **Enhance startup_detection()** to:
- Verify OS-specific packages installed - Run comprehensive detection automatically
- Check for known incompatibilities - Call platform health checks (store results, don't display menu)
- Version compatibility matrix verification - Run OS compatibility checks (store results)
- Kernel version compatibility - Populate PLATFORM records in .sysref.beta
- Show summary at startup (what was detected, any issues)
### Step 3: Platform-Specific Menus ### Step 3: Store Platform Data in Reference DB
- [ ] Add dynamic menu options based on detected platform - [ ] Extend .sysref format to include:
- cPanel-specific tools (cPHulk, DKIM, AutoSSL) - Control panel status and features
- Plesk-specific tools (Extension management, Packages) - OS compatibility status
- InterWorx-specific tools (NodeWorx commands) - Package installation status
- CloudLinux-specific tools (LVE limits, alt-php) - Service health status
- Known issues found
### Step 4: Control Panel Discovery Enhancement - [ ] Create functions to query this data:
- [ ] Enhanced cPanel detection - `db_get_platform_status()` - Get overall platform health
- Version-specific features - `db_get_compatibility_issues()` - Get known incompatibilities
- Installed plugins (AutoSSL, Immuify, etc.) - `db_get_missing_packages()` - Get required packages not installed
- [ ] Enhanced Plesk detection ### Step 4: Display Findings at Startup
- Version-aware paths (pre-18.0.50 vs 18.0.50+) - [ ] Show platform detection summary during initialization
- Extension detection - [ ] List any critical issues found
- Module status - [ ] List recommendations (upgrades, package installs, fixes)
- [ ] Cache expires with .sysref (1 hour)
- [ ] Enhanced InterWorx detection
- Installed modules
- Custom plugins
- [ ] CloudLinux detection
- LVE resource limits
- CloudLinux version and license
--- ---
## Phase 2: Operating System Support Matrix ## Phase 2: Automatic OS Compatibility Detection
**Status**: ⏳ Planned **Status**: ⏳ Planned
### Supported Distributions ### Auto-Collect for Each OS
- [ ] CentOS/RHEL (7, 8, 9) - [ ] **Package Manager State** - YUM, DNF, or APT status
- [ ] AlmaLinux (8, 9) - [ ] **Required Packages** - Verify installed (httpd, apache2, mysql, etc.)
- [ ] Rocky Linux (8, 9) - [ ] **Service Manager** - Detect systemd vs init
- [ ] CloudLinux (7, 8, 9) - [ ] **Apache Binary** - Detect httpd vs apache2
- [ ] Ubuntu (20.04 LTS, 22.04 LTS, 24.04) - [ ] **MySQL Socket** - Detect correct socket path
- [ ] Debian (11, 12) - [ ] **Firewall Type** - Auto-detect running firewall
- [ ] **PHP Installation** - Detect all available PHP versions
- [ ] **Repository Config** - Detect EPEL, Remi, Ondrej PPAs
### Per-OS Checks ### Store Results in .sysref
- [ ] Package manager compatibility - Package installation status per OS
- [ ] Service manager (systemd vs init) - Service availability status
- [ ] Apache binary (httpd vs apache2) - Path configuration status
- [ ] MySQL socket paths - Version support timeline
- [ ] Firewall type (firewalld vs UFW vs iptables) - Known incompatibilities
--- ---
## Phase 3: Web Server Support Enhancement ## Phase 3: Control Panel Feature Auto-Discovery
**Status**: ⏳ Planned **Status**: ⏳ Planned
### Supported Web Servers ### Auto-Detect & Store for Each Panel
- [x] Apache (httpd/apache2) - Already detected
- [x] Nginx - Already detected
- [x] LiteSpeed - Already detected
- [x] OpenLiteSpeed - Already detected
### Additional Detection **cPanel**:
- [ ] ModSecurity status - [ ] Installed EA4 modules
- [ ] Modsecurity rules version - [ ] Installed plugins (AutoSSL, Immuify, etc.)
- [ ] HTTP/2 support detection - [ ] cPanel API version
- [ ] SSL/TLS version support - [ ] License status
- [ ] Performance modules (mod_pagespeed, ngx_cache_purge, etc.)
**Plesk**:
- [ ] Installed extensions (Qmail, Nginx, etc.)
- [ ] Module status (mail, web, dns, etc.)
- [ ] License information
- [ ] Version-specific features
**InterWorx**:
- [ ] Installed modules
- [ ] NodeWorx API availability
- [ ] Custom plugins
**CloudLinux**:
- [ ] LVE limits per account
- [ ] alt-php selector availability
- [ ] CloudLinux tools availability
### Store in .sysref as PLATFORM records
--- ---
## Phase 4: Database & PHP Deep Dive ## Phase 4: Database & PHP Auto-Discovery
**Status**: ⏳ Planned **Status**: ⏳ Planned
### Database Detection Enhancement ### Automatic Database Data Collection
- [ ] Detect Percona Server - [ ] MySQL/MariaDB version and type
- [ ] Database cluster detection (Galera for MariaDB) - [ ] Percona Server detection
- [ ] Database cluster detection (Galera)
- [ ] Replication status - [ ] Replication status
- [ ] Backup tool detection (Acronis, Bacula, etc.) - [ ] Backup tools detection (Acronis, Bacula)
- [ ] Store database inventory in .sysref (already have DB records)
### PHP Multi-Version Support ### Automatic PHP Detection (Already Partial)
- [ ] Enumerate all installed PHP versions - [ ] All installed PHP versions (default + EA4 + Plesk + alt-php)
- [ ] Per-domain PHP version mapping - [ ] PHP module availability per version
- [ ] PHP module detection per version - [ ] PHP-FPM pool detection
- [ ] PHP-FPM pools enumeration
- [ ] OPcache status per version - [ ] OPcache status per version
- [ ] Per-domain PHP version mapping (query from configs)
### cPanel-Specific PHP ### Store PHP Data in .sysref
- [ ] EA-PHP version matrix - [ ] PHP versions available
- [ ] PHP CLI version detection - [ ] Default PHP version
- [ ] PHPList management - [ ] PHP modules per version
- [ ] PHP-FPM pool count
### CloudLinux alt-php
- [ ] alt-php detection and enumeration
- [ ] Per-user PHP version limits
- [ ] CloudLinux PHP selector status
--- ---
## Phase 5: Service Status Dashboard ## Phase 5: Service Status Auto-Collection
**Status**: ⏳ Planned **Status**: ⏳ Planned
### Essential Services ### Automatic Service Health Check
- [ ] Apache/Nginx running status - [ ] Essential services (Apache/Nginx, MySQL, PHP-FPM, SSH)
- [ ] MySQL/MariaDB status - [ ] Control panel services (cpanel, sw-engine, iworx)
- [ ] PHP-FPM status (if installed)
- [ ] Mail service (Exim/Postfix) - [ ] Mail service (Exim/Postfix)
- [ ] SSH service
- [ ] Firewall service - [ ] Firewall service
- [ ] Store status in .sysref as SERVICE records:
```
SERVICE|apache|running|ok
SERVICE|mysql|running|ok
SERVICE|php-fpm|running|warning
SERVICE|firewall|active|ok
```
### Control Panel Services ### Automatic Issue Detection
- [ ] cPanel daemons (cpanel, cpsrvd) - [ ] Missing critical services
- [ ] Plesk core services (sw-engine, sw-cp-server) - [ ] Services that should be running but aren't
- [ ] InterWorx services (iworx, iworx-httpd) - [ ] Port conflicts (multiple web servers on port 80)
- [ ] Store findings as ISSUE records
### Optional Services
- [ ] Nginx/Varnish cache status
- [ ] Immuify/malware detection
- [ ] Backup agents (Acronis, etc.)
- [ ] CloudFlare support
--- ---
## Phase 6: Intelligence & Recommendations ## Phase 6: Reference Database Queries
**Status**: ⏳ Planned **Status**: ⏳ Planned
### Platform-Specific Recommendations ### Add Query Functions to reference-db.sh
- [ ] cPanel: Recommendations for security hardening, backup setup - [ ] `db_get_platform_info()` - Get all platform data
- [ ] Plesk: Extension recommendations, performance tuning - [ ] `db_get_compatibility_issues()` - Get known issues
- [ ] InterWorx: Resource allocation, security features - [ ] `db_get_service_status()` - Get service states
- [ ] Standalone: Web server optimization, PHP tuning - [ ] `db_get_missing_packages()` - Get uninstalled packages
- [ ] `db_get_recommendations()` - Get suggested actions
### Compatibility Warnings ### Modules Use These to Make Decisions
- [ ] Warn if mixing incompatible tools Instead of detecting themselves, modules query the data:
- [ ] Alert on deprecated versions - Modules call `db_get_platform_info()` to know the platform
- [ ] Suggest upgrades for end-of-life software - Modules call `db_get_service_status()` before running
- Modules check `db_get_missing_packages()` to suggest installs
### Performance Insights - Modules suggest actions based on `db_get_recommendations()`
- [ ] PHP version optimization
- [ ] Database tuning hints
- [ ] Caching recommendations
- [ ] Resource allocation suggestions
--- ---
## Implementation Priority ## Implementation Priority
### IMMEDIATE (Phase 1 - Step 2-3) ### IMMEDIATE (Phase 1 - Step 2-4)
1. Platform Health Checks module 1. ⏳ Enhance reference-db.sh to collect platform data automatically
2. OS Compatibility module 2. ⏳ Add PLATFORM record type to .sysref format
3. Platform-specific menu options 3. ⏳ Update startup_detection() to run comprehensive checks
4. ⏳ Display platform findings during initialization
### NEAR TERM (Phase 2-3) ### NEAR TERM (Phase 2-3)
4. OS support matrix enhancements 5. ⏳ Add OS compatibility data collection to startup
5. Web server detection improvements 6. ⏳ Add control panel feature auto-discovery
7. ⏳ Store all findings in .sysref.beta
### MEDIUM TERM (Phase 4-5) ### MEDIUM TERM (Phase 4-5)
6. Database & PHP deep dive 8. ⏳ Database & PHP data collection
7. Service status dashboard 9. ⏳ Service status auto-detection
10. ⏳ Issue detection and storage
### LONG TERM (Phase 6) ### LONG TERM (Phase 6)
8. Intelligence & recommendations engine 11. ⏳ Query functions in reference-db.sh
12. ⏳ Modules refactored to use cached data
--- ---
@@ -210,26 +229,34 @@
## Success Criteria ## Success Criteria
1. ✅ Detect all 4 control panels accurately 1. ✅ Launcher detects all 4 control panels automatically
2. ✅ Detect all 6 OS types accurately 2. ✅ Launcher detects all 6 OS types automatically
3. ✅ Display platform info without errors 3. ✅ All platform data stored in .sysref.beta on startup
4. ✅ Recommend appropriate tools per platform 4. ✅ Platform summary displayed during initialization
5. ✅ Provide health checks for detected platforms 5. ✅ Critical issues flagged (missing packages, incompatibilities)
6. ✅ Handle missing/unknown components gracefully 6. ✅ Modules query cached data instead of re-detecting
7. ✅ No interactive menus - launcher is pure data collection
--- ---
## Files to Create/Modify ## Files to Create/Modify
### New Modules ### Enhanced Files
- `modules/diagnostics/platform-health-check.sh` (400-500 lines) - `lib/reference-db.sh` - Add PLATFORM record collection and queries
- `modules/diagnostics/os-compatibility-check.sh` (300-400 lines) - `lib/system-detect.sh` - Comprehensive automatic detection
- `modules/platform-tools/` (directory for platform-specific tools) - `launcher.sh` - Enhanced startup_detection() to store all findings
### Modified Files ### New Functions in reference-db.sh
- `launcher.sh` - Add platform-specific menu options - `collect_platform_data()` - Gather all platform info
- `lib/system-detect.sh` - Enhance detection functions - `db_get_platform_info()` - Query platform data
- Various module files - Add platform compatibility checks - `db_get_compatibility_issues()` - Query issues found
- `db_get_service_status()` - Query service states
- `db_get_missing_packages()` - Query missing packages
### Standalone Diagnostic Modules (Optional)
- `modules/diagnostics/platform-health-check.sh` - For manual health checks
- `modules/diagnostics/os-compatibility-check.sh` - For manual compatibility checks
- Note: These are optional modules for users to run manually, not part of launcher
--- ---