Releases: rcourtman/Pulse
v4.22.0-rc.5
Note for RC versions
This is a pre-release version for testing. Consider backing up your Pulse configuration before updating.
What's Changed
New Features
- New interactive command builder for Docker agent installation with improved token management
- Token validation endpoint for testing API token validity
Bug Fixes
- Fixed authentication bypass vulnerability with URL path normalization (security fix)
- Fixed proxy authentication to properly reject unauthenticated requests
- Fixed update history to use configurable data directory instead of hardcoded path
Installation
Testing v4.22.0-rc.5:
# Install script curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --version v4.22.0-rc.5 # Docker docker pull rcourtman/pulse:v4.22.0-rc.5 docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:v4.22.0-rc.5Downloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.22.0-rc.4
Note for RC versions
This is a pre-release version for testing. Consider backing up your Pulse configuration before updating.
What's Changed
New Features
- Proxmox Mail Gateway (PMG) Monitoring - Full support for monitoring Proxmox Mail Gateway instances with mail flow statistics, spam/virus detection, quarantine status, and queue monitoring
- In-App Update System - New update UI with update history tracking, progress monitoring, and automated update support for ProxmoxVE deployments
- Docker Agent CI/CD - Automated Docker agent image building via GitHub Actions
Improvements
- Enhanced discovery system with PMG support
- Better update notification handling for RC releases
- Improved mock data generation for PMG instances
- Updated install script with version-specific installation support
Bug Fixes
- Fixed PMG monitoring test coverage with queue endpoint support
- Resolved TypeScript type safety issues in Settings and UpdateBanner components
- Removed unused imports and variables across frontend components
- Fixed version synchronization between VERSION file and Go code
Installation
Testing v4.22.0-rc.4:
# Install script curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --version v4.22.0-rc.4 # Docker docker pull rcourtman/pulse:v4.22.0-rc.4 docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:v4.22.0-rc.4Downloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.22.0-rc.3
Note for RC versions
This is a pre-release version for testing. Consider backing up your Pulse configuration before updating.
What's Changed
Improvements
- Standard Authorization header support - API now accepts
Authorization: Bearer <token>header in addition toX-API-Token, improving compatibility with standard HTTP clients and tools - Alert delay UI improvements - Alert delay settings are now collapsible, making the alerts page cleaner and easier to navigate
- Disk usage for stopped guests - Dashboard now shows the last reported disk usage for stopped VMs and containers instead of hiding the information
- Shared storage display - Fixed rendering of shared storage across multiple nodes in the storage view
- Alerts page layout - Fixed sidebar width constraints to prevent layout overflow on smaller screens
- Docker agent access - Docker agent installation script and binary downloads no longer require authentication
Bug Fixes
- Fixed alerts page sidebar being squished on certain screen sizes
- Fixed alert delay input field width and centering
Installation
Testing v4.22.0-rc.3:
# Install script curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --version v4.22.0-rc.3 # Docker docker pull rcourtman/pulse:v4.22.0-rc.3 docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:v4.22.0-rc.3Downloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.22.0-rc.2
Note for RC versions
This is a pre-release version for testing. Consider backing up your Pulse configuration before updating.
What's Changed
New Features
- Per-metric alert delay configuration - Set custom alert delays for individual metrics (CPU, memory, disk, etc.) with UI controls and dynamic tooltips
- Temperature threshold defaults - Nodes now have default temperature thresholds (80°C trigger, 75°C clear) for CPU temperature monitoring
Improvements
- Alert system enhancements - Improved alert notification routing and frontend visual styling for better clarity
- Resource toggle synchronization - Global resource toggles now stay in sync with the global alert switch
- Docker container global toggle - Added global toggle for Docker container alerts with improved type safety
- Dashboard refinements - Better dashboard width handling and improved disk sorting
- Offline alert toggles - Global toggles for offline alerts across different resource types
- Docker agent improvements - Quick install token prefill and updated Docker client to v28
- OIDC enhancements - OIDC configuration now included in exports with improved guest metadata refresh
Bug Fixes
- Proxmox memory usage accounting - Fixed memory usage calculation for Proxmox nodes
- TypeScript type errors - Resolved type safety issues in alert threshold table
- Test stability - Fixed time threshold test to properly handle alert delay configuration
Installation
Testing v4.22.0-rc.2:
# Install script curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --version v4.22.0-rc.2 # Docker docker pull rcourtman/pulse:v4.22.0-rc.2 docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:v4.22.0-rc.2Downloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
Pulse v4.22.0-rc.1
Highlights
- Docker monitoring preview – ships the new external Docker agent alongside the backend. Pulse now exposes
/download/pulse-docker-agent,/install-docker-agent.sh, and a dedicated Settings pane so you can deploy agents quickly. The Docker view renders host health, container status/ports/networks, and highlights alert states in real time. - Alerting UX refinements – thresholds tables, badges, and alert counts were cleaned up across the app, plus per-resource powered-off severity controls and numerous Docker alert fixes to reduce noise.
- Mock mode parity – mock data now simulates Docker hosts/containers so development and demos light up the Docker tab without real infrastructure. New env knobs (
PULSE_MOCK_DOCKER_HOSTS,PULSE_MOCK_DOCKER_CONTAINERS) control density. - Installer & packaging updates – release archives and the container image embed the Docker agent, the CLI installer detects the latest Debian template and OVS bridges, and the toggle/installer scripts enforce API tokens.
- UI polish – container drawer cards span full width, navigation spacing is tightened, and node display naming is clearer.
Install / Upgrade
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | sudo bash -s -- --channel rc --version v4.22.0-rc.1To deploy the Docker agent from your Pulse instance:
curl -fsSL https://<your-pulse-host>/install-docker-agent.sh \ | sudo bash -s -- --url https://<your-pulse-host> --token <api-token>Upgrade Notes
- Backup alert thresholds before upgrading. Older installs may still have
/etc/pulse/alerts.jsonwith plain numeric threshold values. The new hysteresis-aware parser rejects that layout and Pulse falls back to factory defaults. Before you update, copy the file somewhere safe. After the upgrade, watchjournalctl -u pulse-backendforFailed to load alert configuration. If you see it, rename the old file (for examplesudo mv /etc/pulse/alerts.json /etc/pulse/alerts.json.bak) and restart (sudo systemctl restart pulse-backend) so the service regenerates a compatible config. Power users can preserve custom numbers by rewriting them as{ "trigger": <value>, "clear": <value-5> }pairs prior to restarting. - Global “disable offline alerts” toggles now persist. Backend support for the new switches is included in this RC, so disabling offline alerts for nodes, PBS, or Docker hosts takes effect immediately and clears any existing offline alarms.
Assets
| File | Description |
|---|---|
pulse-v4.22.0-rc.1-linux-amd64.tar.gz | Linux amd64 binary + Docker agent |
pulse-v4.22.0-rc.1-linux-arm64.tar.gz | Linux arm64 binary + Docker agent |
pulse-v4.22.0-rc.1-linux-armv7.tar.gz | Linux armv7 binary + Docker agent |
pulse-v4.22.0-rc.1.tar.gz | Universal bundle containing all binaries + auto-detect launcher |
checksums.txt | SHA256 checksums |
Refer to the docs for Docker monitoring and mock mode configuration for more detail.
v4.21.0
What's Changed
New Features
- Ceph Storage Monitoring - Added comprehensive Ceph cluster monitoring with health status, storage pools, and capacity tracking. The Storage tab now displays Ceph clusters when detected, showing real-time health indicators and detailed pool information.
Bug Fixes
- Fixed handling of read-only squashfs disks in guest aggregation (refs #506)
- Fixed node display to use canonical names by default
- Fixed .env file creation to explicitly disable mock mode by default
- Fixed systemd service to properly load .env file for demo server mock mode
Improvements
- Enhanced storage monitoring to detect and display Ceph-backed storage (RBD, CephFS)
- Added Ceph health indicators with color-coded status badges
- Improved mock data generator to include Ceph cluster simulation
Installation
Install/Update:
# Install script (ProxmoxVE/LXC/systemd) curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash # Docker docker pull rcourtman/pulse:latest docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:latestDownloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.20.0
What's Changed
New Features
- Friendly node display names - Nodes can now display custom names instead of just hostname, making multi-cluster environments easier to navigate
- Shared storage metadata - Storage resources now show which nodes they're shared across, with node count indicators
- Enhanced read-only filesystem support - Better handling of immutable system filesystems (erofs, squashfs, overlay) to prevent false storage alerts in Home Assistant OS and similar appliances
Improvements
- PBS backup polling performance - Optimized backup status checking for faster dashboard updates
- Alert acknowledgement sync - Fixed alert acknowledgements not syncing properly across websocket updates
- Settings tab navigation - Improved settings tab detection and routing behavior
- Storage layout - Tightened storage row layout for better visual density
- Alert history layout - Aligned alert history date headers with backup layout styling
Bug Fixes
- Attempted to address: Alert threshold overrides and discard flow issues
- Attempted to address: Alert regression issues affecting diagnostics
- Fixed demo banner lint warning
- Fixed settings tabs not properly syncing with router
Installation
Install/Update:
# Install script (ProxmoxVE/LXC/systemd) curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash # Docker docker pull rcourtman/pulse:latest docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:latestDownloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.19.2
What's Changed
New Features
- Search History - Filter dropdowns now remember your previous searches for faster navigation
- Guest Power State Indicators - Powered-off guests are now visually highlighted when alerts are enabled, making it easier to spot stopped resources
Improvements
- Enhanced Alert Display - Acknowledged alerts are now treated as resolved on the dashboard for clearer alert status
- Smarter Metric Display - Guest metrics are automatically hidden when nodes are offline or guests are stopped, reducing visual clutter
- Better Visual Feedback - Improved tag overflow indicators and better vertical alignment of IO metrics and badges
- Provider-Specific Email - Email notifications now respect provider-specific configuration overrides for better compatibility
Bug Fixes
- Concurrency & Race Conditions - Fixed multiple race conditions in:
- Alert manager when clearing alerts
- Notification manager on config updates
- WebSocket hub during broadcasts
- Alert history manager for concurrent access
- State snapshots for thread safety
- Dashboard Filter - Fixed handling of duplicate node names in filter dropdowns (#500)
- Disk Monitoring - Properly handle missing disk wearout data instead of showing errors (#498)
Technical Improvements
- Added comprehensive concurrency stress tests for alerts, notifications, WebSocket, metrics history, and rate tracking
- Improved data isolation between concurrent operations with defensive copying
- Better state snapshot handling to prevent data races
Installation
Install/Update:
# Install script (ProxmoxVE/LXC/systemd) curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash # Docker docker pull rcourtman/pulse:latest docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:latestDownloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.19.1
What's Changed
Bug Fixes
- Fixed disk wearout interpretation in alerts - now correctly displays SSD life remaining percentage
- Fixed backups chart date handling to prevent timezone-related display issues
Improvements
- Normalized tooltip styling across the entire application for consistency
- Updated backups chart to "Available backups" with clearer explanation of what data is shown
Installation
Install/Update:
# Install script (ProxmoxVE/LXC/systemd) curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash # Docker docker pull rcourtman/pulse:latest docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:latestDownloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.
v4.19.0
What's Changed
New Features
VM/Container Detail Drawer
- Click on any VM or container row to expand and see additional details
- Shows OS information, IP addresses, network interfaces, and disk breakdown
- Collapsible drawer with persistent state per guest
Per-Disk Guest Alerts
- Individual disk monitoring for VMs and containers with multiple disks
- Alerts now trigger for each disk independently instead of just the first disk
- Detailed disk status information with specific error messages
Sortable Node Summary Table
- Click column headers to sort nodes by name, status, uptime, CPU, memory, disk, temperature, or counts
- Click again to reverse sort order, third click returns to default
- Makes it easier to find nodes with high resource usage or issues
Powered-Off Alert Toggle
- New setting to enable/disable alerts for powered-off VMs and containers
- Useful for environments where some guests are intentionally stopped
- Prevents alert noise from expected shutdowns
Improvements
Alert Time Thresholds
- Added default time thresholds to prevent "hair-trigger" alerts
- Guest alerts: 10 second delay, Node alerts: 15 second delay
- Storage/PBS alerts: 30 second delay
- Reduces false positives from brief resource spikes
Dashboard Layout Refinements
- Improved node row styling with better visual hierarchy
- Enhanced VM drawer layout and toggle behavior
- Better disk column layout and presentation
- Refined memory tooltip to show only extras (balloon/swap)
Alert System Enhancements
- Fixed alert durations when using delay thresholds
- Fixed disabled alert webhook delivery
- Better disk wearout interpretation and display in alerts
- Improved host information display in alert messages
Network & Memory Stats
- Exposed guest agent network interface information
- Added extended memory stats (balloon, swap)
- Better handling of guest agent data
UI Polish
- New reusable NodeGroupHeader component with improved styling
- Changed footer text to "Last refresh" for clarity
- Better connection badge UI with last update timestamp
- Handle non-numeric disk RPM values gracefully
Bug Fixes
- Fixed disk wearout parsing for Proxmox disks (fixes #449)
- Fixed wearout interpretation showing incorrect values
- Fixed alert duration calculations with time thresholds (fixes #491)
- Fixed webhook delivery for disabled alerts
- Fixed alert clearing when guests power on/off
Installation
Install/Update:
# Install script (ProxmoxVE/LXC/systemd) curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash # Docker docker pull rcourtman/pulse:latest docker run -d --name pulse -p 7655:7655 -v pulse-data:/etc/pulse rcourtman/pulse:latestDownloads
Pre-built binaries available below for linux-amd64, linux-arm64, and linux-armv7.