Commit Graph

542 Commits

Author SHA1 Message Date
Pulse Monitor a67390d019 fix: make setup script endpoint public to address authentication errors
- Setup script no longer requires authentication (uses setup codes instead)
- Fixed discovery service not starting when toggled via settings
- Addresses #347 and discussion #344
2025-08-23 07:16:31 +00:00
Pulse Monitor 11858a856c chore: bump version to v4.7.0 2025-08-22 19:55:08 +00:00
Pulse Monitor 5d0b3b70ca fix: correct PBS custom port handling
addresses #346

The issue was that the code was checking for specific ports (:8007 or :443) in the host string, which would incorrectly add the default port even when a custom port was already specified. Now it properly checks if any port exists after the protocol before adding the default.
2025-08-22 15:07:23 +00:00
Pulse Monitor e8e06d6d20 fix: simplify PulseMonitor role creation in setup script
Delete and recreate the PulseMonitor role each time instead of trying to modify it. This ensures a clean, predictable state with exactly the permissions needed.

Also fixes incorrect pveum command syntax - should be 'role add' not 'role create'.

Addresses issue reported by NameLessJedi in #340
2025-08-22 14:56:03 +00:00
Pulse Monitor fc3e6c1381 feat: add real-time theme synchronization across all connected clients
- Theme changes now broadcast instantly via WebSocket to all connected browsers
- No page refresh needed - theme updates in real-time across all devices
- Theme preference is persisted server-side and loaded on new sessions
- Added WebSocket message type 'settingsUpdate' for broadcasting settings changes
- Updated SystemSettingsHandler to broadcast theme changes to all clients
- Added frontend event listener to handle incoming theme change messages
- Fixed API endpoint routing to use the new handler with broadcast support
- Added proper DISABLE_AUTH check in CheckAuth for auth-disabled environments

