Integrates webmail and emailDelivery apps, mail-server and install/upgrade
paths, cyberpanel_ols 2.7.0-style binaries, and v2.4.5 UI patterns while
preserving v2.5.5-dev behavior (SnappyMail/PUBLIC_ROOT, childPath in
launchChild, hardened downloads and SSH activity modal).
Replace SnappyMail link with a custom Django webmail app that provides:
- Full IMAP/SMTP integration (Dovecot + Postfix) with master user SSO
- 3-column responsive UI matching CyberPanel design system
- Compose with rich text editor, attachments, reply/forward
- Contact management with auto-collect from sent messages
- Sieve mail filter rules with ManageSieve protocol support
- Standalone login page for direct webmail access
- Account switcher for admins managing multiple email accounts
- HTML email sanitization (whitelist-based, external image proxy)
- Draft auto-save and per-user settings
- CyberCP/urls.py: when emailMarketing app is missing/broken, register placeholder path with name='emailMarketing' so {% url 'emailMarketing' %} never raises Reverse not found.
- public/static/baseTemplate/custom-js/system-status.js: replace old copy with full system-status.js that registers dashboardStatsController and systemStatusInfo (fixes Angular [:ctrlreg] and raw {{$ cpuUsage $}} on overview).
- CyberCP/urls.py: make emailMarketing include optional (ModuleNotFoundError)
so clean clone or git clean -fd does not break with missing app
- cyberpanel_upgrade.sh: in Sync_CyberCP_To_Latest, backup settings.py before
sync and restore after so production DB/config are not overwritten by repo
- pluginHolder/urls.py: Discover plugins from /usr/local/CyberCP and source
paths (/home/cyberpanel/plugins, /home/cyberpanel-plugins); dynamically
include each plugin's urls so /plugins/<name>/settings/ works without
hardcoding. Add source path to sys.path when loading from source.
- CyberCP/urls.py: Remove hardcoded _plugin_routes; all plugin routes now
served via pluginHolder dynamic inclusion.
Fixes 404 on /plugins/contaboAutoSnapshot/settings/ and any installed plugin
settings page. No per-plugin core changes required.
emailMarketing was in INSTALLED_APPS but URL route was missing,
causing 'Reverse for emailMarketing not found' error when template
tries to use {% url 'emailMarketing' %}
Plugins should be installed via Plugin Store, not auto-registered in core.
Plugin registrations (INSTALLED_APPS and URL routes) are added dynamically
during plugin installation via pluginInstaller, not hardcoded in core.
Removed from INSTALLED_APPS:
- fail2ban
- discordAuth (already removed by user)
- googleTagManager
- discordWebhooks (already removed by user)
Removed from urls.py:
- All plugin URL routes (fail2ban, googleTagManager, discordAuth)
These plugins must be installed via Plugin Store, which will automatically
add them to INSTALLED_APPS and urls.py during installation.
Plugins should be installed via Plugin Store, not auto-registered in core.
Plugin registrations (INSTALLED_APPS and URL routes) are added dynamically
during plugin installation, not hardcoded in the core repository.
Reverted:
- Removed fail2ban, discordWebhooks, googleTagManager from INSTALLED_APPS
- Removed plugin URL routes from urls.py
- discordAuth was already removed by user
Kept:
- Automatic lscpd restart after plugin installation (pluginHolder/views.py)
- File ownership/permissions fixes
- Enhanced plugin installer to properly extract and install plugins
- Added security middleware exception for plugin webhook endpoints
- Improved plugin listing with better error handling
- Added testPlugin as example plugin for CyberPanel plugin system
- Updated INSTALLED_APPS and URL routing for plugins
Author: master3395
- Added a static method to ensure ImunifyAV assets are created and permissions set correctly in CageFS.py.
- Updated the URL routing in urls.py to include paths for ImunifyAV, supporting both legacy and new routes.
- Modified the ImunifyAV HTML template to use Django's URL template tag for better maintainability.
- Enhanced the cyberpanel_fixes.sh script to ensure ImunifyAV UI assets are installed during fixes.
- Improved database user resolution and password handling in mysqlUtilities.py for better security and reliability.
This update enhances the integration and management of ImunifyAV within the CyberPanel environment.