Commit Graph

928 Commits

Author SHA1 Message Date
courtmanr@gmail.com fcb075cbe5 fix: restore complete configApi.js with all features
- Restore advanced settings handling in getConfig and saveConfig
- Include self-signed certificate settings
- Add PBS node name support
- Fix alert configuration saving
- Restore global lastReloadTime update to prevent double reloads
- This fixes the .env file creation and configuration saving

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 11:06:35 +01:00
courtmanr@gmail.com 2eae7400bf fix: correct test connection success message
- Make success message text dynamic instead of hardcoded
- Test connection now shows "Connection test successful\!"
- Save configuration still shows "Configuration saved. Redirecting..."
- Prevents confusion when testing connection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 11:01:16 +01:00
courtmanr@gmail.com 3e12a572ba fix: resolve configuration save and redirect issues
- Use current state for configuration status check in root route
- Prevent double reload when saving config through API
- Track reload times globally to avoid file watcher conflicts
- This fixes the issue where setup page doesn't redirect after save

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:57:57 +01:00
courtmanr@gmail.com ae665fc0a4 feat: add comprehensive configuration options to setup page
- Add advanced settings section with all .env.example options
- Include metric/discovery intervals configuration
- Add alert system configuration (enabled/thresholds)
- Add PBS node name field (required for non-Sys.Audit tokens)
- Update config API to handle all settings
- Group settings logically in generated .env file
- Load and save all configuration options properly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:53:51 +01:00
courtmanr@gmail.com 85a1f2ccbe fix: handle self-signed SSL certificates in configuration
- Add allowSelfSignedCerts flag to test configuration endpoints
- Automatically set ALLOW_SELF_SIGNED_CERT=true when saving config
- Include self-signed cert settings in environment variable groups
- This fixes SSL certificate verification errors with Proxmox servers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:48:57 +01:00
courtmanr@gmail.com 49eb3628e5 fix: correct API client initialization for test connection
- Fix apiClients object access (use bracket notation, not .get())
- Initialize apiClients as plain objects, not Maps, for consistency
- This fixes the "apiClients.get is not a function" error when testing connections

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:45:52 +01:00
courtmanr@gmail.com 8a4ef723db fix: allow server to start without configuration
- Change configuration loader to warn instead of throwing error when config is missing
- Allow server to start in setup mode with empty endpoints
- Skip API client initialization when no endpoints are configured
- This enables the web-based setup flow to work properly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:40:52 +01:00
courtmanr@gmail.com d3a82d14df feat: add web-based configuration interface
- Create configuration setup page at /setup.html for entering Proxmox credentials
- Add configuration API endpoints for save, test, and reload operations
- Implement automatic .env file watching with hot reload on changes
- Add configuration warning banner when placeholder config detected
- Auto-redirect to setup page when configuration is missing
- Add WebSocket notifications for configuration reload events
- Update empty states with configuration required message
- No SSH or manual restarts needed - everything through web UI

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 10:35:25 +01:00
courtmanr@gmail.com e49da4612c feat: improve screenshot timing and update documentation images
- Add 2-second wait time to backup view screenshots for better data loading
- Update all screenshot images with latest UI state
- Remove obsolete backup script file
- Ensure backup data is fully rendered before capturing screenshots

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 00:31:20 +01:00
courtmanr@gmail.com b2cae82f7a docs: improve and consolidate update instructions in README
- Add dedicated "Updating Pulse" section with clear table of contents entry
- Consolidate scattered update information into one comprehensive section
- Provide specific instructions for each installation method:
  * Community Scripts: simple re-run command
  * Docker Compose: pull and restart workflow
  * Manual LXC: script re-run with service management
  * Release Tarball: step-by-step update process
  * Development/Source: corrected npm workflow
- Remove duplicate update instructions from Manual LXC section
- Fix development workflow to reflect actual package.json scripts
- Verify all instructions against source code for accuracy

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 00:26:54 +01:00
courtmanr@gmail.com cec6f9975b feat: add clickable host names in dashboard and PBS views
- Add endpoint configuration sharing between server and client
- Make Proxmox node group headers clickable using API-based mapping
- Make PBS instance names clickable in both desktop and mobile views
- Links open correct cluster endpoints based on node's actual endpointId
- Subtle hover styling without blue underlines for cleaner UI
- All links open in new tabs with security attributes

