Commit Graph

528 Commits

Author SHA1 Message Date
Pulse Monitor b51dcd7004 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 b2986ad6b7 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 2f645ebcfb 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 1dcb102812 docs: remove emojis from README for more professional appearance 2025-08-22 08:01:33 +00:00
Pulse Monitor b462d5ebf8 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 5416b5e6a5 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 19bc8240a3 chore: bump version to v4.7.0-rc.2 2025-08-21 23:29:54 +00:00
Pulse Monitor 7af20b8c8d 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 c880b6552f 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 9ff8eb1fc7 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 b34c499327 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 e8c6fd0b61 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 a6db7c17ad 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 4cf25a9971 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 68af332228 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 15eb074f1f 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 2ee600348a 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 1d7ad85bfd 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 45f974e026 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 2c5b73626d 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 562f8f89db 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 570a7ec5b0 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 ad00943717 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 740fe36cec 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 6d332ec4c9 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 141970bf02 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 84e7084c85 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 835d2bb2a0 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 5c9ce1aceb 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 0dd657d05f docs: restore and improve Docker network discovery section with clearer explanation 2025-08-21 15:49:56 +00:00
Pulse Monitor 7eb9fea2ba docs: remove redundant Docker network discovery section 2025-08-21 15:49:06 +00:00
Pulse Monitor e5cd26810d docs: make support section more honest about actual costs 2025-08-21 15:48:09 +00:00
Pulse Monitor a816b92dc8 docs: fix support section - remove incorrect Proxmox licenses reference 2025-08-21 15:47:43 +00:00
Pulse Monitor c1ef0215ca docs: improve support section with context and alternative support options 2025-08-21 15:46:51 +00:00
Pulse Monitor 67298bc8a6 chore: bump version to v4.7.0-rc.1 2025-08-21 14:44:13 +00:00
Pulse Monitor 2af2e0294f 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
Pulse Monitor 5110a0ef27 improve: replace browser alert with elegant in-modal setup code display
- Added beautiful gradient card to display setup code
- Shows code in large, easy-to-read monospace font
- Includes clear instructions and expiry reminder
- Can be dismissed with X button
- Much better UX than browser alert popup
2025-08-21 14:25:54 +00:00
Pulse Monitor ad59b047e4 feat: implement secure one-time setup codes for node registration
addresses #340 - more secure authentication for Quick Token Setup

Major security improvement:
- Replaced URL-embedded tokens with 6-character one-time setup codes
- Setup codes are entered interactively, never transmitted in URLs
- Codes are hashed for storage and expire after 5 minutes
- Each code can only be used once

How it works:
1. User clicks "copy command" in Pulse UI
2. A unique setup code is generated and shown to the user
3. User runs the curl command on their Proxmox server
4. Script prompts for the setup code
5. Code is validated and node is auto-registered

This approach is much more secure as no authentication tokens travel over the network in URLs, and the codes are short-lived and single-use.
2025-08-21 14:20:20 +00:00
Pulse Monitor d7c1b6a02c fix: improve Quick Token Setup auto-registration and error messages
addresses #340 - Quick Token Setup improvements

