shuki
b7232f9c69
Replace blurry 48x48 cPanel icon with crisp 128x128 PNG
...
Reverts SVG approach (cPanel sprites don't support SVG) and
regenerates PNG at higher resolution from the SVG source.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 04:20:14 +02:00
shuki
e48907ecd4
Switch cPanel plugin icon from PNG to SVG for crisp rendering
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 04:18:00 +02:00
shuki
0aa5e26a02
Fix cPanel icon: use 48x48 PNG for sprite compatibility
...
The SVG had negative coordinates that rendered off-screen in cPanel's
sprite sheet. Export to clean 48x48 PNG (2.8KB) instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 01:48:14 +02:00
shuki
70ef4d3bcd
Use gniza SVG icon for cPanel plugin
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 01:40:22 +02:00
shuki
c1555da3c7
Use gniza backup PNG icon for cPanel plugin
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:52:59 +02:00
shuki
66e9cb9def
Revert cPanel icon to original gniza-logo.svg
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:50:55 +02:00
shuki
f297d40a85
Add lightweight cPanel icon and update plugin registration
...
Replace 378KB VTracer-traced logo with a clean 1KB 48x48 SVG icon
for cPanel's icon system. Update install.json, install.sh, and
uninstall.sh to reference the new icon. Also update README with
skip-suspended flag and schedule config fields.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:40:57 +02:00
shuki
a87ca4a823
Fix cPanel plugin registration: correct install.json format and include icon
...
- install.json: use cPanel's required fields (type, id, group_id, uri)
instead of incorrect keys (target_type, category, url)
- Include icon SVG in tar.gz archive (install_plugin validates icon exists)
- Without correct fields, install_plugin silently skipped registration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:34:43 +02:00
shuki
7802d7ebe0
Fix uninstall_plugin to use tar.gz archive like install_plugin
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:05:04 +02:00
shuki
1f68ea1058
Security hardening, static analysis fixes, and expanded test coverage
...
- Fix CRITICAL: safe config parser replacing shell source, sshpass -e,
CSRF with /dev/urandom, symlink-safe file I/O
- Fix HIGH: input validation for timestamps/accounts, path traversal
prevention in Runner.pm, AJAX CSRF on all endpoints
- Fix MEDIUM: umask 077, chmod 700 on config dirs, Config.pm TOCTOU lock,
rsync exit code capture bug, RSYNC_EXTRA_OPTS character validation
- ShellCheck: fix word-splitting in notify.sh, safe rm in pkgacct.sh,
suppress cross-file SC2034 false positives
- Perl::Critic: return undef→bare return, return (sort), unpack @_,
explicit return on void subs, rename Config::write→save
- Remove dead code: enforce_retention_all(), rsync_dry_run()
- Add require_cmd checks for rsync/ssh/hostname/gzip at startup
- Escape $hint/$tip in CGI helper functions for defense-in-depth
- Expand tests from 17→40: validate_timestamp, validate_account_name,
_safe_source_config (including malicious input), numeric validation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 23:57:26 +02:00
shuki
1459bd1b8b
Initial commit: gniza backup & disaster recovery CLI + WHM plugin
...
Full-featured cPanel backup tool with SSH, S3, and Google Drive support.
Includes WHM plugin with Tailwind/DaisyUI UI, multi-remote management,
decoupled schedules, and account restore workflows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 02:39:39 +02:00