Commit Graph

5217 Commits

Author SHA1 Message Date
master3395
2b8377da7f Permanent fix: ensure all new child domains get correct log configuration
- Fixed perHostDomainConf() to replace {virtualHostName} placeholder in olsChildConf template
- Updated lswsChildConf template to use master domain log directory
- Updated lswsRediConfChild and lswsRediConfChildWWW templates to use master domain log directory
- Added automatic log directory and log file creation for child domains during creation
- Log files are now created at /home/{masterDomain}/logs/{childDomain}.{access|error}_log
- Ensures all newly created sub-domains automatically have separate log files from the start

This permanent fix ensures that when child domains are created:
1. VHost config uses correct log paths pointing to master domain's log directory
2. Log directory is created if it doesn't exist
3. Separate log files are created for each child domain with proper permissions
4. Works for both OpenLiteSpeed (OLS) and LiteSpeed Enterprise (LSWS) configurations

Fixes the root cause so all future child domain creations will have correct log configuration automatically.
2026-01-19 18:46:16 +01:00
master3395
fdf5b2abcb Fix sub-domain log viewing: properly handle child domain log paths
- Added _get_log_file_path() helper method to correctly determine log file paths
- For child domains (sub-domains), logs are stored in master domain's log directory
- Updated getDataFromLogFile() and fetchErrorLogs() to use the helper method
- Fixes issue where sub-domain logs couldn't be viewed in CyberPanel UI
- Logs are now correctly located at /home/{master_domain}/logs/{subdomain}.{access|error}_log

