Added verification to ensure downloaded tarball files are valid gzip
archives before attempting extraction. This will help diagnose issues
where downloads return HTML error pages or corrupt data instead of
the expected tarball.
The script now provides detailed error information including file type
and hex dump of downloaded content when verification fails.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Extended the CSS file recovery logic to fresh tarball installations,
not just updates. The script now attempts to recover missing or
corrupted CSS files during initial installations instead of failing
and falling back to git clone.
This ensures consistent CSS recovery behavior for both new installations
and updates, preventing installation failures due to tarball extraction
issues.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced the CSS verification to actively recover the CSS file if it's
missing, empty, or corrupted after tarball extraction. The script now
attempts direct extraction of just the CSS file from the release tarball
as a fallback mechanism.
This ensures that even if the main tarball extraction has issues, users
will still get a working CSS file and proper frontend styling.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The install script was downloading from GitHub's source archive
(/archive/refs/tags/) which doesn't include built CSS assets, instead
of the release assets (/releases/download/) which do include the
pre-built output.css file.
This fixes the "CSS file missing or empty" error during tarball
installations by ensuring the script downloads the proper release
tarball that contains all built assets.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhance install script to automatically detect corrupted output.css files
that contain HTML error pages instead of CSS content (caused by previous
installation issues). When detected during tarball updates, the script
now automatically restores the CSS from the fresh tarball and verifies
the repair was successful.
This allows users with broken CSS installations to simply re-run the
installer to automatically fix frontend styling issues without manual
intervention.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The release script was checking for src/index.css but the build command
outputs to src/public/output.css. Update both the build verification
and essential files check to use the correct path.
This ensures the built CSS file is properly included and verified in
release tarballs.
Tarball installations come with pre-built CSS and omit dev dependencies
like tailwindcss. Skip CSS rebuilding for tarball installations since
the CSS should already be compiled and ready to use.
This fixes the 'Failed to rebuild CSS assets' warning that was causing
frontend styling issues in tarball installations.
The shell glob '*' doesn't include hidden files by default, which was
causing .env.example to be skipped during tarball extraction. Enable
dotglob to include hidden files in the copy operation.
Fixes installation failures where configure_environment couldn't find
.env.example after tarball installation.
The PBS documentation was missing the step to add user permissions,
only mentioning token permissions. This matches the PVE documentation
which correctly shows both user AND token permissions are needed.
Fixes#89🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add COPYFILE_DISABLE=1 when creating tarballs to prevent macOS extended attributes
- This fixes 'Ignoring unknown extended header keyword' warnings when extracting on Linux
- No changes needed in community scripts - fixes the root cause at source
- Add comprehensive PBS task failure detection and processing
- Implement interactive backup calendar heatmap with detail cards
- Enhance backup filtering with guest type and health status options
- Improve keyboard navigation and search functionality across tabs
- Add backup detail card component for granular backup information
- Update test coverage for enhanced backup data fetching
- Clean up debug logging and improve console output clarity
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add detection for tarball vs git installations via package.json validation
- Handle version checking for tarball installations using remote API
- Provide proper update paths for both installation types
- Fix "invalid git repository" error for tarball installations
- Ensure both installation types can be updated seamlessly
This resolves issues where tarball installations were incorrectly flagged
as invalid and prevented from updating.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace destructive git clean with selective conflict handling
- Add comprehensive backup/restore system for user data (.env, custom configs, data dirs)
- Implement emergency recovery procedures with clear user guidance
- Preserve user configuration across both tarball and git update methods
- Add safety checks before destructive operations
- Provide detailed error messages and recovery instructions
This addresses critical reliability issues that were causing configuration loss
during automatic updates, significantly improving user experience and trust.
Key improvements:
- Backup: .env, custom-config.json, user-settings.json, data/, logs/, backups/, custom/
- Smart conflict resolution instead of destructive git clean
- Multi-layered backup system (user data + full installation backup)
- Automatic restoration with proper permissions
- Emergency recovery with clear manual instructions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Backup .env file before git clean to prevent configuration loss
- Restore .env file after git operations with proper ownership
- Ensures user configuration survives cron-based updates
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Improve server data fetching capabilities
- Update README with latest features and instructions
- Enhance data processing for backup visualization
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive backup calendar heatmap with monthly view
- Implement interactive calendar filtering linked to backup table
- Add backup summary cards for quick overview statistics
- Enhance backup table with click-to-filter calendar functionality
- Improve PBS and backup data visualization
- Add responsive design for mobile and desktop views
- Include backup type indicators and failure detection
- Persistent filter state across API updates
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Installation Script Improvements:
- Add tarball download and extraction functions
- Prefer tarballs over git clone for version tag installations
- Maintain git clone fallback for reliability and branch installations
- Add intelligent CSS/dependency detection to skip builds when present
- Fix non-interactive mode to handle fresh installations
Release Script Improvements:
- Include pre-built CSS and build configuration files
- Add production npm dependencies to tarballs
- Add verification for essential files in releases
- Update instructions to promote automated installation
- Ensure compatibility with tarball installation approach
Benefits:
- Faster installations (no npm install/CSS build required)
- More reliable in constrained network environments
- Backward compatible with existing workflows
- Maintains full functionality for development branches
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add MODE_UPDATE checks to skip all user prompts when --update flag is used
- Prevents "Invalid choice" errors in automated/cron environments
- Script now proceeds with default actions in non-interactive mode
- Fixes installation failures when no user input is available
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move >&2 redirection outside of echo command to properly redirect to stderr
- Fixes display of literal ">&2" text in error messages
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add proper error handling for grep commands that may return no matches
- Fix branch detection pipelines with || true pattern
- Add 2>/dev/null to suppress error messages for branch existence checks
- Fix systemctl service detection grep command
- Resolves installation error "[ERROR] in line 37: exit code 0" reported in issue #84🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add descriptive tooltip to 7-Day History column header
- Enhance individual dot tooltips to show specific backup activity
- Show backup type (PBS/PVE), location, and success/failure details
- Add visual legend below table showing color meanings
- Include date and activity details in each day's tooltip
- Clear distinction between PBS, PVE, and snapshot activity
- Improved user understanding of backup activity timeline
- Replace generic Source/Location columns with specific backup type columns
- Add PBS Backups column with purple indicator and detailed tooltips
- Add PVE Backups column with orange indicator and storage info
- Enhanced Snapshots column with blue indicator and clickable counts
- Clear visual distinction between backup storage locations
- Detailed tooltips show PBS instances, datastores, and storage names
- Improved user experience for mixed backup environments
- Enhanced backup source detection to handle both PBS and PVE backups
- Added support for mixed backup sources (PBS + PVE)
- Improved tooltip information for multiple PBS instances
- Preserves snapshot functionality from the feature branch
- Add node storage summary cards with condensed progress bars
- Show all storage per node with usage percentages and status indicators
- Add click-to-sort functionality for usage column
- Simplify content display (remove badges, use plain text)
- Add visual warnings for high usage storage (red/yellow indicators)
- Fix layout consistency with main tab (remove double containers)
- Improve spacing and visual hierarchy
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add storage tab screenshot to complete UI coverage
- Make all desktop screenshots consistent viewport size (1440x900px)
- Update all mobile screenshots to new numbering (06-08)
- Combine desktop and mobile screenshots into single unified section
- Create perfect 2x2 grid layout for desktop views
- Ensure all screenshots use viewport capture for consistency
- Change desktop screenshots from vertical list to 2x2 grid table format
- Set screenshot width to 400px for better readability
- Add clear labels above each desktop screenshot
- Maintain dashboard as hero image while organizing other views
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove fullPage and screenshotTarget from mobile sections
- All mobile screenshots now use viewport capture (430x932px)
- Ensures consistent alignment in README table layout
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change mobile screenshots from vertical stack to side-by-side table format
- Constrain screenshot width to 250px for better readability
- Add clear labels above each mobile screenshot type
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add mobile viewport support to screenshot script with iPhone 14 Pro Max dimensions
- Generate mobile screenshots for dashboard, PBS view, and backups view
- Fix chart toggle selector bug (label:has() instead of missing for attribute)
- Reduce screenshot wait times for faster generation
- Update README with new mobile screenshots section
- Refresh all existing desktop screenshots
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add prompt_for_branch_selection() function to list available feature branches
- Add 'Test a feature branch' option to all menus (uptodate, update, fresh install)
- Users can now browse and select branches interactively instead of needing --branch flag
- Filters for feature/, hotfix/, and dev/ branches only
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reorder the version check logic to prioritize branch/version specifications
over the up-to-date check. This ensures that --branch flag properly triggers
update mode instead of getting stuck in uptodate mode.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
When using --branch with an up-to-date installation, the script was falling
into update mode but showing generic 'Update to latest version' instead of
the branch-specific menu.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add specific menu case for branch installations
- Show 'Install branch X (for testing)' instead of confusing 'Update to latest version'
- Makes it clear that option 1 will install the specified branch
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add --branch parameter to allow installing from any branch
- Users can now test features with: curl ... | sudo bash -s -- --branch feature-name
- Validates branch exists before checkout
- Shows clear warnings that branches are for testing only
- Updates version display to show branch/commit info
- Prevents using both --version and --branch together
This makes it easy for users to test features before release
- Add --branch parameter to allow installing from any branch
- Users can now test features with: curl ... | sudo bash -s -- --branch feature-name
- Validates branch exists before checkout
- Shows clear warnings that branches are for testing only
- Updates version display to show branch/commit info
- Prevents using both --version and --branch together
This makes it easy for users to test features before release
- Add support for local PVE backups (vzdump tasks)
- Add support for backup files on PVE storage (including NFS)
- Add VM/CT snapshot display with modal view
- Update backup tab to show both PBS and PVE backups
- Change columns to Source/Location for clarity
- Update diagnostics to handle PVE-only setups
Fixes#81 - PBS token permission warnings for PVE-only users
Fixes#80 - Support for backups on NFS and other PVE storage
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove different color styling for stopped guests in dashboard
- Fix hover highlighting on sticky name columns across all tables
- Standardize hover colors to bg-gray-50/bg-gray-700 for consistency
- Update backups, storage, and PBS tables to match dashboard styling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>