Commit Graph

11596 Commits

Author SHA1 Message Date
master3395
ca6cbb7ebd Add Rspamd UI reverse-proxy view and sync mail stack helpers
- Insert rspamd_ui_proxy in emailPremium/views.py with http.client and csrf_exempt imports so /emailPremium/Rspamd/ui matches urls.py (Rspamd 3.8+ controller headers).
- Refresh plogical/mailUtilities.py from tested vendor fixes (Postfix/Dovecot/Rspamd install paths, SnappyMail-related mail flows).
2026-04-11 19:38:27 +02:00
master3395
7306fcb87d Bundle SnappyMail list-unsubscribe-header plugin; enable on install/upgrade
- Add install/snappymail/plugins/list-unsubscribe-header (upstream GitHub plugin)
- Add plogical/snappymail_plugin_utilities.py to copy into snappymail + legacy rainloop data roots and merge enabled_list
- Run after SnappyMail CyberPanel installer in install.py and upgrade.py
- InstallMailBoxFoldersPlugin now merges plugins instead of replacing enabled_list; also installs list-unsubscribe

Roundcube is not shipped by CyberPanel core; SnappyMail is the bundled webmail.
2026-04-11 01:51:09 +02:00
master3395
46c9725715 fix(emailPremium): Rspamd admin UI Angular binding and panel proxy URL
Pass rspamd_ui_url from Rspamd view; safe machineIP read; bootstrap window.app
before controllers; replace invalid {$ errorMessage $} with ng-bind; fix
textareas; clarify HTTPS UI via CyberPanel proxy vs SSH tunnel localhost.
2026-04-11 00:21:14 +02:00
master3395
92acb9a3b8 fix(firewall): pagination ng-show + firewall.js cache bust (cb=11)
ng-if on pagination bars created a child scope so ng-model for Per page and Go to page updated a shadowed copy; handlers read the controller scope — controls appeared to do nothing. Use ng-show instead.