This resolves the bug where viewing logs for sub-domains would fail because
the code was looking for logs in /home/{subdomain}/logs/ instead of the
correct location /home/{master_domain}/logs/{subdomain}.{access|error}_log
2026-01-19 18:39:19 +01:00
master3395
00a3bdc5be Remove duplicate createUserCtr controller - merge home directory functionality into external JS file 2026-01-19 18:29:18 +01:00
master3395
1b40e1bc14 Fix createUser template: correct URL path, use AngularJS delimiters, fix controller logic 2026-01-19 18:26:24 +01:00
master3395
76b3f664a6 Fix Django template syntax error - use AngularJS delimiters for || operator in modifyUser 2026-01-19 18:24:47 +01:00
master3395
58f7d5d855 Fix AngularJS delimiters in modifyWebsite template for consistency 2026-01-19 18:24:11 +01:00
master3395
85be82a69d Fix Django template syntax error - use AngularJS delimiters for || operator 2026-01-19 18:23:54 +01:00
master3395
5a181e9389 Add user_filters to modifyUser template for consistency 2026-01-19 18:22:10 +01:00
master3395
b44b626d16 Add Django filesize template filter to fix createUser and modifyWebsite errors 2026-01-19 18:20:57 +01:00
master3395
021ed4dfa5 Add AngularJS filesize filter to fix createUser page error 2026-01-19 18:20:21 +01:00
master3395
fedf5817cc Fix dashboard data binding - use ng-bind instead of template syntax and add ng-cloak 2026-01-19 18:16:56 +01:00
master3395
7bab1bdf75 Fix dashboard data loading - add error handling and force AngularJS updates 2026-01-19 18:15:40 +01:00
master3395
3951979242 Add icon support for View Details button in .htaccess notification 2026-01-19 18:10:21 +01:00
master3395
f6b759d31b Force icon display with !important and add info icon to Learn More button 2026-01-19 18:07:33 +01:00
master3395
d237358168 Fix Learn More button text visibility and ensure .htaccess icon displays 2026-01-19 18:06:19 +01:00
master3395
513c61eab0 Make Learn More button text prominent and fix notification links 2026-01-19 18:03:39 +01:00
master3395
a2b3591491 Add Learn More button to all notifications and improve button styling 2026-01-19 18:00:44 +01:00
master3395
42a6bc291d Fix notification center text overflow - ensure all text stays inside container 2026-01-19 17:42:17 +01:00
master3395
09767dddc1 Improve notification center design - wider, better spacing, button-style links 2026-01-19 17:40:28 +01:00
master3395
a17d856b76 Add notification center button and fix stat-card/activity board loading 2026-01-19 17:37:47 +01:00
master3395
2d6657a7c5 Implement 24-hour dismissal for notifications (backup, ai-scanner, htaccess) 2026-01-19 17:32:29 +01:00
master3395
60bf1e2db8 Remove discordWebhooks from base config - plugin installer handles it dynamically 2026-01-19 17:30:25 +01:00
master3395
b1562d7666 Restore discordWebhooks plugin configuration - plugin installer handles installation 2026-01-19 17:29:06 +01:00
master3395
7ad2044a9c Fix static file serving: Allow /static/ paths in secMiddleware and add static file URL pattern 2026-01-19 17:26:58 +01:00
Master3395
21d9eda621 Move guides to docs
Move guides to docs
2026-01-10 03:43:36 +01:00
Master3395
02aea512a6 Merge pull request #1650 from master3395/v2.5.5-dev
V2.5.5 dev ModSecurity binary fix
2026-01-10 03:27:32 +01:00
master3395
dbde02926a Fix ModSecurity LMDB dependency crash (Issue #1626)
- Always download compatible ModSecurity binary after installation
- Removes conditional check for custom_ols_marker
- Fixes undefined symbol: mdb_env_create error
- Prevents OpenLiteSpeed crashes with SIGSEGV signal 11
- Compatible with Ubuntu 24.04, RHEL 8/9, Debian 11/12

The fix ensures that compatible ModSecurity binaries (built without
LMDB dependency or with LMDB statically linked) are always used,
preventing the runtime symbol lookup errors that cause crashes.

Related: https://github.com/usmannasir/cyberpanel/issues/1626
2026-01-10 03:22:45 +01:00
master3395
0bc8c745e4 Fix issue #1643: Fix downloadFile function to properly parse query parameters
- Changed from incorrect URI splitting to proper request.GET.get() method
- Added proper URL decoding with unquote()
- Fixed both downloadFile and RootDownloadFile functions
- Added path normalization for additional security
- Added file existence validation
- Improved error messages to match reported error format

This fixes the 'Unauthorized access: Not a valid file' error when downloading files from the file manager.
2026-01-07 23:47:23 +01:00
Master3395
8131ffe7c7 Merge pull request #1645 from master3395/v2.5.5-dev
Refactor: replace url() with path() for Django routes in plugin Insta…
2026-01-06 19:25:21 +01:00
master3395
ba262bdcb1 Refactor: replace url() with path() for Django routes in plugin Installer
- Updated pluginHolder/urls.py to use path() instead of url()
- Added new API routes for plugin installation, uninstallation, enable, and disable
- Compatible with Django 4.x (url() was removed in Django 4.0)

Ref: PR 1644
2026-01-06 19:23:04 +01:00
Master3395
25048fc9a1 Merge pull request #1642 from master3395/v2.5.5-dev
Security: Update Python packages to fix critical vulnerabilities
2026-01-04 22:25:03 +01:00
master3395
4b96e5e2ae Security: Update Python packages to fix critical vulnerabilities
Fixed 5 critical security vulnerabilities in Python dependencies:

1. Tornado (6.4.1 -> >=6.4.2)
   - CVE-2024-52804: DoS via HTTP cookie parser
   - CVE-2025-47287: DoS via multipart/form-data parser

2. Requests (2.32.3 -> >=2.32.4)
   - CVE-2024-47081: URL parsing may leak .netrc credentials

3. Cryptography (43.0.0 -> >=43.0.1)
   - CVE-2024-12797: Vulnerable statically linked OpenSSL
   - PVE-2024-73711: Another OpenSSL vulnerability

4. PyJWT (unpinned -> >=2.10.1)
   - Multiple vulnerabilities in unpinned versions

5. psutil (unpinned -> >=7.2.0)
   - Security issues in older versions

Changes:
- Updated requirments.txt with secure minimum versions
- Added requirements-secure.txt for documentation

All packages updated to secure versions that address these CVEs.
2026-01-04 22:22:48 +01:00
Master3395
7188e1023a Merge pull request #1641 from master3395/v2.5.5-dev
Fix: Enable website creation for regular users
2026-01-04 22:06:27 +01:00
master3395
a2c359401e Fix: Enable website creation for regular users
- Fixed bug where regular users (UserACL) cannot create websites
- Changed UserACL createWebsite permission from 0 to 1
- Also enabled modifyWebsite and deleteWebsite for consistency
- Resolves issue where non-admin/reseller users were blocked from creating websites

Related changes:
- UserACL: createWebsite: 0 -> 1
- UserACL: modifyWebsite: 0 -> 1
- UserACL: deleteWebsite: 0 -> 1
- suspendWebsite remains 0 (admin-only feature)

This allows regular users to create, modify, and delete their own websites
while maintaining proper ownership checks and security controls.
2026-01-04 22:03:27 +01:00
Master3395
e5033be0ad Merge pull request #1640 from master3395/v2.5.5-dev
V2.5.5 dev plugin installation and management
2026-01-04 21:33:07 +01:00
master3395
6a0d3fd443 Add PLUGINS.md reference to INDEX.md
- Added Plugin System Guide to Plugins & Extensions section
- Added plugin system to Feature-Specific Guides section
- Author: master3395
2026-01-04 21:29:24 +01:00
master3395
7ddc7e20d0 Add comprehensive plugin system documentation (PLUGINS.md)
- Complete guide for plugin installation and management
- Plugin development guide with code examples
- Plugin structure and requirements documentation
- TestPlugin reference guide
- Best practices and troubleshooting sections
- Author: master3395
2026-01-04 21:26:19 +01:00
master3395
10898f5a87 Merge branch 'v2.5.5-dev' of https://github.com/master3395/cyberpanel into v2.5.5-dev 2026-01-04 21:13:35 +01:00
master3395
ed7d4743b6 Add plugin system enhancements and testPlugin
- 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
2026-01-04 21:04:51 +01:00
Master3395
11a78d81ca Merge pull request #1639 from master3395/v2.5.5-dev
- Fixed CloudFlare proxy toggle button to display as oblong with a round dot
- Enable CloudFlare proxy by default for all domains/subdomains except mail domains
- Automatically add AAAA (IPv6) DNS records when creating domains/subdomains
- Added GetServerIPv6() function to retrieve server IPv6 address
- Updated DNS template styling and Angular.js binding for toggle buttons
2026-01-04 04:17:02 +01:00
master3395
b1adb8f52e DNS improvements: CloudFlare proxy toggle styling, auto AAAA records, proxy defaults
- Fixed CloudFlare proxy toggle button to display as oblong with round dot
- Enable CloudFlare proxy by default for all domains/subdomains except mail domains
- Automatically add AAAA (IPv6) DNS records when creating domains/subdomains
- Added GetServerIPv6() function to retrieve server IPv6 address
- Updated DNS template styling and Angular.js binding for toggle buttons
2026-01-04 04:15:46 +01:00
Master3395
0a331ab00c Merge pull request #1638 from master3395/v2.5.5-dev
V2.5.5 dev
2026-01-04 03:59:51 +01:00
master3395
d2aaa50311 Fix session status logic: Add IDLE state for logged-in users without processes, improve process detection with TTY filtering, enhance status messages with clearer explanations 2026-01-04 03:57:53 +01:00
master3395
38918c4f49 Enhance SSH Activity Management: Add active/inactive session indicators, improve IP extraction (IPv4/IPv6), optimize user activity loading, fix modal display issues 2026-01-04 03:44:29 +01:00
Master3395
a818dceced Merge pull request #1637 from master3395/v2.5.5-dev
Fix CloudFlare DNS Management: Filter main domains only, auto-delete DNS records on domain removal, improve table display
2026-01-04 02:15:42 +01:00
master3395
cfee3d9867 Fix CloudFlare DNS Management: Filter main domains only, auto-delete DNS records on domain removal, improve table display
- Filter domain dropdown to show only main domains (exclude sub-domains)
- Add automatic CloudFlare DNS record deletion when domains/sub-domains are removed
- Improve DNS Records table display to match SSH Logins/Logs table styling
- Add loading states and proper table structure with ng-if conditions
- Update CSS to match activity-table styling with sticky headers
2026-01-04 02:13:46 +01:00
Master3395
d8dbe6e410 Merge pull request #1634 from master3395/v2.5.5-dev
Updated index.html to reference local copies of qrious.min.js and chart.umd.min.js. Added functionality in install.py and upgrade.py to download these libraries before running collectstatic. Updated website.html to ensure compatibility with the new local scripts.
2026-01-01 05:30:21 +01:00
Master3395
c3abff58f4 Download CDN libraries locally to eliminate tracking prevention warnings. Updated index.html to reference local copies of qrious.min.js and chart.umd.min.js. Added functionality in install.py and upgrade.py to download these libraries before running collectstatic. Updated website.html to ensure compatibility with the new local scripts. 2026-01-01 05:29:46 +01:00
Master3395
88810d6e87 Merge pull request #1633 from master3395/v2.5.5-dev
Refactor configuration modification methods for improved safety

https://github.com/usmannasir/cyberpanel/issues/1609
2025-12-31 23:15:09 +01:00
Master3395
18b1bad51f Refactor configuration modification methods for improved safety and validation
- Introduced a `safeModifyHttpdConfig` method in `installUtilities` to handle modifications to the OpenLiteSpeed configuration file with backup, validation, and rollback capabilities.
- Updated various modules (`modSec.py`, `sslUtilities.py`, `tuning.py`, `vhost.py`, etc.) to utilize the new safe modification method, enhancing reliability and preventing configuration corruption.
- Improved error handling and logging throughout the configuration modification processes to ensure better traceability and debugging.
2025-12-31 23:13:53 +01:00