Commit graph

243 commits

Author SHA1 Message Date
Pulse Monitor
a8fb13571c chore: bump version to v4.1.2 2025-08-10 10:42:03 +00:00
Pulse Monitor
bb3f783b59 refactor: implement directory-based auto-update approach
Replaced sudo-based updater with a cleaner directory-based approach:
- Pulse binary now installs to /opt/pulse/bin/pulse (owned by pulse user)
- Symlink created at /usr/local/bin/pulse for PATH convenience
- Pulse user has full write access to /opt/pulse, enabling self-updates
- Removed sudo dependency and security risks
- Simplified update logic - no special scripts or permissions needed

This is more secure, simpler, and works in all environments (containers, VMs, bare metal)
2025-08-10 09:48:53 +00:00
Pulse Monitor
302ae5b79b fix: auto-update permission issues for non-root installations
- Created pulse-updater script that runs with sudo to update root-owned binary
- Modified install.sh to set up sudoers permissions for pulse user
- Updated build-release.sh to include scripts directory in releases
- Install script now installs sudo (if missing) and configures NOPASSWD access

This fixes the 'Failed to apply update' error when Pulse runs as non-root user
and needs to update the binary at /usr/local/bin/pulse
2025-08-10 09:42:17 +00:00
Pulse Monitor
a896968f55 feat: add 'Recommended' label to API Token option
Added a green '(Recommended)' label next to the API Token authentication option to guide users toward the more secure authentication method.
2025-08-10 09:32:00 +00:00
Pulse Monitor
10b5e5bf63 fix: default to API token auth when adding discovered servers
Changed the default authentication method from username/password to API token when clicking on auto-discovered servers. API tokens are more secure and the recommended approach for most users.
2025-08-10 09:16:39 +00:00
Pulse Monitor
1da7ca4ea7 feat: add timestamp to token names for true uniqueness
Token names now include both Pulse server IP and Unix timestamp (e.g. pulse-192-168-0-176-1754816525) ensuring each script run creates a unique token. This completely eliminates 'token already exists' errors when running setup scripts multiple times.
2025-08-10 09:02:52 +00:00
Pulse Monitor
5a98e05cb0 feat: add Pulse server IP to token names for uniqueness
When running the setup script multiple times from different Pulse servers, tokens now include the Pulse server's IP address in the name (e.g. pulse-192-168-0-176) to avoid conflicts. This prevents 'token already exists' errors when managing multiple Pulse instances.
2025-08-10 08:58:04 +00:00
Pulse Monitor
aafa90f9db fix: enable PBS backup monitoring by default
- PBS instances now have MonitorBackups enabled by default
- Fixes issue where PBS backups weren't showing in the UI
- Bump version to v4.1.1
2025-08-10 08:27:20 +00:00
Pulse Monitor
6d633aa486 fix: correct hardcoded fallback version to 4.1.0 2025-08-10 07:44:40 +00:00
Pulse Monitor
d57dcd2fb8 fix: install script now properly installs frontend files
- Frontend-modern directory is now copied to /usr/local/bin during installation
- Fixes ERR_TOO_MANY_REDIRECTS issue (#268)
- Ensures UI is accessible after binary installation
2025-08-10 07:12:47 +00:00
Pulse Monitor
792b897602 chore: bump version to v4.1.0 2025-08-10 06:59:53 +00:00
Pulse Monitor
68e8ef69f6 fix: Docker permission issues and alert history file access
- Fixed Docker entrypoint to properly handle running as root (PUID=0)
- Improved alert history loading to handle permission errors gracefully
- Container now correctly runs as root when PUID=0 is set
- Alert history continues loading even if backup file has permission issues

Addresses #266 and #262
2025-08-10 06:51:45 +00:00
Pulse Monitor
f8ef3f9259 fix: multiple critical issues in monitoring and notifications
- PBS instances now show as online when datastores are accessible even if version endpoint fails
- Email sending now uses proper STARTTLS support for compatibility with providers like SMTP2GO
- Email recipient input no longer filters entries while typing
- Auto-update setting now properly persists and loads from config
- Fixed CPU usage alerts for offline VMs (already addressed in previous commits)
2025-08-09 23:26:12 +00:00
Pulse Monitor
da5069ecb5 fix: show PBS backup verification status correctly
- Use actual verified field from backend for PBS backups through PVE storage
- Was incorrectly hardcoded to null causing verified checkmarks not to show
2025-08-09 22:43:53 +00:00
Pulse Monitor
392d7177e0 chore: bump version to v4.1.0-rc.8 2025-08-09 22:42:15 +00:00
Pulse Monitor
0ebfb8ec01 hotfix: backup type detection for PBS backups
- Added format field checking for pbs-ct and pbs-vm
- Changed unknown type fallback from VM to LXC (more common)
- Fixes issue where all backups showed as VM type
2025-08-09 22:42:04 +00:00
Pulse Monitor
43e9a38dca chore: bump version to v4.1.0-rc.7 2025-08-09 22:32:43 +00:00
Pulse Monitor
026a0b2e17 attempt to address: CT templates showing in backups tab
- Skip vztmpl and iso types from backup display as they are not actual backups
- These are container templates and ISO images, not backup files
2025-08-09 22:31:11 +00:00
Pulse Monitor
a368d3b3c9 attempt to address: Discord webhooks, backup types, storage duplicates, alert issues
- Added service field to WebhookConfig to identify Discord webhooks
- Use Discord-specific template when sending Discord webhooks
- Fixed backup type detection for PBS backups (vm/ct)
- Fixed shared storage duplicate IDs across instances
- Fixed alert acknowledge/clear response format to match frontend expectations
2025-08-09 22:27:10 +00:00
Pulse Monitor
9b72c26994 chore: remove test artifacts and videos 2025-08-09 22:06:26 +00:00
Pulse Monitor
436abdd8e0 chore: bump version to v4.1.0-rc.6 2025-08-09 21:52:30 +00:00
Pulse Monitor
4304a28207 chore: remove unused updater scripts and update docs for manual refresh 2025-08-09 21:50:53 +00:00
Pulse Monitor
2aed21530b chore: reset version to match latest GitHub release (rc.5) 2025-08-09 21:47:20 +00:00
Pulse Monitor
47283271c3 chore: cleanup test files and restore GitHub release checking 2025-08-09 21:45:36 +00:00
Pulse Monitor
3f897f42fa fix: clear user instructions for manual refresh after updates 2025-08-09 21:43:17 +00:00
Pulse Monitor
4c8094e4ac fix: auto-restart after update using clean exit strategy 2025-08-09 20:57:00 +00:00
Pulse Monitor
311ef7619e fix: critical production issues for v4.1.0-rc.5
- Fixed Discord/Slack/Teams webhooks not persisting (Issue #272)
- Fixed email recipients not saving and Enter key issue (Issue #270)
- Fixed auto-update toggle not saving (Issue #269)
- Fixed false CPU alerts for stopped VMs/containers (Issue #273)
- Automatic alert clearing for stopped guests
- Preserve passwords when updating email config

chore: bump version to v4.1.0-rc.5
2025-08-09 18:27:30 +00:00
Pulse Monitor
b4dd5937f9 chore: bump version to v4.1.0-rc.4 2025-08-09 16:50:53 +00:00
Pulse Monitor
25cef39af1 chore: bump version to v4.1.0-rc.3 2025-08-09 15:19:01 +00:00
Pulse Monitor
7f414623fc fix: ensure consistent CPU core display for all guests
- Fix CPU core display to show for all guests with CPU data
- Previously only showed cores when CPU > 0 (truthy)
- Now shows "(0.0/X cores)" consistently for all running/stopped guests
- Improve code organization with new helper utilities
- Clean up import statements and remove debug logs
2025-08-09 15:03:28 +00:00
Pulse Monitor
fce003b559 fix: polling interval now persists through restarts
- System.json settings now take priority over environment variables
- Fixed issue where POLLING_INTERVAL env var would override saved settings
- Polling interval changes in UI now persist correctly after restart
2025-08-09 12:59:21 +00:00
Pulse Monitor
da7f3974b8 docs: remove resolved Proxmox helper issue documentation
The issue with tteck's Proxmox VE Helper Scripts has been resolved via merged PR
2025-08-09 11:59:12 +00:00
Pulse Monitor
1bafafa067 chore: remove unnecessary design document 2025-08-09 11:57:36 +00:00
Pulse Monitor
decce4f39f feat: implement secure registration token system with fixes
- Add registration token system for secure node auto-registration
- Implement token generation, validation, and revocation APIs
- Add frontend UI for managing registration tokens
- Fix polling interval hot-reload to work without restart
- Fix environment variable persistence for system settings
- Optimize monitor reload to avoid 'no nodes configured' message
- Fix goroutine leak in token manager cleanup
- Fix context propagation in reload logic
- Fix AUTO_UPDATE_ENABLED persistence bug
- Add proper error handling and security validation
- Ensure all resources properly cleaned up with defer statements
2025-08-09 11:54:26 +00:00
Pulse Monitor
5b0be4e677 security: fix critical vulnerabilities in auto-registration
- Remove token logging - tokens were being logged in plaintext
- Add client IP logging for security auditing
- Add HTTPS warning when tokens sent over HTTP
- Remove debug output that exposed tokens in console
- Add optional auth requirement via REQUIRE_AUTH_FOR_AUTO_REGISTER env var
- Prevent token exposure in error messages
- Already has duplicate node prevention

Security improvements:
- Tokens no longer logged anywhere
- Source IPs tracked for audit trail
- Optional authentication for high-security environments
- HTTPS enforcement warnings
2025-08-09 10:23:21 +00:00
Pulse Monitor
4d3c2b9fd6 fix: revert sessionStorage change that breaks user sessions
- Remove sessionStorage for API tokens - it clears on tab close
- localStorage is correct for persistent auth tokens
- sessionStorage would log users out every time they close the tab
- Keep other security improvements from previous commit
2025-08-09 10:19:26 +00:00
courtmanr@gmail.com
7f33cb64cc fix: address additional critical bugs and security vulnerabilities
- Fix unsafe JSON parsing in WebSocket with proper error handling
- Fix unsafe JSON parsing in Settings import with validation
- Improve API token security by using sessionStorage as primary storage
- Remove debug console statements from production code
- Fix race conditions in WebSocket alert handling with atomic updates
- Add NaN validation for parseFloat operations in search queries
- Add safer error handling alternatives in generics utility
- Improve graceful shutdown in Settings API with proper timing
- All changes verified with successful frontend and backend builds
2025-08-09 10:54:10 +01:00
Pulse Monitor
a423d42402 docs: final cleanup of configuration references
- Updated MIGRATION_V3_TO_V4.md to clarify .env is optional
- Fixed CONFIGURATION.md file locations section
- Verified all other references are correct
- Installation scripts correctly check for v3 .env files
- Security warnings already appropriate
2025-08-09 09:43:31 +00:00
courtmanr@gmail.com
6404b2d63e fix: address critical security vulnerabilities and improve code quality
- Fix XSS vulnerabilities in Tooltip component by replacing innerHTML with textContent and adding content sanitization
- Fix XSS vulnerability in UnifiedBackups by replacing innerHTML with safe DOM manipulation
- Add proper null checks for props.guest.cpu in GuestRow to prevent NaN errors
- Replace unsafe non-null assertions with proper conditional rendering
- Fix memory leak in Settings component by improving interval cleanup
- Fix WebSocket reconnection race condition by adding proper timeout cleanup
- Create standardized error handler utility for consistent error handling
- Enable VM state support in monitoring (resolves TODO)
- Improve type safety throughout the codebase
- All changes verified with successful frontend and backend builds
2025-08-09 10:41:28 +01:00
Pulse Monitor
cd43433a79 docs: update all documentation for simplified configuration
- Updated README to show env vars instead of .env editing
- Updated FAQ with correct port change instructions
- Updated .env.example header to clarify it's for deployment overrides
- Made it clear UI is primary configuration method
- Environment variables are for deployment-time overrides only
2025-08-09 09:39:23 +00:00
Pulse Monitor
8dad7e9a7c refactor: simplify configuration to single source of truth
- Remove .env syncing - UI no longer writes to .env file
- system.json is the single source for UI-managed settings
- .env files are read-only for deployment overrides
- Environment variables still override everything (Docker/systemd)
- Cleaner separation: env vars for deployment, JSON for runtime
- Updated documentation to clarify configuration hierarchy
- Simpler code with less failure points
2025-08-09 09:32:31 +00:00
Pulse Monitor
af84e27e80 feat: sync UI settings with .env file
- UI settings now automatically update .env file when changed
- .env file and system.json stay in sync
- Settings hierarchy preserved: env vars > .env > UI
- .env file is auto-generated/updated when UI saves settings
- Improved user experience - changes in UI reflect in .env and vice versa
2025-08-09 06:56:37 +00:00
Pulse Monitor
d29c4da7e9 fix: release channel persistence and expanded .env support
- Fix release channel not saving when changed in UI
- Add system settings persistence for update-related config
- Expand .env file support to include all non-sensitive settings:
  - UPDATE_CHANNEL, AUTO_UPDATE_ENABLED, AUTO_UPDATE_CHECK_INTERVAL, AUTO_UPDATE_TIME
  - POLLING_INTERVAL, CONNECTION_TIMEOUT, ALLOWED_ORIGINS, LOG_LEVEL
- Update documentation with all available .env settings
- Settings now properly persist across restarts
- Environment variables override saved settings at startup
2025-08-08 23:19:26 +00:00
Pulse Monitor
487d2b9528 remove: RC1 update fix doc from repo 2025-08-08 23:11:36 +00:00
Pulse Monitor
fbb6e14721 fix: update channel logic for RC releases
- Fix bug where RC channel always returned first release without proper comparison
- Ensure RC channel returns the latest release (newest by creation date)
- Stable channel correctly returns first non-prerelease
- Add manual update instructions for users stuck on rc.1
2025-08-08 23:10:50 +00:00
Pulse Monitor
0c21ede274 chore: bump version to v4.1.0-rc.2 2025-08-08 22:44:10 +00:00
Pulse Monitor
9f48f31292 fix: update dependencies to address security vulnerabilities
- Update Go from 1.19 to 1.23.4 for latest security patches
- Update golang.org/x/crypto from v0.23.0 to v0.41.0 (critical security fixes)
- Update golang.org/x/net from v0.21.0 to v0.43.0 (security updates)
- Update golang.org/x/sys from v0.20.0 to v0.35.0
- Update golang.org/x/term from v0.20.0 to v0.34.0
- Update golang.org/x/text from v0.15.0 to v0.28.0
- Update other dependencies to latest versions

This addresses the critical and high severity vulnerabilities reported by GitHub Dependabot
2025-08-08 22:38:59 +00:00
Pulse Monitor
dd5ee8120f fix: critical bugs and add .env configuration support
- Fix Export/Import API token authentication (wasn't sending X-API-Token header)
- Add client-side passphrase validation (12+ chars with visual feedback)
- Fix settings persistence for AllowedOrigins field
- Fix hardcoded port display in diagnostics (now shows actual port)
- Add .env file support for non-sensitive configuration (ports, logging, etc)
- Keep sensitive data (API tokens, passwords) using secure methods (systemd env vars)
- Update documentation with configuration guide and latest features
- Document auto-discovery, cluster detection, and export/import features
2025-08-08 22:37:02 +00:00
Pulse Monitor
62b9756586 fix: remove redundant cluster/standalone badges
- Badges should be for statuses/counts, not descriptive properties
- Cluster information is already shown in dedicated section below
- Keeps only functional badges (VMs, Containers, Storage, Backups)
- Cleaner, less cluttered interface
2025-08-08 22:05:46 +00:00
Pulse Monitor
11b601fa49 fix: make cluster and standalone badges visually consistent
- Both badges now use gray color scheme (bg-gray-200/700, text-gray-600/400)
- Removes the blue coloring from cluster badge that made it inconsistent
- Better visual hierarchy - badges are informational, not action items
2025-08-08 22:01:41 +00:00