Created detailed audit report of ALL 38 toolkit modules. FINDINGS: - ✅ 3 modules already InterWorx compatible - ⚠️ 14 modules need InterWorx fixes - ✓ 21 modules are control panel agnostic CRITICAL ISSUES IDENTIFIED: 1. Security Modules (Priority 1) - live-attack-monitor.sh: Hardcoded domlogs path - malware-scanner.sh: Hardcoded public_html, cPanel paths - optimize-ct-limit.sh: Wrong fallback path 2. Website Diagnostics (Priority 2) - website-error-analyzer.sh: Heavy cPanel dependencies - 500-error-tracker.sh: /var/cpanel/users/* lookups 3. Monitoring Tools (Priority 3) - web-traffic-monitor.sh: Hardcoded domlogs - tail-apache-access.sh: Hardcoded paths - tail-apache-error.sh: Hardcoded paths - network-bandwidth-analyzer.sh: Hardcoded log detection KEY PATH DIFFERENCES DOCUMENTED: - Access logs: /var/log/apache2/domlogs/domain → /home/user/var/domain/logs/access_log - Document root: /home/user/public_html → /home/user/domain.com/html - Error logs: Different per-domain structure - User config: /var/cpanel/users/* → NodeWorx API/vhost configs STANDARD FIX PATTERN DEFINED: 1. Use SYS_LOG_DIR from system-detect.sh 2. Use get_user_info()/get_user_domains() from user-manager.sh 3. Support both cPanel and InterWorx document root patterns 4. Add InterWorx-specific log discovery IMPLEMENTATION PLAN: - Phase 3: Critical security modules (3 modules) - Phase 4: Website diagnostics (2 modules) - Phase 5: Monitoring tools (4 modules) - Phase 6: System health check (1 module) Estimated effort: 8 hours for full InterWorx parity REPORT LOCATION: INTERWORX_COMPATIBILITY_AUDIT.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
9.6 KiB
InterWorx Compatibility Audit Report
Generated: 2025-11-19 Toolkit Version: Latest from git
Executive Summary
Out of 38 total modules, 14 modules have hardcoded cPanel-specific paths that will break on InterWorx servers.
Compatibility Status:
- ✅ 3 modules - Already InterWorx compatible (using SYS_LOG_DIR)
- ⚠️ 14 modules - Need InterWorx fixes (hardcoded paths)
- ✓ 21 modules - Control panel agnostic (no paths)
Critical Path Differences: cPanel vs InterWorx
| Resource | cPanel Location | InterWorx Location |
|---|---|---|
| Access Logs | /var/log/apache2/domlogs/domain.com |
/home/user/var/domain.com/logs/access_log |
| Error Logs | /var/log/apache2/domlogs/domain-error_log |
/home/user/var/domain.com/logs/error_log |
| Document Root | /home/user/public_html |
/home/user/domain.com/html |
| User Config | /var/cpanel/users/username |
NodeWorx DB or listaccounts.pex |
| Domain Config | /var/cpanel/userdata/user/domain |
/etc/httpd/conf.d/vhost_domain.conf |
| Main IP | /var/cpanel/mainip |
/usr/local/interworx/iworx.ini |
| PHP Error Logs | /home/user/public_html/error_log |
/home/user/domain.com/html/error_log |
Modules Requiring Fixes
PRIORITY 1: Critical Security Modules
1. live-attack-monitor.sh ⚠️ HIGH PRIORITY
Issues:
- Line 1256:
LOG_DIR="${SYS_LOG_DIR:-/var/log/apache2/domlogs}" - Line 1261-1262: Hardcoded
/var/log/httpd/access_log - Line 1267: Comment mentions "cPanel domlogs"
- Line 1537: CPHulk detection (cPanel-only feature)
Fix Required:
- Already uses
SYS_LOG_DIR(GOOD!) - But fallback is wrong - should use system-detect.sh
- Add InterWorx log discovery like bot-analyzer
- CPHulk detection should be cPanel-only conditional
Impact: Real-time attack monitoring won't see attacks on InterWorx
2. malware-scanner.sh ⚠️ HIGH PRIORITY
Issues:
- Line 31:
/usr/local/cpanel/3rdparty/bin/clamscancheck - Line 182: cPanel detection check
- Line 353: PATH with cPanel 3rdparty
- Line 429:
get_user_docroots()function - Line 878-880: Hardcoded
/var/log/apache2/domlogssearch
Fix Required:
- Use system-detect.sh for ClamAV path detection
- Fix
get_user_docroots()to use user-manager.sh functions - Support InterWorx document roots:
/home/user/domain.com/html - Fix log file discovery for malware analysis
Impact: Malware scanner won't find infected files in InterWorx sites
3. optimize-ct-limit.sh ⚠️ MEDIUM PRIORITY
Issues:
- Line 292:
log_dir="${SYS_LOG_DIR:-/var/log/apache2/domlogs}"
Fix Required:
- Already uses
SYS_LOG_DIR(GOOD!) - Fallback should be removed (rely on system-detect.sh)
Impact: Can't analyze connection limits on InterWorx
PRIORITY 2: Website Diagnostic Modules
4. website-error-analyzer.sh ⚠️ HIGH PRIORITY
Issues:
- Line 19:
DOMLOGS_DIR="/var/log/apache2/domlogs" - Line 140: Hardcoded Apache error log paths
- Line 153:
/var/cpanel/users/*for user lookup - Line 161:
find /home/*/public_html -name "error_log" - Line 176-177: Reads
/var/cpanel/users/$FILTER_USER - Line 339: User lookup via
/var/cpanel/users/* - Line 341:
.user.iniinpublic_html - Line 815: Error log path in
public_html
Fix Required:
- Use
SYS_LOG_DIRfrom system-detect.sh - Use
get_user_info()andget_user_domains()from user-manager.sh - Support InterWorx document roots:
/home/user/domain.com/html - Support InterWorx error logs:
/home/user/var/domain.com/logs/error_log
Impact: Can't diagnose website errors on InterWorx
5. 500-error-tracker.sh ⚠️ HIGH PRIORITY
Issues:
- Line 60:
DOMLOGS_DIR="/var/log/apache2/domlogs" - Line 83:
/var/cpanel/users/*for domain→user lookup - Line 233:
docroot="/home/$user/public_html" - Line 261: Error log in
public_html - Line 264-265: Hardcoded domlog paths
- Line 454:
/var/cpanel/userdata/$user/$domain - Line 679: Fix suggestion mentions
public_html
Fix Required:
- Use
SYS_LOG_DIRfrom system-detect.sh - Use
get_user_info()for user lookups - Support InterWorx document roots:
/home/user/domain.com/html - Support InterWorx error logs in
/home/user/var/domain.com/logs/
Impact: Can't track 500 errors on InterWorx
PRIORITY 3: Live Monitoring Tools
6. web-traffic-monitor.sh ⚠️ MEDIUM PRIORITY
Issues:
- Line 12-13: Hardcoded
/var/log/apache2/domlogs - Line 32: Error message mentions "domlogs"
Fix Required:
- Use
SYS_LOG_DIRfrom system-detect.sh - Add InterWorx log discovery
Impact: Can't monitor live web traffic on InterWorx
7. tail-apache-access.sh ⚠️ LOW PRIORITY
Issues:
- Line 8: Hardcoded
/var/log/apache2/domlogs/*
Fix Required:
- Use
SYS_LOG_DIRfrom system-detect.sh - Support InterWorx:
tail -f /home/*/var/*/logs/access_log
Impact: Simple log tailing won't work
8. tail-apache-error.sh ⚠️ LOW PRIORITY
Issues:
- Line 8: Hardcoded
/var/log/httpd/error_log
Fix Required:
- Use system-detect.sh to find Apache error log location
- InterWorx: Per-domain error logs at
/home/user/var/domain.com/logs/error_log
Impact: Can't tail error logs on InterWorx
PRIORITY 4: Performance Analysis
9. network-bandwidth-analyzer.sh ⚠️ MEDIUM PRIORITY
Issues:
- Line 187-192: Hardcoded log directory detection
Fix Required:
- Use
SYS_LOG_DIRfrom system-detect.sh - Add InterWorx log discovery
Impact: Can't analyze bandwidth usage on InterWorx
PRIORITY 5: cPanel-Specific Modules (Expected)
10. enable-cphulk.sh ℹ️ N/A - cPanel Only
Issues:
- Line 42:
/usr/local/cpanel/bin/cphulk_pam_ctlcheck - Line 58, 68, 287: cPanel-specific commands
- Line 131, 133:
/var/cpanel/and/usr/local/cpanel/paths
Fix Required:
- None - this is cPanel-specific
- Should check
SYS_CONTROL_PANEL=cpanelbefore running - Add warning for non-cPanel systems
PRIORITY 6: Diagnostic Tools
11. system-health-check.sh ⚠️ LOW PRIORITY
Issues:
- Line 492-493: Hardcoded
/var/log/httpd/error_log - Line 606-608: cPanel CPHulk checks
- Line 941-942: cPanel version detection
- Line 1205: Error log path in suggestion
Fix Required:
- Use system-detect.sh for log paths
- Make CPHulk checks conditional on
SYS_CONTROL_PANEL=cpanel - Control panel version already detected in system-detect.sh
Impact: Health checks may miss issues on InterWorx
PRIORITY 7: Backup Tools
12. acronis-configure.sh ℹ️ DOCUMENTATION ONLY
Issues:
- Line 52: Echo message mentions
public_html
Fix Required:
- Update documentation to mention both cPanel and InterWorx paths
- No functional impact (just display text)
Modules Already Compatible ✅
These modules already use SYS_LOG_DIR or user-manager.sh functions:
- bot-analyzer.sh ✅ - FIXED in Phase 1 & 2
- optimize-ct-limit.sh ✅ - Uses SYS_LOG_DIR (just needs fallback removed)
- mysql-query-analyzer.sh ✅ - Uses get_user_* functions
Modules That Are Control Panel Agnostic ✅
These modules don't use control panel-specific paths (21 total):
- All Acronis backup modules (13 modules)
- Hardware health check
- SSH attack monitor
- Firewall activity monitor
- Tail secure log
- Tail mail log
- IP reputation manager
- Cleanup toolkit data
- WordPress modules
Recommended Implementation Plan
Phase 3: Critical Security Modules (THIS PHASE)
- malware-scanner.sh - Fix document root discovery
- live-attack-monitor.sh - Fix log discovery
- optimize-ct-limit.sh - Remove hardcoded fallback
Phase 4: Website Diagnostic Modules
- website-error-analyzer.sh - Full InterWorx support
- 500-error-tracker.sh - Full InterWorx support
Phase 5: Monitoring Tools
- web-traffic-monitor.sh
- network-bandwidth-analyzer.sh
- tail-apache-access.sh
- tail-apache-error.sh
Phase 6: System Tools
- system-health-check.sh - Make cPanel checks conditional
Standard Fix Pattern
For all modules, follow this pattern:
1. Replace hardcoded paths with system-detect.sh:
# OLD (BAD):
LOG_DIR="/var/log/apache2/domlogs"
# NEW (GOOD):
LOG_DIR="${SYS_LOG_DIR}" # Auto-detected in system-detect.sh
2. Use user-manager.sh functions:
# OLD (BAD):
user=$(grep -l "DNS.*$domain" /var/cpanel/users/* 2>/dev/null | ...)
# NEW (GOOD):
eval $(get_user_info "$username")
# Now you have: $USER_EXISTS, $PRIMARY_DOMAIN, $ALL_DOMAINS, $HOME_DIR
3. Support both document root patterns:
# OLD (BAD):
docroot="/home/$user/public_html"
# NEW (GOOD):
if [ "$SYS_CONTROL_PANEL" = "interworx" ]; then
docroot="/home/$user/$domain/html"
else
docroot="/home/$user/public_html"
fi
4. Add InterWorx log discovery:
if [ "$SYS_CONTROL_PANEL" = "interworx" ]; then
find /home/*/var/*/logs -name "access_log" ...
else
find "$LOG_DIR" -type f ! -name "*-bytes_log" ...
fi
Testing Checklist
For each fixed module, test on:
- cPanel server (regression test)
- InterWorx server (new functionality)
- Standalone server (no control panel)
Estimated Effort
- Phase 3: 2-3 hours (3 critical security modules)
- Phase 4: 2-3 hours (2 website diagnostic modules)
- Phase 5: 1-2 hours (4 simple monitoring tools)
- Phase 6: 1 hour (system health check)
Total: ~8 hours to achieve full InterWorx parity
Current Progress
- ✅ Phase 1: user-manager.sh InterWorx support (COMPLETE)
- ✅ Phase 2: bot-analyzer.sh + system-detect.sh improvements (COMPLETE)
- ⏳ Phase 3: Critical security modules (PENDING)