shuki
a162536585
Rename product from gniza to gniza4cp across entire codebase
...
- CLI binary: bin/gniza -> bin/gniza4cp
- Install path: /usr/local/gniza4cp/
- Config path: /etc/gniza4cp/
- Log path: /var/log/gniza4cp/
- WHM plugin: gniza4cp-whm/
- cPanel plugin: cpanel/gniza4cp/
- AdminBin: Gniza4cp::Restore
- Perl modules: Gniza4cpWHM::*, Gniza4cpCPanel::*
- DaisyUI theme: gniza4cp
- All internal references, branding, paths updated
- Git remote updated to gniza4cp repo
2026-03-05 21:03:30 +02:00
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
894c918d32
Document correct cPanel install.json format with required fields
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:34:58 +02:00
shuki
c05a0293b0
Comprehensive documentation update for cPanel plugin, install scripts, and security
...
- Expand cPanel User Restore Plugin section with restore categories table,
CGI naming convention, AdminBin validation patterns, and registration details
- Add detailed GnizaCPanel::UI function reference including safe I/O functions
- Expand AdminBin Module section with validation regex table and remote filtering
- Reorganize Security section into CLI, WHM, and cPanel subsections
- Add Install/Uninstall Scripts section documenting all steps and tar.gz quirk
- Add Upgrade Considerations section (CSRF file→dir migration, token write
robustness, SMTP test token sync)
- Add "Adding a new cPanel plugin page" guide
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:17:45 +02:00
shuki
1dccbce6d0
Fix cPanel plugin install: copy install.json to target dir and use tar.gz archive
...
install_plugin requires a tar.gz archive, not a raw JSON file. Also copies
install.json to the plugin directory so uninstall_plugin can reference it.
Includes CLAUDE.md documentation updates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 00:02:27 +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
b16893086d
Add terminate-before-restore toggle, logo, and installer improvements
...
- Add "Terminate First" toggle to restore page (UI, Runner, CLI, lib)
- When enabled, removes existing cPanel account before restoring
- Add GNIZA Backup SVG logo to WHM plugin header (inline base64)
- Copy uninstall.sh to /usr/local/gniza/ during installation
- Update CLAUDE.md with new restore params and Runner options
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 21:43:48 +02:00
shuki
0213ba8485
Remove deploy instructions from CLAUDE.md
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 04:38:54 +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
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