Resolves issue with users wanting direct access to host web interfaces.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 00:16:08 +01:00
courtmanr@gmail.com 395c7c4669 fix: use GNU tar to eliminate macOS extended attributes completely
- Auto-detect and prefer GNU tar (gtar) when available
- Fallback to BSD tar with COPYFILE_DISABLE=1 if GNU tar not available
- Verified: GNU tar produces clean tarballs with zero warnings
- Final solution for macOS extended attribute issues
v3.12.3
2025-05-29 23:39:51 +01:00
courtmanr@gmail.com 7828346de0 fix: completely eliminate macOS extended attributes from tarballs
- Strip extended attributes from source files before copying
- Add final cleanup step to remove attributes from staging directory
- Verified: tar extraction produces zero warnings
- Version 3.12.5 - the definitive fix
2025-05-29 23:35:36 +01:00
courtmanr@gmail.com 18c2579bc2 fix: add COPYFILE_DISABLE=1 to all cp commands in release script
- Prevents macOS extended attributes from being included in tarball
- Fixes tar extraction warnings for all copied files
- Version bump to 3.12.4 for testing
2025-05-29 23:31:54 +01:00
courtmanr@gmail.com c5c9408ceb fix: use full GitHub URL when validating version tags during fresh install
- Fixes 'origin does not appear to be a git repository' error
- Allows --version flag to work properly during fresh installations
2025-05-29 23:30:27 +01:00
courtmanr@gmail.com c770c07671 chore: release v3.12.3
- Test tarball creation script to prevent macOS extended attribute warnings
- Minor improvements to data fetcher
2025-05-29 23:22:42 +01:00
courtmanr@gmail.com d5aa59ac93 fix: prevent macOS extended attributes in tarball creation
Add COPYFILE_DISABLE=1 to all rsync operations in create-release.sh to prevent
macOS extended attributes from being included in tarballs. This eliminates the
'Ignoring unknown extended header keyword' warnings during extraction on Linux systems.
2025-05-29 22:58:54 +01:00
courtmanr@gmail.com f8d7410976 chore: begin development for next release 2025-05-29 22:57:02 +01:00
courtmanr@gmail.com 41bcd72c7d chore: release v3.12.2 v3.12.2 2025-05-29 22:52:51 +01:00
courtmanr@gmail.com 5bd8b47b1a refactor: remove interactive configuration prompts from install script
Simplifies installation by removing all interactive Proxmox configuration prompts.
The script now simply copies .env.example to .env and instructs users to edit it manually.

This approach:
- Eliminates complex interactive prompting logic
- Gives users full control over configuration
- Reduces installation complexity
- Avoids potential input validation issues

Users now need to manually edit /opt/pulse-proxmox/.env after installation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:30:31 +01:00
courtmanr@gmail.com 778fd908fe refactor: remove branch selection functionality from install script
Simplifies install-pulse.sh by removing all branch installation capabilities to reduce script complexity and maintainability burden.

Removed:
- --branch command line argument
- prompt_for_branch_selection() function
- Branch validation and handling logic
- "Test a feature branch" menu options
- Branch-specific installation and update paths
- Branch status reporting

The script now only supports stable version tag installations, making it more focused and easier to maintain.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:26:25 +01:00
courtmanr@gmail.com 666e4107c1 fix: correct tarball filename in download URLs
The script was looking for pulse-3.12.1.tar.gz but the actual release
asset is named pulse-v3.12.1.tar.gz (with 'v' prefix). This caused
404 "Not Found" errors during tarball downloads.

