Commit Graph

243 Commits

Author SHA1 Message Date
Pulse Monitor dce8332c9b fix: remove 'New' label from auto-configuration message 2025-08-08 21:57:37 +00:00
Pulse Monitor be973764fa fix: specify PVE backup files in permission descriptions 2025-08-08 21:53:46 +00:00
Pulse Monitor 8dd13186ae fix: clarify backup permissions are for reading only
- Update checkbox label to 'Enable storage permissions for backup visibility'
- Clarify that PVEDatastoreAdmin is needed to READ backup files (Proxmox API limitation)
- Remove misleading text about managing/creating/deleting backups
- Make it clear Pulse only reads backup data, doesn't control backups
2025-08-08 21:52:03 +00:00
Pulse Monitor bb0920efa6 feat: add optional backup management permissions checkbox
- Add checkbox to control whether backup write permissions are granted
- When checked: adds PVEDatastoreAdmin role on /storage (allows backup management)
- When unchecked: only PVEAuditor role (read-only, no PVE backups in Storage tab)
- Update setup script generation to conditionally add storage permissions
- Update UI to clearly explain the implications of each choice
2025-08-08 21:50:05 +00:00
Pulse Monitor 09ff756c28 feat: update setup instructions for auto-registration
- Update PVE quick setup to mention automatic Pulse configuration
- Update PBS quick setup to mention automatic Pulse configuration
- Replace 'Save the token immediately' warning with 'No manual token copying needed'
- Add sparkle emoji to highlight the new auto-registration feature
2025-08-08 21:43:45 +00:00
Pulse Monitor e2765dc2fb feat: remove Discover button and show discovered nodes inline
- Remove DiscoveryModal component and Discover button
- Show discovered nodes directly in PVE/PBS tabs (greyed out)
- Discovered nodes are clickable to configure
- Intelligently filter out nodes that are part of configured clusters
- Prevent duplicate entries for cluster members in discovery results
- Maintain glassmorphic styling throughout
2025-08-08 21:41:20 +00:00
Pulse Monitor d6e93e2e2b feat: major improvements to cluster detection, auto-registration, and UI
Frontend:
- Enhanced cluster vs standalone node visual distinction in Settings
- Added glassmorphic style to all toast notifications for consistency
- Fixed test connection in edit modal to use stored encrypted credentials
- Added batch credential modal for bulk node operations
- Added network discovery modal with auto-subnet detection
- Improved notification system with dual toast/notification support
- Added event bus for component communication

Backend:
- Fixed duplicate toast notifications during auto-registration
- Fixed PBS auto-registration token extraction from JSON output
- Added network discovery service with background scanning
- Improved cluster detection with actual cluster name from API
- Added helper function to reduce code duplication in cluster detection
- Fixed host URL normalization in auto-registration
- Enhanced PBS client token authentication parsing

Bug Fixes:
- Fixed stacking toast notifications creating visual bugs
- Fixed PBS authentication failures after auto-registration
- Fixed network discovery not finding Proxmox servers
- Fixed test connection for existing nodes with encrypted tokens
- Removed duplicate WebSocket broadcasts for auto-registration events
2025-08-08 21:25:28 +00:00
Pulse Monitor f274519892 Fix PBS authentication and auto-configuration
- PBS host now automatically gets https:// prefix and :8007 port if missing
- Fixed auto-naming to work after host normalization
- Token auth now correctly displays 'Token:' instead of 'User:'
- Edit mode now correctly identifies token vs password auth
- Backend properly clears unused auth fields when switching types

Fixes #263, #261
2025-08-08 16:27:56 +00:00
Pulse Monitor d63b735c7a Fix PBS token authentication display issue
- Fixed NodeModal to correctly detect token auth based on tokenName instead of user field
- Backend now properly clears user field when using token authentication
- Backend now properly clears token fields when using password authentication
- This fixes the issue where PBS nodes using token auth would show "User:" instead of "Token:"

