Commit Graph

10 Commits

Author SHA1 Message Date
shuki
a5ab2c788a Remove legacy gniza init CLI command
The WHM setup wizard handles all configuration (SSH, S3, GDrive),
making the interactive CLI init wizard redundant.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 19:00:26 +02:00
shuki
beb17a2298 Update repository URLs to git.linux-hosting.co.il
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 18:42:43 +02:00
shuki
b22a8d14a7 Update repository URLs to use gitea SSH config alias
Replace hardcoded 192.168.100.100 addresses with gitea SSH alias
from ~/.ssh/config across CLAUDE.md, README.md, and install.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 06:16:13 +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
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
eb93333b9f Update documentation: git repo info, schedules, restore, WHM pages
- Add Repository section with SSH/HTTP/Web UI URLs
- Rewrite Schedules section: decoupled from remotes, hourly/daily/weekly/monthly/custom types
- Add schedule types table with cron patterns
- Add mailbox restore to commands and restore workflows
- Update commands list with full schedule CRUD and comma-separated remotes
- Update WHM plugin docs: restore page, schedule toggles, Runner.pm
- Update file layout: schedules.d/, rclone.sh, schedule.conf.example
- Add uninstall instructions
- Remove empty Production Server heading

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:57:47 +02:00
shuki
2c5fa2bcc0 Remove production server details from docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:54:48 +02:00
shuki
2eff1916ca Fix Gitea HTTP port to 3001
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:46:30 +02:00
shuki
a31233d97a Add single-line installation instructions to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:41:35 +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