Commit Graph

5520 Commits

Author SHA1 Message Date
master3395
8ce05bbd31 Add firewall_static_context to template context for cache-busting 2026-02-16 13:19:46 +01:00
master3395
9390551ebd Firewall: fix search bar, Search button, Modify centering, system-status $ error
- Search input: add firewall-search-input class, blue focus instead of red (avoids read-only/error look)
- Search button: use btn-search with round futuristic style (match Ban IP/Overview)
- Actions column: center Modify/Unban/Delete in Firewall Rules and Banned IPs tables
- system-status.js: increment() uses document.querySelectorAll (no jQuery), fixes $ is not defined
- upgrade_modules/09_sync.sh: sync firewall static to public/static during upgrade
- to-do/FIREWALL-LOAD-CHANGES.md: doc on file locations and deploy steps
2026-02-16 03:16:18 +01:00
master3395
cf7518b015 fix(firewall): remove conflicting inline click handlers so tab tables load on click
Remove duplicate click/mousedown listeners on firewall tab nav that conflicted
with Angular ng-click. Let ng-click handle all tab clicks; keep only hashchange
sync for back/forward navigation.
2026-02-16 00:39:39 +01:00
master3395
bcebd8883a fix(firewall): banned IPs search, modify modal, export/import, Tracking Prevention
- Add searchBannedIPFilter for searching banned IPs by IP, reason, or status
- Add openModifyModal, closeModifyModal, saveModifyBannedIP for modify modal
- Add exportBannedIPs and importBannedIPs for export/import buttons
- Wrap localStorage in try-catch in base template to handle Tracking Prevention
  (Firefox/Safari blocking storage access for cross-site context)
- Fixes firewall banned IPs page search and functionality
2026-02-16 00:20:57 +01:00
Master3395
5c44048f27 Merge pull request #1703 from master3395/v2.5.5-dev
V2.5.5 dev
2026-02-16 00:13:07 +01:00
master3395
b63317b7af Install/upgrade and UI updates: monolithic install, SnappyMail, firewall, to-do docs
- Install: monolithic install script, venvsetup_modules and venvsetup_monolithic,
  install_modules (parse_main, menus, actions, etc.), remove legacy email-configs
  and php-configs from repo, add install/snappymail and Rainloop->SnappyMail
  migration script
- CyberPanel: urls.py, cyberpanel.sh, cyberpanel_upgrade_monolithic.sh tweaks
- Firewall: firewall.js and firewall.html updates
- plogical: mailUtilities.py, upgrade.py; upgrade_modules 10_post_tweak.sh
- pluginHolder: deploy-plugins-template.sh
- to-do: docs (git conflicts, HTTP 500 recovery, phpMyAdmin, plugins, SnappyMail
  rename, install/upgrade OS support, security whitelist, etc.)