Changed:
- Auto-registration now uses temporary setup tokens instead of API tokens (API tokens are hashed and can't be passed directly)
- Setup script shows token value for manual configuration when auto-registration fails
- Improved error messages to explain why auto-registration might fail
- Auto-register endpoint now accepts either API tokens or temporary setup tokens

This ensures the Quick Token Setup feature works as intended - automatically registering nodes without manual token copying when possible, while providing clear fallback instructions when authentication is required.
2025-08-21 14:07:13 +00:00
Pulse Monitor 9d864e4221 fix: remove incorrect backslash escaping in webhook templates (#341)
Discord and other webhook notifications were failing with template parse
errors due to backslashes incorrectly escaping quotes in Go raw string
literals. Raw strings preserve backslashes literally, causing the Go
template parser to fail.

Fixes #341
2025-08-21 13:40:34 +00:00
Pulse Monitor bb4ed55812 fix: webhook templates now properly save when updating
addresses #338 - template field was not being mapped from payloadTemplate
when updating webhooks through the UI
2025-08-21 13:05:51 +00:00
Pulse Monitor dd642987c5 fix: improve WebSocket CORS handling for Docker deployments
- Allow WebSocket connections from private networks when no origins configured
- Fixes "connection lost" errors for Docker users accessing from LAN IPs
- Maintains security by only allowing RFC1918 private IPs and local domains
- Users can still explicitly set ALLOWED_ORIGINS for stricter control
- Addresses issue #214 where Docker users couldn't connect via WebSocket
2025-08-21 12:49:50 +00:00
Pulse Monitor c88602884d fix: restore API token functionality when auth is disabled
- API tokens now work even when DISABLE_AUTH is set
- Added API token section back to Security tab in settings
- API tokens can protect API access for automation while keeping UI open
- Invalid tokens are rejected even with auth disabled
- Export/import endpoints still require valid API token
2025-08-21 12:26:08 +00:00
Pulse Monitor b94900bec8 improve: reorder tables to group infrastructure servers together
- PBS Servers table now appears right after Proxmox Nodes table
- Better logical flow: infrastructure servers → guest resources → storage
- Makes more sense to have all server-level monitoring grouped together
2025-08-21 11:56:56 +00:00
Pulse Monitor ac24547075 improve: collapse global thresholds by default and add PBS Servers table
- Global thresholds section now starts collapsed to reduce visual clutter
- Added dedicated PBS Servers table for monitoring PBS nodes separately
- PBS servers show CPU and Memory thresholds (when metrics are available)
- PBS servers have distinctive indigo color badge for easy identification
- Only shows PBS servers that have metric data (requires Sys.Audit permission)
2025-08-21 11:54:55 +00:00
Pulse Monitor bb4b3b0ba8 revert: remove PBS nodes from Proxmox Nodes table
- PBS nodes don't belong in the 'Proxmox Nodes' table
- They're fundamentally different infrastructure (backup vs hypervisor)
- The mixed presentation was confusing and out of place
- Reverting the previous hasty implementation
2025-08-21 11:50:42 +00:00
Pulse Monitor ba6188e43f feat: add PBS node metrics to threshold configuration table
- PBS nodes now appear in the Nodes table when configured with proper permissions
- Shows CPU and memory metrics for PBS nodes (disk metrics not available)
- PBS nodes are clearly labeled with 'PBS:' prefix and indigo color badge
- Only shows PBS nodes that have metric data available (requires Sys.Audit permission)
- Disk threshold column is automatically hidden for PBS nodes
2025-08-21 11:43:27 +00:00
Pulse Monitor b3ef7fdabb improve: add node-based grouping to VMs & Containers table
- Guests table now groups resources by node with visual separators
- Each node group has a header row showing the node name
- Resources within each node group are sorted by VMID
- Maintains clean visual hierarchy across all three tables
2025-08-21 11:36:23 +00:00
Pulse Monitor b113a48872 refactor: split threshold table into 3 separate tables
- Created reusable ResourceTable component for rendering resource tables
- Split single large table into 3 distinct tables: Nodes, VMs & Containers, Storage
- Each table only shows relevant metrics (nodes don't show I/O, storage only shows usage)
- Improved organization and visual clarity of threshold configuration
2025-08-21 11:30:48 +00:00
Pulse Monitor 00f05d296d revert: go back to node-based grouping for guests
- Reverted to original grouping where guests are under their node names
- Removed "on <node>" text for guests (redundant since they're grouped by node)
- Kept "on <node>" for storage devices (still useful there)
- Order is now: Nodes first, then node groups (delly, minipc), then Storage last
2025-08-21 11:19:49 +00:00