Fixes #263, #261
2025-08-08 15:46:52 +00:00
Pulse Monitor 1aadd9dc0a Remove PBS summary card and fix backup chart timezone
- Removed PBS summary card from Dashboard and Backups tabs (not needed)
- Fixed backup frequency chart to use local timezone instead of UTC
- Chart now properly includes today in the date range
- Dates display according to user's browser timezone
2025-08-08 15:30:28 +00:00
Pulse Monitor 93ea43a7c7 Add Updates UI to Settings page
- Add System tab with Performance, Network, and Updates sections
- Implement Check for Updates and Apply Update functionality
- Add support for PULSE_UPDATE_SERVER environment variable for testing
- Fix Settings tab navigation issues
- Version bump to v4.1.0-rc.1
2025-08-07 18:17:13 +00:00
Pulse Monitor 594ed0b626 fix: show update button when update is available
The Apply Update button was not showing when an update was available because it only checked for 'idle' status but the API returns 'available' status when an update is ready.
2025-08-07 16:12:44 +00:00
Pulse Monitor e77b4ed8f4 fix: resolve frontend redirect loop issue in releases
The issue was that the binary was looking for frontend files relative to the current working directory instead of relative to the binary location. This caused a redirect loop when the binary was installed in /opt/pulse but run from elsewhere.