- upgrade_modules: 02_checks_part1/part2.txt
2026-02-16 00:12:03 +01:00
master3395
0f1ef2f101 Fix ACL Delete DNS Zone (issue #1701): permission UI and legacy config
- plogical/acl.py: use config.get() for DNS permissions so old ACLs without
  deleteZone key do not cause KeyError
- baseTemplate: add deleteZone/addDeleteRecords CSS classes to DNS menu links
  for correct permission-based hiding
- system-status.js: fix swapped selectors (deleteZone hides .deleteZone,
  addDeleteRecords hides .addDeleteRecords instead of .deleteDatabase)
2026-02-16 00:09:52 +01:00
Master3395
c4b9bd210e Merge pull request #1702 from master3395/v2.5.5-dev
V2.5.5 dev
2026-02-15 23:58:03 +01:00
master3395
7de649c47a Plugins: move Show/Sort by into collapsible Filter (rename Category Filter to Filter) 2026-02-15 23:54:44 +01:00
master3395
22aeda0c98 Plugins: collapsible Category Filter on Grid/Table view (like A-Å in store) 2026-02-15 23:47:39 +01:00
master3395
197f355cf7 Plugins: fix 404 - add plugin roots to sys.path before loading URLs
- pluginHolder/urls: insert /usr/local/CyberCP and source paths at top of module
  so __import__(plugin_name + '.urls') finds plugin packages (fixes No module
  named 'X.urls'). Register plugin routes before catch-all help route.
- pluginHolder/views: add debug_loaded_plugins API and log full traceback on
  plugin import failure. panelAccess/emailMarketing settings/ routes added
  earlier; cspManager resilient to missing DB table.
Author: master3395
2026-02-15 23:24:04 +01:00
master3395
48ebfc79b2 pluginHolder/urls: register plugin routes before catch-all so /plugins/<name>/settings/ match 2026-02-15 23:06:03 +01:00
master3395
8fc7446d95 Plugins: fix installed/active counts, 404s, metadata sync, install fallback
- pluginHolder/views: use dir+meta.xml for installed count; exclude core apps;
  repair pass to restore meta.xml from source or GitHub; ensure_plugin_meta_xml
  falls back to GitHub when source missing; cap active <= installed
- pluginHolder/urls: include plugin routes for all on-disk plugins (not only
  INSTALLED_APPS) so /plugins/<name>/settings/ works after install
- pluginHolder/plugins.html: Install button tries local then store (GitHub)
- CyberCP/settings: sync INSTALLED_APPS with plugin dirs on disk (meta.xml+urls.py)
Author: master3395
2026-02-15 23:03:01 +01:00
master3395
44b1acc52c CI: fix 'Unrecognized function: hashFiles' — use in-step skip instead of job if
GitHub reported: Unrecognized function: 'hashFiles' at ci.yml L40.
Remove job-level if: hashFiles(...); skip inside the run step when
plogical/versionFetcher.py is missing (e.g. stable branch).
2026-02-15 20:06:33 +01:00
master3395
cdce54f61f CI: fix Actions failures — pin ubuntu-22.04, drop Docker in workflow
- All jobs now use runs-on: ubuntu-22.04 (avoids ubuntu-latest/24.04 Docker issues)
- validate-on-os: replaced 16 Docker matrix jobs with single validate-upgrade-script job
- No Docker in CI so workflow passes on hosted runners; multi-OS still testable locally
- validate-python: add timeout-minutes: 2
- Tested locally: all four job steps pass
2026-02-15 20:04:00 +01:00
master3395
8a06d7847d CI: run validate-on-os via script to fix quoting and reliability
- Add .github/scripts/ci-validate-upgrade.sh (single source for Docker validation)
- validate-on-os: run script inside container instead of inline bash -c
- Avoids nested quoting and glob/exit behavior differences across shells
- Same script can be run locally: bash .github/scripts/ci-validate-upgrade.sh
2026-02-15 19:57:49 +01:00
master3395
e741dfba11 CI: skip validate-python when versionFetcher.py missing; do not require it in key files
- stable branch has no plogical/versionFetcher.py; CI #23 failed on smoke-key-files and validate-python
- validate-python: run only if hashFiles('plogical/versionFetcher.py') != ''
- smoke-key-files and validate-on-os: require only preUpgrade, loader, upgrade.py, install.py; versionFetcher optional
2026-02-15 19:50:50 +01:00
master3395
a2331c5d14 CI: validate modular upgrade (loader + upgrade_modules). Loader: default to stable, support both branches.
- CI: when upgrade_modules/ exists, check all 12 modules and grep Branch_Check in modules
- CI: syntax-check upgrade_modules/*.sh in validate-shell and validate-on-os
- Loader: BRANCH_FOR_MODULES default 'stable' so one-liner works without -b
- Loader: show both stable and -b v2.5.5-dev in root-check message
2026-02-15 19:38:15 +01:00
master3395
6d932c7d41 Modularize upgrade script: loader + upgrade_modules, keep monolithic backup
- cyberpanel_upgrade.sh is now a loader that sources upgrade_modules/*.sh
- When upgrade_modules/ is missing (e.g. one-liner), loader downloads modules from GitHub
- All modules kept under 500 lines for easier debugging
- cyberpanel_upgrade_monolithic.sh preserves full original script
- to-do/UPGRADE-MODULES-DESIGN.md documents module layout
2026-02-15 19:32:03 +01:00
master3395
4561e221e0 MariaDB 11->12: robust detection, fallback after dnf; --backup-db/--no-backup-db; preUpgrade pass-through 2026-02-15 18:57:59 +01:00
master3395
59f02fbe12 Progress messages during repo/MariaDB setup so upgrade does not appear to stop 2026-02-15 17:35:14 +01:00
master3395
f320b6f51f MariaDB 11->12 manual upgrade path; preUpgrade.sh curl no-cache for script fetch 2026-02-15 17:22:41 +01:00
master3395
b9fbf0a56c MariaDB: allow any version (12.3, etc.); pre-upgrade backup; optional --migrate-to-utf8; highlight 10.11.16, 11.8, 12.x; 10.11 stays latin1 2026-02-15 17:14:48 +01:00
master3395
7f19208383 MariaDB: manual 10->11 upgrade (stop, remove old server pkg, install 11.8, start, mariadb-upgrade); client skip-ssl; banner uses --skip-ssl 2026-02-15 16:37:09 +01:00
master3395
42bd57299c phpMyAdmin: force 127.0.0.1 so it shows MariaDB 11.8 (not socket 10.11) 2026-02-15 16:22:43 +01:00
master3395
7ad26d2d17 EL: backup old 10.11 mariadb.repo so dnf uses only chosen MariaDB version (11.8) 2026-02-15 05:34:43 +01:00
master3395
ab5117f016 AlmaLinux 9/EL: omit curl from dnf; optional gpgme-devel; --allowerasing fallback; Download_Requirement curl fallback 2026-02-15 05:29:42 +01:00
master3395
e946fa7f25 MariaDB 11.8 on Ubuntu/Debian; ASCII box (red line fix); preUpgrade from master3395; banner actual DB version; log typo 2026-02-15 04:47:27 +01:00
Master3395
2c0d481f46 Merge pull request #1700 from master3395/v2.5.5-dev
V2.5.5 dev
2026-02-15 04:18:57 +01:00
master3395
f7af4f1c62 ci: trigger workflows (Actions re-run) 2026-02-15 04:15:44 +01:00
master3395
e3eafc0df9 CI: Docker validate only shell + key files (no install/Python in container) 2026-02-15 04:09:22 +01:00
master3395
9955e046cd CI: use venv in Docker validate for reliable Python/requests 2026-02-15 04:06:21 +01:00
master3395
5750601c48 CI: pip install --break-system-packages fallback in Docker validate 2026-02-15 04:02:39 +01:00
master3395
f06d6c7c71 CI: CentOS 7 vault.centos.org repo fix for Docker validate-on-os 2026-02-15 04:02:01 +01:00
master3395
c8747de503 CI: fix shell syntax (for-loop 2>/dev/null), key-files grep (BRANCH_NAME + cyberpanel_upgrade.sh) 2026-02-15 03:57:01 +01:00
master3395
e97365baee AlmaLinux 9 repo fix: remove aggressive disable of originals, keep override fallback 2026-02-15 03:50:37 +01:00
master3395
a07974c758 Upgrade: phpMyAdmin version normalization, download verify and chown 2026-02-15 03:49:33 +01:00
master3395
45fe91bb47 CI: fix Docker jobs (remove curl to avoid conflict), resilient shell check 2026-02-15 03:48:28 +01:00
master3395
3edfb28977 CI: validate on all supported OSes (Alma, CentOS, CloudLinux, Debian, RHEL, Rocky, Ubuntu)
- Add .github/workflows/ci.yml: shell syntax, Python version fetcher, key files
- Matrix job runs in Docker per OS (16 images); CloudLinux/RHEL use Rocky/Alma proxies
- CentOS 7: EPEL + pip fallbacks
2026-02-15 03:42:31 +01:00
Master3395
e1bb26ab39 Merge pull request #1699 from master3395/v2.5.5-dev
Fix phpMyAdmin for install/upgrade on v2.5.5-dev
2026-02-15 03:31:19 +01:00
master3395
0ba2cf201d Fix phpMyAdmin for install/upgrade on v2.5.5-dev
- versionFetcher: normalize RELEASE_5_2_3 -> 5.2.3 for phpMyAdmin tags
- upgrade: verify tarball size after download; chown lscpd at end of phpMyAdmin install
- install: same glob-based extract + verify; check tarball size
- fix-phpmyadmin.sh: one-off script to install/fix phpMyAdmin on server (404 fix)
2026-02-15 03:27:33 +01:00
Master3395
1f7bf1486a Merge pull request #1697 from master3395/v2.5.5-dev
V2.5.5 dev
2026-02-15 03:05:02 +01:00
master3395
9a2afefb95 Notification dropdown: scroll, button size, dark-mode text; install/upgrade use usmannasir URLs
- index.html: notification dropdown scroll (list max-height, flex min-height:0), button min-width and contrast, dark text on white for dark mode visibility
- cyberpanel.sh, cyberpanel_upgrade.sh, preUpgrade.sh: default install/upgrade URLs to usmannasir/cyberpanel (keep -r/--repo for fork)
- databases/plogical: AutoLogin, views, phpmyadminsignin updates
2026-02-15 03:02:08 +01:00
master3395
430476d92e chore: sync baseTemplate static to public/static after git sync (LiteSpeed serves from public/static) 2026-02-15 02:40:15 +01:00
master3395
370a3e796d fix: dashboard loading - register newDashboardStat alias, init systemStatusInfo defaults
- Register dashboard controller under both 'dashboardStatsController' and
  'newDashboardStat' so templates/caches using either name work (fixes
  $controller:ctrlreg error and unrendered {$ cpuUsage $} placeholders)
- Initialize systemStatusInfo scope with cpuUsage/ramUsage/diskUsage etc.
  defaults so overview never shows undefined when API is slow or fails
- Set defaults in cantLoadInitialData on getSystemStatus failure
2026-02-15 02:36:05 +01:00
master3395
3dfc4a1b0f fix: avoid 500 after git sync - optional emailMarketing urls, backup/restore settings in sync step
- 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
2026-02-15 02:33:44 +01:00
Master3395
c24f067e74 Merge pull request #1696 from master3395/v2.5.5-dev
fix: use mariadb CLI instead of deprecated mysql (version check, GRAN…
2026-02-15 02:12:12 +01:00
master3395
41c708ee02 fix: use mariadb CLI instead of deprecated mysql (version check, GRANT, service, upgrade.py) 2026-02-15 02:11:09 +01:00
Master3395
0d77d0711e Merge pull request #1695 from master3395/v2.5.5-dev
V2.5.5 dev
2026-02-15 02:07:12 +01:00
master3395
845aa68940 chore: clarify upgrade messages - INFO not WARNING for auto-restore; venv/WSGI wording 2026-02-15 02:06:01 +01:00