This creates a seamless experience where toggling dark/light mode on one device
instantly updates all other connected devices (phones, tablets, browsers).
2025-08-22 14:30:19 +00:00
Pulse Monitor 1bb954fdba fix: handle empty webhook templates properly (addresses #341)
When a webhook has an empty template string, don't try to use it - fall through to the service-specific template instead. This was causing Discord webhooks to send empty payloads resulting in errors.
2025-08-22 12:57:07 +00:00
Pulse Monitor 2c755b03d5 chore: bump version to v4.7.0-rc.3 2025-08-22 11:20:57 +00:00
Pulse Monitor 53e0e0f00c fix: address PBS custom port handling issue #346
PBS was incorrectly appending default port :8007 even when custom ports were specified, resulting in malformed URLs like domain:443:8007. Now properly detects existing ports after the protocol prefix.
2025-08-22 11:06:29 +00:00
Pulse Monitor 2465ef7ca8 feat: move discovery toggle to node tabs for better UX
- Added discovery toggle directly on PVE and PBS node tabs
- Toggle works instantly without needing to save
- Discovered nodes only show when discovery is enabled
- Removed discovery settings from System Settings tab
- More intuitive placement right where discovery results appear
2025-08-22 10:56:50 +00:00
Pulse Monitor 0071a9c02a docs: update configuration guide for encrypted webhooks 2025-08-22 10:22:07 +00:00
Pulse Monitor a8b7d2748e feat: encrypt webhook data at rest for improved security
Webhooks now stored encrypted (webhooks.enc) instead of plain text:
- Automatic migration from webhooks.json to webhooks.enc
- Uses same AES-256-GCM encryption as nodes and email configs
- Original file backed up as webhooks.json.backup
- Protects sensitive webhook URLs and authentication headers

This addresses the security concern where webhook URLs containing API tokens
(like Telegram bot tokens) were stored in plain text.
2025-08-22 10:19:42 +00:00
Pulse Monitor 49c6507a72 feat: add proxy authentication support
Implements header-based proxy authentication for SSO integration with
Authentik, Authelia, and other authentication proxies.

- Add CheckProxyAuth function to validate proxy headers
- Support for username and role-based access control
- Frontend integration with logout URL support
- Comprehensive documentation with examples
- Backwards compatible - no breaking changes

Addresses #327

Configuration via environment variables:
- PROXY_AUTH_SECRET: Shared secret for validation
- PROXY_AUTH_USER_HEADER: Header containing username
- PROXY_AUTH_ROLE_HEADER: Header containing roles/groups
- PROXY_AUTH_LOGOUT_URL: SSO logout endpoint
2025-08-22 09:47:18 +00:00
Pulse Monitor 3b0699f294 feat: auto-select update in non-interactive container mode
- Detect non-TTY environments when running with --in-container
- Automatically select appropriate update based on configured channel
- Prevents hanging on menu prompt in ProxmoxVE deployments
2025-08-22 08:55:12 +00:00
Pulse Monitor 1ceead418e fix: handle unset UPDATE_CHANNEL variable in download_pulse function
Use parameter expansion to prevent 'unbound variable' error when UPDATE_CHANNEL is not set
2025-08-22 08:50:07 +00:00
Pulse Monitor e18965eca4 feat: show both stable and RC version options in install script menu
- Users now see both stable and RC versions when updating
- Menu dynamically adjusts based on available versions
- Users can choose which version to install regardless of their update channel setting
- Addresses confusion about automatic RC updates
2025-08-22 08:39:11 +00:00
Pulse Monitor fcf8c434a1 fix: initialize UPDATE_CHANNEL variable before use in install script
addresses #345 - script was failing with 'unbound variable' error when UPDATE_CHANNEL was used before being initialized
2025-08-22 08:33:07 +00:00
Pulse Monitor 6f6235fd50 fix: respect disabled flag for storage device alerts
Storage devices with alerts disabled in the Thresholds tab were still
triggering alerts. Added proper checking of the disabled override flag
in CheckStorage() to match the behavior of guest alerts.
2025-08-22 08:30:39 +00:00
Pulse Monitor d03fe05fef docs: remove emojis from README for more professional appearance 2025-08-22 08:01:33 +00:00
Pulse Monitor e07c9783ef fix: storage alert disabling now properly persists and displays
- Use rawOverridesConfig() for saving instead of rebuilding overrides
- Fix hasOverride flag to consider disabled state for storage/guests
- Toggle now reads current state from resource object
- Properly show "Custom" badge when alerts are disabled
2025-08-22 07:59:50 +00:00
Pulse Monitor b2e0e7579f fix: prevent page scrolling when toggling settings and fix storage alert disabling (#323)
- Add type="button" to all buttons to prevent form submission behavior
- Fix storage device alert disabling in threshold management
- Storage devices now properly handled in override configuration
2025-08-22 07:33:13 +00:00
Pulse Monitor e8be85ac78 chore: bump version to v4.7.0-rc.2 2025-08-21 23:29:54 +00:00
Pulse Monitor e0900ac006 feat: add VM disk usage monitoring via QEMU guest agent
- Add GetVMFSInfo method to fetch filesystem data from guest agent
- Integrate guest agent disk stats for VMs in both polling modes
- Aggregate real disk usage from all filesystems (skip special mounts)
- Fall back gracefully to allocated size when agent unavailable
- Add VM.Monitor permission to auto-negotiation script via PulseMonitor role
- Update frontend NodeModal with new permission instructions

VMs with QEMU guest agent now show actual disk usage like LXCs do.
Addresses #344
2025-08-21 23:25:59 +00:00
Pulse Monitor e12c42104c fix: improve interactive detection for curl piped installations
Previous fix wasn't working properly - the menu showed but couldn't read input.
Now properly detects if we can write to /dev/tty to determine if interaction
is possible, even when stdin is piped from curl.
2025-08-21 22:44:42 +00:00
Pulse Monitor 2e79efd011 fix: allow interactive mode when using curl | bash for Proxmox installations
The script was detecting piped input and automatically going into non-interactive mode,
preventing users from choosing between Quick and Advanced installation modes.

Now checks if /dev/tty is available even when stdin is piped, allowing interaction
through the terminal for curl-based installations while still supporting truly
non-interactive environments (like automation scripts without any TTY).
2025-08-21 22:41:02 +00:00
Pulse Monitor e0cc18ad51 fix: handle piped script execution for Proxmox container installs
When script is piped through curl, download a fresh copy to push
to the container instead of trying to use $0 which would be 'bash'
2025-08-21 22:26:48 +00:00
Pulse Monitor 00235f0691 fix: simplify non-interactive detection for curl installations
Use simple 'test -t 0' to detect when script is piped through curl
Also use portable test command instead of bash [[ ]] syntax
2025-08-21 22:24:08 +00:00
Pulse Monitor 2588622e44 fix: auto-select Quick mode for non-interactive Proxmox installations
When running via curl pipe, automatically use Quick installation mode
instead of waiting for input that will never come
2025-08-21 22:20:31 +00:00
Pulse Monitor 9aa15bdb37 fix: handle non-TTY environments in install script for Proxmox installations
- Add safe_read function to handle both TTY and non-TTY input
- Fix --in-container mode to skip prompts when no TTY available
- Allows installation via piped curl command on Proxmox hosts
2025-08-21 22:19:23 +00:00
Pulse Monitor b64fb72282 fix: add Gotify webhook template with required message field
Addresses #342 - Gotify webhooks now include the required 'message' field
that was missing when using generic webhook payloads. The template also
includes proper priority mapping and markdown support.
2025-08-21 22:10:43 +00:00
Pulse Monitor bd9ebcada7 feat: add port configuration prompt to installer
- Install script now prompts for custom port (default: 7655)
- Can skip prompt with FRONTEND_PORT environment variable
- Fixed incorrect port configuration instructions in UI
- Updated documentation to reflect new installation options
- Fixed FAQ.md references to pulse-backend (should be pulse)

addresses #110
2025-08-21 22:06:18 +00:00
Pulse Monitor 35e3f986f4 improve: clarify configuration file separation and port setup
- Added comprehensive PORT_CONFIGURATION.md guide
- Updated CONFIGURATION.md to clarify .env is for auth only
- Install script no longer loads .env for environment variables
- Documented proper port configuration methods (systemd, system.json)
- Added port config guide to README documentation section

addresses #110 - helps users understand where to configure ports
2025-08-21 21:29:12 +00:00
Pulse Monitor 4a2e7b4547 feat: add toggle to disable network discovery
Addresses #343 - users can now disable Proxmox/PBS server discovery through:
- UI toggle in Settings > System > Network Settings
- Environment variable DISCOVERY_ENABLED=false
- system.json configuration

Discovery runs by default but can be completely disabled for environments where automatic scanning causes issues (e.g., shared hosting networks).
2025-08-21 21:13:29 +00:00
Pulse Monitor ce8c1aaae9 docs: add clear Updating section to README
- Simple update commands for each installation type
- LXC containers just run 'update' command
- Standard installs re-run the installer
- Docker users pull and recreate
2025-08-21 20:59:07 +00:00
Pulse Monitor aac2145510 feat: add version command and privacy disclosure
- Added 'pulse --version' and 'pulse version' commands
- Version info embedded at build time (version, commit, build date)
- Added Privacy section to README - no telemetry/analytics
- Added example alert messages to show webhook capabilities
- Build script now properly embeds version information
2025-08-21 20:54:41 +00:00
Pulse Monitor b8d6358d7e docs: better README flow with context before install
- Removed overly aggressive Quick Install section
- Added brief description of what Pulse does
- Kept sponsorship section high for visibility
- Install command now in logical Quick Start section
- Better context and explanation before showing commands
2025-08-21 20:49:27 +00:00
Pulse Monitor 3006f0cb77 docs: make install command front and center
- Added Quick Install section right after title
- Single copyable command prominently displayed
- Moved detailed options lower in the document
2025-08-21 20:45:46 +00:00
Pulse Monitor f7840aae47 feat: major installer improvements for Proxmox environments
- Auto-detects Proxmox VE hosts and creates LXC containers
- Quick mode with sensible defaults (1GB RAM, 4GB disk)
- Advanced mode for full customization
- Automatic cleanup on failure
- Simple 'update' command in containers
- Improved error handling and network detection
- Professional, clean output without verbose noise
- Docker detection to prevent container-in-container
- Removed all references to community scripts

This is now the primary recommended installation method.
2025-08-21 20:43:56 +00:00
Pulse Monitor 8965e71ad2 feat: add quick and advanced modes for LXC container creation
Users now have two options when creating the LXC container:
1. Quick mode - Uses optimized defaults for production (2GB RAM, 16GB disk, etc)
2. Advanced mode - Full control over all settings like the community script

Advanced mode allows customization of:
- Memory, CPU cores, CPU limits, swap
- Static IP vs DHCP
- DNS servers
- Firewall settings
- Privileged vs unprivileged
- Auto-start on boot
- Startup order

This gives users the best of both worlds - quick setup with good defaults
or full control when needed.
2025-08-21 19:26:31 +00:00
Pulse Monitor d5045a0b67 optimize: improve LXC container settings for production use
- Increased default RAM to 2GB (handles 50+ nodes)
- Increased default disk to 16GB (logs and metrics storage)
- Added CPU limit to prevent resource hogging
- Added 512MB swap for memory flexibility
- Enabled firewall on network interface
- Set startup order to 99 (after critical services)
- Configure UTC timezone for consistent logging
- Optimize sysctl settings for monitoring workload
- Added clear documentation of optimizations applied
2025-08-21 19:01:17 +00:00
Pulse Monitor 02865e07f7 feat: add automatic LXC container creation for Proxmox hosts
The installer now detects when running on a Proxmox VE host and automatically:
- Creates a new LXC container with user-specified settings
- Installs Pulse inside the container
- Prevents unsafe installation directly on PVE hosts

This eliminates dependency on community scripts while ensuring proper isolation.
2025-08-21 18:43:40 +00:00
Pulse Monitor b535f09fb9 docs: prioritize official installer over community scripts in README
Changed install options order to recommend the official installer first for
systemd/bare metal installations, with community scripts as an alternative option
2025-08-21 18:34:27 +00:00
Pulse Monitor c0af307fef fix: remove unnecessary build dependencies from install script
The installer was installing Go and Node.js even for binary installations.
Now it only installs curl and wget which are needed to download the release.
2025-08-21 18:31:04 +00:00
Pulse Monitor 9108650352 docs: comprehensive update to API documentation
- Fixed HTTP method discrepancies (POST to PUT for /api/config/system)
- Added missing security endpoints (status, change-password, quick-setup)
- Added missing test endpoints (test-config, node-specific test)
- Added system settings and UI settings documentation
- Added /api/config endpoint for getting current configuration
- Added /simple-stats lightweight monitoring endpoint
- Added /api/test-notification for WebSocket testing
- Removed unimplemented threshold endpoints
- Corrected email update method from POST to PUT
- Added comprehensive security configuration section
- Updated API token management to reflect new simplified endpoint
2025-08-21 16:01:52 +00:00
Pulse Monitor 8b6e2c07a8 docs: restore and improve Docker network discovery section with clearer explanation 2025-08-21 15:49:56 +00:00
Pulse Monitor ea475c08a6 docs: remove redundant Docker network discovery section 2025-08-21 15:49:06 +00:00
Pulse Monitor a4fd2c41b6 docs: make support section more honest about actual costs 2025-08-21 15:48:09 +00:00
Pulse Monitor e859adbd2b docs: fix support section - remove incorrect Proxmox licenses reference 2025-08-21 15:47:43 +00:00
Pulse Monitor 7d46b89c5a docs: improve support section with context and alternative support options 2025-08-21 15:46:51 +00:00
Pulse Monitor c8d26c9698 chore: bump version to v4.7.0-rc.1 2025-08-21 14:44:13 +00:00
Pulse Monitor ee15d3b4f0 docs: update API documentation for secure setup code system
- Documented the new /api/setup-script-url endpoint
- Explained the one-time setup code security features
- Updated auto-register endpoint documentation
- Added security features section highlighting the improvements
- Included environment variable option for automation
2025-08-21 14:31:29 +00:00