Fixed by:
- Making the binary detect its own location and look for frontend files there
- Adding fallback paths for common installation locations
- Logging where frontend files are being served from for debugging
2025-08-07 15:59:47 +00:00
Pulse Monitor 7139bf3359 chore: bump version to v4.0.10 2025-08-07 11:55:18 +00:00
Pulse Monitor 0e2a40c5c7 fix: update install script for v4 releases
- Download architecture-specific releases (amd64, arm64, armv7)
- Install binary to /usr/local/bin/pulse (standard location)
- Stop service during updates to prevent file-in-use errors
- Fix systemd service to use correct binary path
- Properly extract and install VERSION file
2025-08-07 11:54:58 +00:00
Pulse Monitor e0d9d8463b chore: bump version to v4.0.10-rc.2 2025-08-07 11:44:05 +00:00
Pulse Monitor f7018debc4 fix: complete update system improvements
- Use background context for update downloads to prevent cancellation
- Detect actual binary location and update correct file
- Support both 'pulse' and 'pulse-backend' service names
- Copy VERSION file to multiple locations for compatibility
- Handle flat tarball structure from GitHub releases
2025-08-07 11:43:40 +00:00
Pulse Monitor 8f962957c1 chore: bump version to v4.0.10-rc.1 for testing 2025-08-07 11:17:09 +00:00
Pulse Monitor 7f74fb05fc chore: remove test files 2025-08-07 11:16:11 +00:00
Pulse Monitor 1c0d131cae fix: update UI channel selection and apply update file extraction
- Frontend now passes currently selected channel when checking for updates
- Backend accepts channel parameter to check specific channel without saving
- Fixed applyUpdateFiles to handle flat tarball structure (not nested in pulse-* directory)
- Fixed extraction logic to properly copy pulse binary, frontend, and VERSION file
- Users no longer need to toggle channels and save to see update button
2025-08-07 11:16:02 +00:00
Pulse Monitor f017bd542a chore: bump version to v4.0.9 2025-08-07 10:01:59 +00:00
Pulse Monitor 5ee4b79c88 fix: resolve critical issues from GitHub
- Fix cpulimit parsing bug (#256): Add float support to FlexInt for LXC containers with cpulimit
- Fix PBS connection error (#260): Improve error handling and port configuration for PBS
- Fix 'no healthy nodes' error (#257): Add better cluster endpoint validation and fallback
- Add better error logging for cluster connection failures
2025-08-07 08:37:47 +00:00
Pulse Monitor 74e0105760 fix: update all dependencies to latest versions
Go:
- Upgraded to Go 1.23.0
- golang.org/x/crypto v0.14.0 → v0.40.0
- golang.org/x/net v0.10.0 → v0.30.0
- golang.org/x/sys v0.25.0 → v0.34.0
- golang.org/x/term v0.13.0 → v0.33.0
- golang.org/x/text v0.13.0 → v0.19.0
- github.com/rs/zerolog v1.33.0 → v1.34.0
- Other minor updates

Frontend:
- Updated npm packages to latest compatible versions

Fixes GitHub security vulnerability alerts
2025-08-06 22:02:35 +00:00
Pulse Monitor 8ffb58daf1 chore: bump version to v4.0.8 2025-08-06 21:57:41 +00:00
Pulse Monitor b34eecea5c chore: clean up repository
- Remove test binaries (pulse-test, test-pulse)
- Remove internal DOCKER_PUSH_INSTRUCTIONS.md
- Remove empty testing-tools folder
- Update .gitignore to exclude test files and internal docs
- Clean up unnecessary files from repo
2025-08-06 21:55:36 +00:00
Pulse Monitor 8c9e9d659a docs: fix hallucinated features and scripts
- Removed non-existent PBS agent install script references
- Removed unverified Unraid Community Applications claim
- Fixed PBS agent documentation to reflect reality
- Kept only verifiable features and commands
2025-08-06 21:52:05 +00:00
Pulse Monitor 4d60eff794 docs: remove hallucinated Discord link 2025-08-06 21:50:50 +00:00
Pulse Monitor 586d09caf1 docs: remove fluff and simplify all documentation
- README reduced from 256 to 188 lines
- FAQ reduced from 133 to 66 lines
- PBS-AGENT simplified to essentials only
- Removed marketing language, obvious advice, redundant sections
- Focused on practical information users actually need
2025-08-06 21:50:09 +00:00
Pulse Monitor efefe4e4e5 docs: generalize documentation guidelines and restore useful encryption details 2025-08-06 21:47:27 +00:00
Pulse Monitor 10843b6735 docs: simplify security documentation to essentials only 2025-08-06 21:44:47 +00:00
Pulse Monitor a32afed1d5 docs: remove unnecessary checklist and placeholder email from security docs 2025-08-06 21:44:19 +00:00
Pulse Monitor 294f132181 docs: comprehensive security documentation for v4 security features 2025-08-06 21:42:49 +00:00
Pulse Monitor 28f9d9db53 feat: add comprehensive security system for API protection
Security Features Added:
- Secure-by-default configuration export/import with ALLOW_UNPROTECTED_EXPORT environment variable
- Rate limiting (5 attempts/minute) to prevent brute force attacks on sensitive endpoints
- Comprehensive audit logging for all export/import attempts with IP tracking
- Frontend Security tab showing API protection status and configuration guidance
- Frontend now shows when export is blocked and disables buttons appropriately
- Strong passphrase requirement (minimum 12 characters) for exports

Technical Implementation:
- New RateLimiter component with automatic cleanup and middleware support
- Security status API endpoint showing protection state
- Enhanced error messaging with specific guidance for homelab vs production use
- Proper authentication flow with API token validation
- Updated documentation reflecting new security model

Breaking Changes:
- Export/import now requires API_TOKEN unless ALLOW_UNPROTECTED_EXPORT=true is set
- Minimum passphrase length increased from none to 12 characters

Additional Improvements:
- Fixed architecture-specific updates for better cross-platform support
- Removed RC label from UI header
- Updated security documentation with clear setup instructions
2025-08-06 21:39:52 +00:00
Pulse Monitor 9bc050371b fix: Docker persistence actually fixed this time
The ConfigHandlers were calling config.SaveConfig() which uses
globalPersistence initialized at startup with potentially wrong path.
Now handlers use their own persistence instance directly which is
initialized with the correct DataPath.

This was causing Docker configurations to still save to /etc/pulse
even though we thought we fixed it in v4.0.6.

Fixes #253 (for real this time)
2025-08-06 17:14:34 +00:00
Pulse Monitor 9c77f6e7db fix: Docker persistence and Windows VM memory reporting
- Fix Docker persistence bug where config was saved to /etc/pulse instead of /data
- Fix Windows VM memory reporting with balloon drivers
- Add GetVMStatus method to get detailed VM info including balloon memory
- Update diagnostics endpoint to use correct config paths

Fixes #253 (Docker persistence)
Fixes #258 (Windows VM memory reporting)
2025-08-06 16:00:22 +00:00
Pulse Monitor 1210d8efdb feat: add diagnostics UI in settings
- Add 'Run Diagnostics' button in Settings → Diagnostics tab
- Shows connection status for all nodes and PBS instances
- Displays auth method, errors, and system info
- Users can now easily troubleshoot connection issues
2025-08-06 15:32:56 +00:00
Pulse Monitor 6609c7a962 feat: add diagnostics endpoint and improve error handling
- Add /api/diagnostics endpoint for detailed troubleshooting info
- Shows connection status, auth methods, errors for each node
- Auto-fix PBS hosts missing https:// prefix instead of crashing
- Skip invalid PBS instances instead of failing to start
- Fixes issue #251 where invalid PBS config crashed the service
2025-08-06 15:24:06 +00:00
Pulse Monitor 8ab544ef81 cleanup: remove temporary helper script
No longer needed now that official community script supports Pulse v4
2025-08-06 12:45:04 +00:00
Pulse Monitor c38329d284 docs: reorder installation methods - community script first
Community script is the easiest option for Proxmox users
2025-08-06 12:43:08 +00:00
Pulse Monitor c3c04c970e docs: update README with Proxmox community script
The official Proxmox helper script now supports Pulse v4
2025-08-06 12:39:42 +00:00
Pulse Monitor ad625a9237 chore: bump version to v4.0.5
- Fix version detection for community script installs
- Fix orange uptime highlighting for recent boots
- Fix cpulimit JSON parsing issue
- Improve PVE 9 compatibility
2025-08-06 12:32:31 +00:00
Pulse Monitor f380f4a717 fix: version detection and display
- Fix hardcoded fallback version (was 4.0.3, now 4.0.4)
- Look for VERSION file in multiple locations (/opt/pulse/VERSION)
- Fixes version display when installed via community script
2025-08-06 12:29:41 +00:00
Pulse Monitor 2ba5e91fcd fix: UI and backend fixes
- Add orange highlighting for recently booted containers (< 1 hour)
- Handle cpulimit causing JSON unmarshaling error with FlexInt type
- Improve PVE 9 compatibility in temporary helper script
- Fixes issues #251 and #256
2025-08-06 10:44:35 +00:00
Pulse Monitor de85b861be fix: improve PVE 9 compatibility in temporary helper script
- Remove --password parameter that may cause issues on PVE 9
- Add explicit error handling for container creation
- Separate container creation and start steps
- Add proper wait loop for container startup
- Better error messages if IP detection fails
2025-08-06 08:20:56 +00:00
Pulse Monitor 5cef2fb4a9 chore: remove RELEASE_CHECKLIST.md from repo and re-ignore it
- This is an internal document, not for public repo
- Re-added to .gitignore
2025-08-06 07:33:22 +00:00
Pulse Monitor 92f83d23a5 docs: add consistent release notes template and track RELEASE_CHECKLIST.md
- Standardized release notes format for all releases
- Removed emoji from headers (keep it professional)
- Only mention specific Docker version tag (not all variants)
- Clear sections for Features, Fixes, Improvements, Breaking Changes
- Consistent installation instructions format
- Remove RELEASE_CHECKLIST.md from gitignore so it's tracked
2025-08-06 07:32:59 +00:00
Pulse Monitor 4711b6f81c docs: clarify testing means manual verification by Claude Code 2025-08-06 07:25:15 +00:00
Pulse Monitor 903d4acec1 chore: bump version to v4.0.4 2025-08-06 07:10:22 +00:00
Pulse Monitor 287742ef91 fix: resolve config path confusion causing read-only errors
- Fix utils.GetDataDir() to default to /etc/pulse instead of /var/lib/pulse
- Add explicit PULSE_DATA_DIR=/etc/pulse to systemd service
- This fixes issue #254 where alerts were trying to use wrong directory
- Ensures consistency: Docker uses /data, manual installs use /etc/pulse
2025-08-06 07:09:47 +00:00
Pulse Monitor 47f1163420 refactor: simplify data directory structure
- Single directory for all data (config + runtime)
- Docker uses /data (via PULSE_DATA_DIR env var)
- Manual installs use /etc/pulse (default)
- Removed unnecessary /var/lib/pulse directory creation
- Updated docs to clarify data storage locations

This eliminates confusion about multiple directories and follows
the principle of keeping things simple.
2025-08-05 21:53:36 +00:00