github tis24dev/proxsave v0.6.0

latest releases: v0.11.15, v0.11.14, v0.11.13...
one month ago

πŸš€ v0.6.0 β€” Unified Installation Architecture

This release introduces a complete refactoring of the installation system, consolidating separate installers into a unified, intelligent installer with automatic detection and interactive workflows.
It focuses on code simplification, user experience, and installation reliability.


πŸ”§ Installation System

/install.sh (Completely Refactored)

Added

  • πŸ”„ Complete refactoring into unified installer (replaces separate install.sh and new-install.sh)
  • πŸ€– Interactive installation mode with automatic detection of existing installations
  • πŸ“‹ Menu-driven workflow: [1] Update (preserves data) [2] Reinstall (fresh) [3] Cancel
  • πŸš€ Flag --reinstall to force complete reinstallation bypassing interactive menu
  • πŸ” Flag --verbose for detailed output during installation operations
  • βœ‚οΈ Eliminated ~500 lines of duplicate code through consolidation
  • βœ… Enhanced backup verification with file count comparison before removal
  • πŸ” Verification of .git directory existence after clone to ensure completeness
  • 🎯 Single code path eliminates synchronization issues between separate installers
  • βš™οΈ Conditional behavior based on IS_UPDATE flag for precise control flow
  • ⏱️ Improved timing for dev branch confirmation (after user selects action)
  • 🌿 Branch selection support: add -- dev parameter to install development branch
  • πŸ”— Dynamic GitHub URL generation based on selected branch
  • ⚠️ User confirmation prompt when installing dev branch (with cancel option)
  • πŸ”Ž Remote branch existence verification as first operation (before system checks/dependencies)
  • 🏷️ Branch verification after git clone with mismatch warning
  • πŸ“Ί Branch display in installation banner with dev warning

Fixes

  • πŸ” Branch existence check now uses grep -q "refs/heads/$branch" for reliable validation
  • 🚫 Prevents false positives when checking if remote branch exists
  • πŸ›‘οΈ Consistent error handling and logging across all installation scenarios
  • 🧹 Proper cleanup of temporary artifacts on failure or cancellation
  • πŸ”§ Modified git clone to use -b "$INSTALL_BRANCH" flag
  • πŸ”— Updated all hardcoded /main/ URLs to use ${INSTALL_BRANCH} variable

Behavior

  • 🎯 Default mode: Detects existing installation and presents interactive menu
  • πŸ” With --reinstall: Forces complete reinstallation without interactive prompts (except REMOVE-EVERYTHING)
  • πŸ“Š With --verbose: Shows detailed output from apt, git, and tar operations
  • 🌿 Full branch selection support (main/dev) works in all modes
  • πŸ’Ύ Automatic preservation of user data during updates: env, config, log, backup, lock directories

Deprecation Notice

  • ⚠️ new-install.sh is now deprecated and replaced by install.sh --reinstall
  • πŸ”„ The refactored install.sh now handles both update and reinstall scenarios
  • πŸ“’ Users calling new-install.sh should migrate to install.sh --reinstall

Migration Path for new-install.sh users

  • πŸ”„ Replace new-install.sh calls β†’ install.sh --reinstall
  • 🌿 Branch selection unchanged: -- dev parameter works with all modes
  • ⬆️ Old install.sh behavior (update only) β†’ New install.sh default behavior (auto-detect + interactive menu)
  • πŸ” Old new-install.sh behavior (forced reinstall) β†’ New install.sh --reinstall behavior

βœ… Overall Improvements

  • 🎯 Single, unified installation system eliminating code duplication
  • πŸ€– Intelligent auto-detection of existing installations with interactive workflows
  • 🌿 Full branch selection support (main/dev) across all installation modes
  • πŸ” Enhanced validation and verification at every installation step
  • πŸ“Š Improved user experience with clear menu-driven choices
  • πŸ›‘οΈ Better error handling and recovery mechanisms
  • 🧹 Cleaner codebase with ~500 fewer lines of duplicate code

✨ Result: A streamlined, reliable installation experience with intelligent detection, safer upgrades, and flexible branch supportβ€”all in a single, maintainable codebase.


Compatibility: PVE and PBS
Installation: bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)"
Dev Branch: bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- dev

Don't miss a new proxsave release

NewReleases is sending notifications on new releases.