Fixed all download URLs to use the correct filename format that matches
the actual release asset names created by the release script.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:02:45 +01:00
courtmanr@gmail.com af627c5d76 fix: add comprehensive download debugging for tarball issues 2025-05-29 22:00:43 +01:00
courtmanr@gmail.com ac4ad50360 chore: release v3.12.1 v3.12.1 2025-05-29 21:59:02 +01:00
courtmanr@gmail.com 357b8e79cf fix: add tarball download verification and debugging
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>
2025-05-29 21:57:44 +01:00
courtmanr@gmail.com 7277e43992 fix: apply CSS recovery mechanism to fresh installations
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>
2025-05-29 21:55:39 +01:00
courtmanr@gmail.com 25ea0cc258 fix: add CSS file recovery mechanism for failed tarball extractions
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>
2025-05-29 21:53:44 +01:00
courtmanr@gmail.com c4afde5345 fix: use release assets instead of GitHub archive for tarball downloads
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>
2025-05-29 21:50:43 +01:00
courtmanr@gmail.com 16000a81a6 fix: detect and auto-repair corrupted CSS files during tarball installations
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>
2025-05-29 21:48:41 +01:00
courtmanr@gmail.com 7595fb48bd fix: correct CSS file path checks in release script
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.
2025-05-29 21:37:15 +01:00
courtmanr@gmail.com a2d7c91150 fix: prevent CSS rebuild failures in tarball installations
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.
2025-05-29 21:33:37 +01:00
courtmanr@gmail.com e48facaf00 fix: ensure .env.example file is copied during tarball installation
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.
2025-05-29 21:28:08 +01:00
courtmanr@gmail.com 14d42113e3 docs: add missing user permissions step for PBS API token setup
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>
2025-05-29 21:09:41 +01:00
courtmanr@gmail.com b5edb664e4 fix: prevent macOS extended attributes in release tarballs
- 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
2025-05-29 20:53:29 +01:00
courtmanr@gmail.com 5b7b8bc787 chore: begin development for next release 2025-05-29 16:34:10 +01:00
courtmanr@gmail.com c2d2abbcd9 chore: release v3.12.0 v3.12.0 2025-05-29 16:30:07 +01:00
courtmanr@gmail.com 8b1051a999 feat: enhance backup management with interactive calendar and improved failure tracking
- 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>
2025-05-29 16:23:49 +01:00
courtmanr@gmail.com 0d5825d57f fix: support tarball installations in installer script
- 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>
2025-05-29 09:38:01 +01:00
courtmanr@gmail.com 304dbc952c fix: comprehensive installer resilience improvements
- 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>
2025-05-29 09:34:55 +01:00
courtmanr@gmail.com 593e0b0d03 fix: preserve .env file during automatic updates
- 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>
2025-05-29 09:29:53 +01:00
courtmanr@gmail.com 649c034182 feat: enhance data fetching and update documentation
- 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>
2025-05-29 00:06:04 +01:00
courtmanr@gmail.com 1283a91250 feat: add backup calendar heatmap and enhanced backup visualization
- 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>
2025-05-29 00:06:03 +01:00
courtmanr@gmail.com cd34a2bb2c feat: add tarball support to installation and release scripts
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>
2025-05-29 00:05:37 +01:00
courtmanr@gmail.com cba1f787b4 fix: prevent install script from prompting for input in non-interactive mode
- 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>
2025-05-28 23:28:38 +01:00
courtmanr@gmail.com f48fb579b7 fix: correct stderr redirection in print_error function
- 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>
2025-05-28 17:12:37 +01:00
courtmanr@gmail.com e2c601f90d fix: handle grep exit codes in install script to prevent installation failures
- 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>
2025-05-28 14:55:20 +01:00
courtmanr@gmail.com d735eb0a6b Clarify 7-day history column with detailed tooltips and legend
- 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
2025-05-28 14:00:52 +01:00
courtmanr@gmail.com 1fe463db2b Enhance backup presentation with separate columns for each backup type
- 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
2025-05-28 13:52:20 +01:00
courtmanr@gmail.com dc6813d553 Fix multiple PBS instances display issue after merge
- 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
2025-05-28 13:37:28 +01:00
courtmanr@gmail.com eac750af24 Merge feature/pve-backups-support into main
- Adds PVE backup and snapshot support
- Adds snapshot modal for viewing VM/CT snapshots
- Integrates PVE backup tasks with PBS backup data
- Adds storage backup content fetching
2025-05-28 13:35:47 +01:00