Bump firewall.js query cb after merge with upstream (cb=11) so browsers reload the script.
2026-04-10 21:39:26 +02:00
Master3395
adc70e8bfc Merge pull request #1756 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-10 20:33:05 +02:00
master3395
6d386da22f Merge upstream/usmannasir v2.5.5-dev into fork (resolve PR #1756 conflicts)
- Take upstream baseTemplate dashboard, mail/process utilities, webauthn, emailPremium.
- Keep fork firewall: rulesLoading/synced JS, trusted-SSH tab, SSH whitelist ban guard.
- Firewall script cache-bust stays cb=6 in index.
2026-04-10 20:32:21 +02:00
master3395
6a52cc54bd Firewall: sync rulesLoading fix to public/static; harden rules fetch; cb=6
Tracked copies (public/static, static) must match firewall/static so the panel serves the fixed JS. Add rulesFetchGen, try/finally, fetchStatus==1, expose populateCurrentRecords on scope.
2026-04-10 19:30:20 +02:00
master3395
9941a09865 Dashboard Top Process: Pause/Resume auto-refresh button 2026-04-10 18:52:20 +02:00
master3395
06a3823c57 Dashboard Top Process: silent refresh, 10s interval, no 2s table flash
Stop tying process list to chart poll; background refresh updates rows
without loading spinner. First load still shows spinner once.
2026-04-10 18:48:53 +02:00
master3395
9ac5a16079 Dashboard SSH pagination: default 3 per page, add 5 option 2026-04-10 18:45:37 +02:00
master3395
7736e0ef95 Dashboard SSH pagination: fix ng-if scope shadowing for per-page and go-to
Use $parent ng-model bindings inside ng-if so values update the controller
scope. Coerce per-page to int in slice math to avoid string concat bugs.
2026-04-10 18:17:18 +02:00
master3395
8db49babae Dashboard SSH: bind tables to paginated arrays so page/per-page works
ng-repeat used full sshLogins/sshLogs while pagination updated
sshLoginsPaginated/sshLogsPaginated; rows never changed.
2026-04-10 18:09:30 +02:00
master3395
8f57463550 SSH trusted IPs: sync UI and analysis with firewall tab
Remove duplicate Trusted IPs management from dashboard Recent SSH Logs;
use actionable alert count on the tab (exclude info-only SSH tips).
Add sshSecurityWhitelistUtilities with normalized IP matching for logs
and analyzeSSHSecurity. Wire whitelist API routes, firewall ban guard,
and login hooks. Firewall tab remains the canonical trusted-IP editor.
2026-04-10 17:53:17 +02:00
master3395
85981f1cac feat: automate OLS+Apache backend provisioning for user-managed domains.
Add a user-management automation flow that enables OLS+Apache backend wiring for website and child-domain creation, including idempotent config updates, health/syntax validation gates, rollback-safe retries, and operator test/documentation assets.
2026-04-10 11:33:54 +02:00
master3395
352eebf0b5 Rspamd: cross-OS installer fixes and proxied Web UI at /emailPremium/Rspamd/ui/
- plogical/mailUtilities: ensure config dirs before writes; fix broken
  post-install indentation; write install success on EL; EL7 uses yum;
  create /etc/yum.repos.d when adding rspamd.repo
- plogical/processUtilities: broader RHEL family detection (Debian ID,
  CentOS Stream, RHEL, Rocky 10, openEuler/Virtuozzo, os-release fallback)
- emailPremium: admin-only reverse proxy to 127.0.0.1:11334; url route
  Rspamd/ui; safe machineIP read; rspamd_ui_url for template
- Rspamd template: primary Open Rspamd Web UI link; action-buttons anchor
  styling; SSH tunnel as alternative
2026-04-10 00:38:38 +02:00
Master3395
f2668e5360 Merge pull request #1755 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-09 23:35:02 +02:00
Master3395
85571c917d Merge pull request #1755 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-09 23:35:02 +02:00
master3395
e54a8093c0 docs: clarify Rspamd install log during long InstallRedis step; log install errors 2026-04-09 22:49:38 +02:00
master3395
6e0575093e docs: clarify Rspamd install log during long InstallRedis step; log install errors 2026-04-09 22:49:38 +02:00
master3395
9543c8396e fix: Rspamd installer, Email Delivery migrations, dns sys.path
- mailUtilities: insert CyberCP first on sys.path (dnspython dns shadowing); Rspamd log under /var/log/cyberpanel; log before ServiceManager; dnf on EL8/9; append package stderr
- emailPremium: Rspamd admin UI without cloud addon gate; JsonResponse; fetchRspamdSettings unlocked
- emailDelivery: AutoField PKs; 0001_initial SeparateDatabaseAndState for int FK to loginSystem
2026-04-09 22:39:49 +02:00
master3395
a3dace73bb fix: Rspamd installer, Email Delivery migrations, dns sys.path
- mailUtilities: insert CyberCP first on sys.path (dnspython dns shadowing); Rspamd log under /var/log/cyberpanel; log before ServiceManager; dnf on EL8/9; append package stderr
- emailPremium: Rspamd admin UI without cloud addon gate; JsonResponse; fetchRspamdSettings unlocked
- emailDelivery: AutoField PKs; 0001_initial SeparateDatabaseAndState for int FK to loginSystem
2026-04-09 22:39:49 +02:00
master3395
f9c1c28385 Fix catch-all bootstrap when e_catchall is missing.
Add runtime table self-healing for catch-all/plus/pattern email features and make upgrade SQL idempotent on existing latin1 installations by avoiding failing FK creation while preserving forwarding compatibility.
2026-04-09 13:42:03 +02:00
master3395
90fd3b7dfb Fix catch-all bootstrap when e_catchall is missing.
Add runtime table self-healing for catch-all/plus/pattern email features and make upgrade SQL idempotent on existing latin1 installations by avoiding failing FK creation while preserving forwarding compatibility.
2026-04-09 13:42:03 +02:00
master3395
50ec386376 Fix missing email UI controllers in public mailServer bundle.
Restore catch-all, plus-addressing, pattern-forwarding, and email-limits controllers in the public static JS so CyberPanel email management pages no longer fail with Angular controller registration errors.
2026-04-09 12:55:43 +02:00
master3395
5840456abf Fix missing email UI controllers in public mailServer bundle.
Restore catch-all, plus-addressing, pattern-forwarding, and email-limits controllers in the public static JS so CyberPanel email management pages no longer fail with Angular controller registration errors.
2026-04-09 12:55:43 +02:00
Master3395
f6dd9a4884 Merge pull request #1754 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-07 18:55:21 +02:00
Master3395
a2ee765134 Merge pull request #1754 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-07 18:55:21 +02:00
master3395
f09f7b96b9 DNS: stop auto-creating duplicate DMARC TXT records
CyberPanel previously added _dmarc at the apex (p=none) in two code paths and _dmarc on every child subdomain, which conflicts with a single externally managed policy (e.g. Cloudflare) and violates RFC 7489 (one TXT RRset per name). Comment out automatic DMARC creation so operators set one record at _dmarc.<apex> only.
2026-04-07 18:50:16 +02:00
master3395
facd84fec2 DNS: stop auto-creating duplicate DMARC TXT records
CyberPanel previously added _dmarc at the apex (p=none) in two code paths and _dmarc on every child subdomain, which conflicts with a single externally managed policy (e.g. Cloudflare) and violates RFC 7489 (one TXT RRset per name). Comment out automatic DMARC creation so operators set one record at _dmarc.<apex> only.
2026-04-07 18:50:16 +02:00
master3395
385a108014 Fix OLS+Apache child domains: DNS CF sync, ACME paths, subdomain creation UX
- dnsUtilities: correct createDNSRecordCloudFlare argument order (priority, ttl)
- vhostConfs/ApacheVhosts: OLSLBConf uses real docRoot and acme-challenge path for child vhosts (vhRoot is parent domain)
- virtualHostUtilities: defer ChildDomains save until after SSL/Apache; cleanup ORM row on failure; createDomain CLI exits 0/1 with 1,/0, stdout
- websiteFunctions: submitDomainCreation waits on subprocess and returns failure JSON on error
2026-04-06 01:48:35 +02:00
master3395
3308233959 Fix OLS+Apache child domains: DNS CF sync, ACME paths, subdomain creation UX
- dnsUtilities: correct createDNSRecordCloudFlare argument order (priority, ttl)
- vhostConfs/ApacheVhosts: OLSLBConf uses real docRoot and acme-challenge path for child vhosts (vhRoot is parent domain)
- virtualHostUtilities: defer ChildDomains save until after SSL/Apache; cleanup ORM row on failure; createDomain CLI exits 0/1 with 1,/0, stdout
- websiteFunctions: submitDomainCreation waits on subprocess and returns failure JSON on error
2026-04-06 01:48:35 +02:00
master3395
2077692a73 fix(dns): delete all Cloudflare DNS records for child subdomains
When removing a child domain, matching only the apex label (e.g. vscode)
left mail.* and www.* (and MX/TXT/DMARC) records in the parent zone.
Normalize record names to FQDN under the zone and delete the subdomain
FQDN plus any names under it.
2026-04-06 00:57:12 +02:00
master3395
9c08cfe94f fix(dns): delete all Cloudflare DNS records for child subdomains
When removing a child domain, matching only the apex label (e.g. vscode)
left mail.* and www.* (and MX/TXT/DMARC) records in the parent zone.
Normalize record names to FQDN under the zone and delete the subdomain
FQDN plus any names under it.
2026-04-06 00:57:12 +02:00
Master3395
de2b2cdefb Merge pull request #1753 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-05 15:57:09 +02:00
Master3395
425d31f539 Merge pull request #1753 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-05 15:57:09 +02:00
Master3395
83786265ac Fix typo in 'Please wait...' message 2026-04-05 15:56:12 +02:00
Master3395
8666cf7d71 Fix typo in 'Please wait...' message 2026-04-05 15:56:12 +02:00
master3395
8da7f74abc fix(ssl): deploy renewed certs to /etc/letsencrypt/live (#1676)
- After acme.sh renew/issue, run install-cert into live/ (ECC/RSA aware)
- Resolve ACME webroot from sslpath like obtainSSLForADomain
- Add --ecc to obtainSSL acme.sh install-cert (PR #1732 alignment)
- Add test/ssl_acme_helpers_test.py smoke tests for webroot helpers
2026-04-03 21:37:37 +02:00
master3395
b8dcb66b6b fix(ssl): deploy renewed certs to /etc/letsencrypt/live (#1676)
- After acme.sh renew/issue, run install-cert into live/ (ECC/RSA aware)
- Resolve ACME webroot from sslpath like obtainSSLForADomain
- Add --ecc to obtainSSL acme.sh install-cert (PR #1732 alignment)
- Add test/ssl_acme_helpers_test.py smoke tests for webroot helpers
2026-04-03 21:37:37 +02:00
Master3395
b526010289 Merge pull request #1751 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-03 21:26:13 +02:00
Master3395
1f4c43aa92 Merge pull request #1751 from master3395/v2.5.5-dev
V2.5.5 dev
2026-04-03 21:26:13 +02:00
master3395
ef0f12f55a manageServices: align version cache TTL and application page meta
Raise default CYBERCP_MANAGED_APPS version cache TTL to 3600s to match
Manage Applications inventory behavior and reduce cold DNF fetches.
Refresh application_page_meta and synced manageServices static assets.
2026-04-03 21:21:21 +02:00
master3395
c705b7e6c8 manageServices: align version cache TTL and application page meta
Raise default CYBERCP_MANAGED_APPS version cache TTL to 3600s to match
Manage Applications inventory behavior and reduce cold DNF fetches.
Refresh application_page_meta and synced manageServices static assets.
2026-04-03 21:21:21 +02:00
master3395
bbe1df2d68 Docker Manager: fix container update flow and UI sync
Align updateContainer with the panel (name vs containerName), pull new
images before removing the old container, and sync the Containers model
after a successful update. getContainerList now shows live Config.Image
so tags match Docker. Add notification-center progress for updates,
guard overlapping requests, and return new_image on success.
2026-04-03 21:20:32 +02:00
master3395
975966146f Docker Manager: fix container update flow and UI sync
Align updateContainer with the panel (name vs containerName), pull new
images before removing the old container, and sync the Containers model
after a successful update. getContainerList now shows live Config.Image
so tags match Docker. Add notification-center progress for updates,
guard overlapping requests, and return new_image on success.
2026-04-03 21:20:32 +02:00
master3395
774c72f159 Manage Services: RabbitMQ 4.x default, repo alignment, UI fixes
- Detect RHEL major from /etc/os-release and align Packagecloud RabbitMQ .repo URLs.
- Improve version discovery (el8 metadata merge on EL9+, 4.x fallback when DNF omits builds).
- Default RabbitMQ stream to 4.x in API, page bootstrap, serviceManager, and normalize_rabbitmq_stream.
- UI: prefetch 4.x on install, stream buttons 4.x first, fix confirm checkbox ng-model parent scope.
- Bump msModal cache-bust for manageServices.js.
2026-04-01 03:27:17 +02:00
master3395
dbd6379bcb Manage Services: RabbitMQ 4.x default, repo alignment, UI fixes
- Detect RHEL major from /etc/os-release and align Packagecloud RabbitMQ .repo URLs.
- Improve version discovery (el8 metadata merge on EL9+, 4.x fallback when DNF omits builds).
- Default RabbitMQ stream to 4.x in API, page bootstrap, serviceManager, and normalize_rabbitmq_stream.
- UI: prefetch 4.x on install, stream buttons 4.x first, fix confirm checkbox ng-model parent scope.
- Bump msModal cache-bust for manageServices.js.
2026-04-01 03:27:17 +02:00
master3395
82ec34f339 Manage Applications: Elasticsearch, Redis, RabbitMQ installers and UI hardening
Add modular application packages with backup-aware install/upgrade/downgrade,
DNF-backed version lists with TTL caching, and HTML bootstrap for faster loads.
Improve the version picker (labels, selection state, background meta refresh) and
route applicationMeta through shared page meta cache. Update static assets and
cache buster for manageServices.js. Repository also includes related updates to
serviceManager, upgrade tooling, website functions, and user management from this
development tree.
2026-04-01 00:35:22 +02:00
master3395
eb31b66871 Manage Applications: Elasticsearch, Redis, RabbitMQ installers and UI hardening
Add modular application packages with backup-aware install/upgrade/downgrade,
DNF-backed version lists with TTL caching, and HTML bootstrap for faster loads.
Improve the version picker (labels, selection state, background meta refresh) and
route applicationMeta through shared page meta cache. Update static assets and
cache buster for manageServices.js. Repository also includes related updates to
serviceManager, upgrade tooling, website functions, and user management from this
development tree.
2026-04-01 00:35:22 +02:00
master3395
3e00565cf4 Use official RabbitMQ logo as local static asset.
Switch Manage Applications RabbitMQ icon to a bundled official SVG path to avoid broken icon rendering while keeping assets local.
2026-03-31 20:49:11 +02:00