refine: Update roadmap to focus on automatic data collection, not menus
This commit is contained in:
+169
-142
@@ -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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user