Commit Graph

129 Commits

Author SHA1 Message Date
courtmanr@gmail.com fc218ea893 fix: resolve Express v5 compatibility issues and improve server startup
- Downgrade Express from ^5.1.0 to ^4.21.2 to resolve path-to-regexp v8 compatibility issues
- Fix "Missing parameter name" server startup error caused by Express v5/path-to-regexp v8 breaking changes
- Move initial discovery cycle to background execution to allow immediate HTTP server startup
- Remove conflicting server/node_modules directory that contained outdated path-to-regexp

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 14:17:11 +01:00
courtmanr@gmail.com 34b66f166a fix: resolve custom threshold configuration errors
- Add validation to prevent API calls with missing nodeId/vmid parameters
- Implement proper guest selector initialization for edit modal
- Add server-side error handlers to return JSON instead of HTML for API routes
- Include debug logging for threshold configuration troubleshooting
- Ensure dropdown selection properly populates all required hidden fields

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 11:48:39 +01:00
courtmanr@gmail.com eba6074fd7 feat: consolidate alert functionality into unified Alert Configuration tab
• Merge separate "Alerts" and "Custom Thresholds" tabs into single "Alert Configuration" tab
• Improve UX by organizing all alert settings in one logical location
• Add comprehensive custom per-VM/LXC threshold management system with migration support
• Include blue "T" badges for VMs with custom thresholds in dashboard
• Implement full CRUD operations for threshold configurations via REST API
• Support migration-aware threshold keys (endpointId:vmid) for cluster environments

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 11:32:16 +01:00
courtmanr@gmail.com 4b8fdf2156 fix: implement persistent Docker volume configuration to prevent data loss
Previously, configuration created via the web UI was lost when containers were
recreated or updated, requiring users to reconfigure each time. This was due to
the .env file being stored inside the container filesystem.

Changes:
- Add persistent volume mount for configuration directory in docker-compose.yml
- Update ConfigApi to auto-detect Docker vs development environment
- Configure dotenv loading to use persistent config path when available
- Update file watcher to monitor correct .env file location
- Remove conflicting host .env file mount
- Update README with new volume configuration instructions

Configuration now persists across container updates, eliminating the need for
users to reconfigure after updates.

Fixes #94

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 10:30:51 +01:00
courtmanr@gmail.com 6194287195 fix: preserve existing credentials when adding additional PVE/PBS endpoints
Previously, adding additional PVE credentials would remove all existing PBS
credentials from the .env file, and vice versa. This was caused by the credential
removal logic not checking if the new configuration actually contained endpoints
of the same type before removing existing ones.

The fix ensures that:
- PBS credentials are preserved when adding additional PVE endpoints
- PVE credentials are preserved when adding additional PBS endpoints
- Existing endpoints are only removed when explicitly managing that endpoint type

Fixes #91

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-31 10:01:15 +01:00
courtmanr@gmail.com 7216d7e977 fix: resolve PVE backup visibility issue with hybrid node discovery and filtering fixes
Implements comprehensive solution for GitHub issue #80 where PVE backups stored on local node storage weren't appearing in the backup tab. Adds intelligent node discovery system that creates direct connections to access node-local storage while maintaining backward compatibility with shared storage setups.

