Skip to content

πŸš€ Git Manager v2.0.0 β€” Complete Backup & Caption System

Choose a tag to compare

@se7enxweb se7enxweb released this 22 Jun 06:46
· 70 commits to master since this release

πŸš€ Git Manager v2.0.1 β€” Complete Backup & Caption System

This major release transforms Git Manager from a simple git UI tool into a comprehensive site backup and caption management system with enterprise-grade features with Exponential.


✨ What's New for You

1. πŸ“¦ Complete Backup Manager Dashboard

Create four types of backups through a beautiful card-based interface:

  • 🌐 Full Site Backup β€” Everything: SQL + var/ + extensions + settings + config.php
  • πŸ“¦ DB + Files Caption β€” Daily backup: SQL database + var/ uploaded files
  • πŸ—„οΈ Database Only β€” Quick SQL dump before migrations or CMS upgrades
  • πŸ“ Files Only (var/) β€” Archive uploaded content without database

Features:

  • Modern responsive card UI (mobile-optimized)
  • Multi-select bulk delete with checkbox selection
  • Age indicators: 🟒 Green (<7 days), 🟠 Orange (7-90 days), πŸ”΄ Red (90+ days)
  • Secure authenticated downloads via web interface
  • Automatic cleanup based on MaxBackups setting

2. πŸ”“ AGPL-Compatible Public Release Feature

New checkbox on backup cards: "AGPL Compatible Release"

When checked, creates a sanitized SQL dump safe for public sharing alongside your private backup.

What gets removed:

  • βœ‚οΈ User password hashes (bcrypt, MD5, SHA1/SHA256)
  • βœ‚οΈ Email addresses
  • βœ‚οΈ API keys (Stripe, SendGrid, AWS, PayPal)
  • βœ‚οΈ Google Analytics & reCAPTCHA keys
  • βœ‚οΈ Server paths, IPs, database credentials
  • βœ‚οΈ Session, audit, and notification table data

You get two files:

  • sql_2026-06-21_12-00-00.tar.gz β€” Full private backup
  • sql_agpl_2026-06-21_12-00-00.tar.gz β€” Sanitized public-shareable backup

Marked with πŸ”“ AGPL COMPATIBLE badge in the caption list.

Why this matters: Comply with GPL/AGPL redistribution obligations when sharing your eZ Publish customizations with other developers.

3. πŸ“œ Automatic License File Bundling

Every caption archive now includes a licenses/ directory with:

  • LICENSE-GPL-2.0.txt & .md β€” GNU General Public License v2 (governs eZ Publish core)
  • LICENSE-AGPL-3.0.txt & .md β€” GNU Affero General Public License v3 (governs sanitized dumps)
  • README.txt β€” Explains why these files are included

Benefit: Anyone receiving your backup archive has the full license terms β€” ensures legal compliance.

4. ⚠️ Intelligent Backup Age Warnings

The dashboard now displays prominent visual alerts to keep your backups fresh:

🚨 Critical Warning (Red) β€” When you have ZERO backups:

  • Animated pulsing red border with shake effect
  • Message: "Your website has ZERO backup captions. Take a backup caption right now..."
  • Positioned directly below page heading for maximum visibility

⚠️ Outdated Warning (Orange) β€” When newest backup is >7 days old:

  • Animated pulsing orange border
  • Shows exact age: "Your site backup captions are 2 weeks old and outdated..."
  • Encourages regular refresh to minimize data loss risk

Best Practice: Create a full caption weekly, database-only before CMS upgrades.

5. πŸ”’ Optional GPG AES256 Encryption

Check "Encrypt backup files" on any backup card:

  • Enter a secure passphrase
  • All archives encrypted with AES256 via GPG
  • Unencrypted originals automatically deleted
  • Creates .tar.gz.gpg files
  • Perfect for offsite backup via browser download

Decryption example:

gpg --batch --yes --passphrase "yourPass" -d backup.tar.gz.gpg | tar -xzf -

Full instructions included in README.

6. πŸ–₯️ CLI Backup Tools (New Scripts)

Four new command-line tools in bin/php/:

# Create backups
php bin/php/backup-create.php fullsite -d "Before upgrade"
php bin/php/backup-create.php full -e -p "pass" -d "Encrypted daily"
php bin/php/backup-create.php db
php bin/php/backup-create.php var

# List with age indicators
php bin/php/backup-list.php -v -s

# Inspect specific caption
php bin/php/backup-info.php 2026-06-21_12-00-00

# Delete captions
php bin/php/backup-delete.php 2026-06-21_12-00-00 -f
php bin/php/backup-delete.php -a  # delete all

🎯 Key Benefits

Feature Benefit
No SSH Required Full backup management through web interface
Protect Your Site Never lose database or uploaded files
Stay Compliant Easily share sanitized dumps per AGPL/GPL terms
Offsite Security Download encrypted backups via browser
Visual Reminders Never forget to refresh outdated backups
Flexible Workflow Web UI + CLI tools for every use case

πŸ“š Documentation

Complete README rewrite includes:

  • Feature overview and backup type comparison table
  • Web UI step-by-step usage guide
  • CLI tool examples with all flags
  • GPG encryption/decryption commands
  • AGPL sanitization explanation
  • Configuration reference
  • Best practices

πŸ› οΈ Technical Details

New Classes:

  • AGPLDumpSanitizer β€” 12+ sanitization passes for SQL dumps
  • BackupManager β€” Orchestrates all caption operations
  • GPGEncryption β€” Wrapper using proc_open for secure passphrase handling

Infrastructure:

  • Symlink-aware path resolution for hardlinked installations
  • Time-ago calculation with color-coded age brackets
  • Responsive CSS for mobile/tablet (768px/480px breakpoints)
  • Caption file type detection (database/var/site/agpl)
  • Download controller with timestamp/filename validation

Code Stats:

  • 22 files changed
  • 5,855+ insertions
  • 3,500+ lines of new PHP/template code

πŸ“₯ Installation

  1. Extract to extension/git_manager/
  2. Activate in settings/override/site.ini.append.php:
    [ExtensionSettings]
    ActiveExtensions[]=git_manager
  3. Regenerate autoloads:
    php bin/php/ezpgenerateautoloads.php
  4. Clear cache:
    rm -rf var/cache/*

πŸ”§ Requirements

  • eZ Publish 5.4+ / 6.0+ (Community or Platform)
  • PHP 7.4+ / 8.0+ (tested on 8.3)
  • MySQL / MariaDB
  • mysqldump in PATH
  • tar, gzip installed
  • Optional: GnuPG 2.x for encryption
  • Optional: git for version control features

πŸ“ Upgrade Notes

If upgrading from v1.x:

  • Backup your existing extension/git_manager/ directory
  • No database changes required
  • Configuration in settings/git_manager.ini.append.php is backward-compatible
  • Existing git features unchanged

πŸ™ Credits

Developed by 7x for the Exponential community.

Licensed under GPL v2 (same as eZ Publish / Exponential core).