Key improvements:
- Hybrid discovery approach with automatic node IP detection and connection caching
- Fixed data structure mismatches and key collision issues for duplicate VMIDs across nodes
- Corrected PVE backup filtering logic in summary cards and calendar views
- Enhanced API token permission documentation for storage content access
- Optimized connection handling with reduced timeouts for faster discovery cycles

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 23:43:56 +01:00
courtmanr@gmail.com ea14f179a7 fix: make update system Docker-aware and prevent container modifications
- Added Docker environment detection to prevent in-place updates
- Show Docker-specific update instructions in UI instead of update button
- Provide proper docker pull commands for Docker users
- Updated README with web-based update documentation
- Ensure Docker container immutability is maintained
2025-05-30 16:35:24 +01:00
courtmanr@gmail.com 81320b17fa feat: add web-based update management system
- Created UpdateManager class for handling application updates
- Added update check, download, and apply functionality
- Integrated update UI into settings modal with progress tracking
- Added version display and update notifications
- Implemented proper backup and rollback mechanism
- Added Docker-aware restart logic
- Enhanced configuration API to include version information
- Added real-time progress updates via WebSocket
2025-05-30 16:31:14 +01:00
courtmanr@gmail.com cfc3b2110d fix: ensure settings modal displays all configured PVE/PBS endpoints
- Modified getConfig() to include all additional endpoints from .env file
- Enhanced configuration save to properly clean up removed endpoints
- Improved .env file organization with grouped additional endpoints
- Updated connection testing to validate all configured endpoints
2025-05-30 16:21:01 +01:00
courtmanr@gmail.com 839bfc2b59 feat: replace setup screen with automatic settings modal for initial configuration
- Remove redirect to setup.html in favor of always serving main application
- Add automatic detection of placeholder configuration values on page load
- Automatically open settings modal when configuration needs setup
- Provide seamless unified interface for both initial setup and ongoing management
- Eliminate need for separate setup.html page while maintaining full functionality

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 15:10:27 +01:00
courtmanr@gmail.com 5854ceada1 clean: remove debug logging from configuration API
- Clean up all debug console.log statements from settings system
- Maintain error logging for troubleshooting production issues
- Keep essential reload functionality for additional endpoints
- Finalize comprehensive settings system implementation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 15:04:01 +01:00
courtmanr@gmail.com 49762959a7 debug: add comprehensive logging for configuration reload process
- Add detailed logging for endpoint loading and API client initialization
- Clear environment variables more aggressively during reload
- Add manual verification of additional endpoints in environment
- Help diagnose why additional nodes might require server restart

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 14:39:07 +01:00
courtmanr@gmail.com 19c3d0b2c0 fix: improve test connections to use existing token secrets
- Allow testing with existing saved token secrets when not provided in form
- Improve error messages to indicate what fields are missing
- Fall back to existing .env file for token secrets during testing
- Handle both new secrets and existing configuration testing scenarios

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 14:11:23 +01:00
courtmanr@gmail.com e09e4da48e fix: resolve test connections error in settings modal
- Update testConfig function to handle both structured and raw .env formats
- Add proper format detection for configuration testing
- Include validation for required fields before attempting connection
- Add comprehensive logging for debugging test failures
- Ensure test works with new settings form data structure

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 14:08:15 +01:00
courtmanr@gmail.com d26f4b642f feat: redesign settings as comprehensive modal-based configuration system
- Replace settings tab with settings icon in top-right header
- Implement comprehensive modal interface for ALL .env variables
- Add support for multiple PVE and PBS endpoints with dynamic forms
- Include all service settings (intervals) and alert configuration
- Support both old structured format (setup) and new raw .env format
- Add connection testing and form validation
- Enable complete web-based configuration without SSH access

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-30 13:49:53 +01:00
courtmanr@gmail.com c2620d8d45 feat: add Settings tab for configuration management
- Add Settings tab to main interface with configuration form
- Create settings.js module for handling configuration updates
- Allow editing Proxmox credentials without SSH access
- Support partial updates (keep existing token secret if not provided)
- Integrate settings module into tab system and initialization
- Update server configApi to handle partial configuration updates

Users can now edit their configuration through the web interface after initial setup.
2025-05-30 12:04:33 +01:00
courtmanr@gmail.com 72547e3179 fix: improve configuration readiness detection in setup flow
- Add system info to health endpoint including configPlaceholder status
- Update setup page to check correct health properties
- Include hasData and clientsInitialized flags for better readiness detection

This ensures the 'Continue to Pulse' button appears when the server is actually ready with data, not just when it times out.
2025-05-30 11:49:11 +01:00
courtmanr@gmail.com f7e5228d1f fix: ensure API clients are properly reloaded after configuration save
- Make runDiscoveryCycle globally accessible for config reload
- Use global API clients in discovery and metrics cycles
- Trigger discovery cycle after configuration reload
- Fix issue where metrics cycle couldn't find reloaded API clients

This ensures the server properly initializes and starts collecting data after saving configuration through the web interface.
2025-05-30 11:45:08 +01:00
courtmanr@gmail.com bf27ef2a6b feat: improve setup flow with health check and Continue button
- Add health endpoint polling after configuration save
- Show progress messages and loading spinner during initialization
- Display 'Continue to Pulse' button when server is ready
- Add explicit /setup.html route handler
- Improve error handling and logging in configApi
- Prevent form submission on button clicks
- Add percentage progress indicator during setup

This provides better user feedback during the configuration process and ensures users don't navigate to the dashboard before the server is ready.
2025-05-30 11:35:40 +01:00
courtmanr@gmail.com bbb500f0a8 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 bd94648987 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 97ae118b2c 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 a8896ac3c0 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 8fe4c0a80d 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 c87a87c4c5 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 1e5451ee67 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 328e67bc61 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 6de974ebff 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 90d6245e1c 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 68ce7ca35f 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 b1f2d4ebd7 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 7a0e8475fe feat: add PVE backup and snapshot support
- 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>
2025-05-28 09:01:24 +01:00
courtmanr@gmail.com eb51f6aedb fix: correct health endpoint method call to getEnhancedAlertStats 2025-05-28 00:39:02 +01:00
courtmanr@gmail.com 2ec653c384 feat: add remaining updates from development
- Update alert manager functionality
- Update HTML structure and components
- Enhance main.js initialization
- Improve socket handler communication
- Update nodes UI component

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 00:20:31 +01:00
courtmanr@gmail.com 07c31c167b Update UI components and JavaScript files for improved functionality 2025-05-27 19:52:49 +01:00
courtmanr@gmail.com 00991164b5 feat: update diagnostics functionality and UI 2025-05-27 13:09:29 +01:00
courtmanr@gmail.com 3cdb4225a5 feat: Add basic diagnostics functionality and integrate with server 2025-05-27 12:45:52 +01:00
courtmanr@gmail.com a701f03bfa Update server index.js and public index.html 2025-05-27 12:40:18 +01:00
courtmanr@gmail.com dba1eb7c90 fix: Resolve test failures and integrate recent UI/backend updates 2025-05-26 22:08:12 +01:00
courtmanr@gmail.com c9315951c7 Update data fetching, metrics, and UI components 2025-05-26 18:25:59 +01:00
courtmanr@gmail.com 7e7b4d07e7 test: improve test coverage for configLoader.js edge cases
- Add tests for placeholder detection with PROXMOX_TOKEN_ID edge cases
- Test scenarios where TOKEN_ID needs to be added to placeholder list
- Improve overall test coverage to ~90%

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-26 17:43:11 +01:00
courtmanr@gmail.com 72f13164de refactor: improve PBS integration with enhanced error handling, updated tests, and refined UI components
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-26 17:23:48 +01:00
courtmanr@gmail.com 58eb534a43 chore: clean up logs and disable alert popups for release readiness 2025-05-25 09:52:45 +01:00
courtmanr@gmail.com aaa8b9c86b Feat: Add new modules for server-side alerting, metrics history, and frontend chart/alert handling 2025-05-24 22:02:25 +01:00
courtmanr@gmail.com 18a62d9042 Feat: Implement enhanced server monitoring, alerting, and performance tracking 2025-05-24 22:01:28 +01:00
courtmanr@gmail.com 32aafb596a fix: ensure all test adjustments are committed 2025-05-16 23:17:36 +01:00
courtmanr@gmail.com cd9e2950fa fix: Revert PBS task fetch window to 7 days 2025-05-16 23:01:06 +01:00
courtmanr@gmail.com 8210e912d1 feat: Increase PBS task fetch window to 14 days 2025-05-16 22:26:49 +01:00
courtmanr@gmail.com c14ec0fac3 refactor(server): Improve error handling in dataFetcher and update tests 2025-05-10 16:04:45 +01:00
courtmanr@gmail.com d181af598b Refactor: Update API client logic 2025-05-08 16:52:39 +01:00