Update docker.io/rcourtman/pulse Docker tag to v4.31.0
No problems upgrading the Docker container with a Docker compose yaml file by means of Watchtower DevOps resp. GitOps with dependency update facilitated by Mend's Renovate Bot.
Including updating all docker and host agents manually.
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| docker.io/rcourtman/pulse | minor | 4.27.1 -> 4.31.0 |
Release Notes
rcourtman/Pulse (docker.io/rcourtman/pulse)
v4.31.0: Pulse v4.31.0
β Release Asset Validation (Post-Publish): PASSED
Assets were revalidated after publication due to a release edit.
Status: Live release assets re-validated β
Validated: 2025-11-14 00:19:26 UTC
Workflow: Validate Release Assets #β32
Validation Summary
- All required assets present β
- Checksums verified β
- Version strings correct β
- Binary architectures validated β
What's Changed
New Features
- Added HTTP mode to
pulse-sensor-proxy, letting proxies register via the API and receive temperature polling over HTTPS for multi-instance deployments (#β571). - Sensor-proxy installer now auto-populates
allowed_nodesso temperature monitoring works immediately after installation, even on clustered Proxmox deployments.
Bug Fixes
- Restored temperature monitoring for standalone Proxmox, clustered nodes, and LXC environments by fixing detection logic and SSH fallbacks (#β571).
- Added context deadlines so local temperature collectors cannot hang the proxy when a node stops responding (#β571).
- Hardened the security fallback so the proxy never drops into a permissive mode; localhost-only access is enforced during degraded scenarios and Codex security review findings are addressed.
- Improved Windows host agent installer logging and diagnostics for cleaner upgrades (related to #β709).
Improvements
- Raised startup rate limits so Pulse can handle large bursts of telemetry connections without throttling.
- Expanded sensor-proxy diagnostics and tests to surface registration issues earlier.
- Cleaned up documentation (removed the obsolete installer-v2 rollout plan and CONTRIBUTING-SCRIPTS notes).
Breaking Changes
None.
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.31.0
docker stop pulse && docker rm pulse || true
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.31.0
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.31.0/pulse-v4.31.0-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.31.0-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.31.0 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball with auto-detected architecture:
pulse-v4.31.0.tar.gz - Architecture-specific server builds:
pulse-v4.31.0-linux-{amd64,arm64,armv7,armv6,386}.tar.gz - Docker/VM installer script:
install.shwith companion SHA256 files - Host agent packages for macOS (amd64/arm64) and Windows (386/amd64/arm64)
- Helm chart:
pulse-4.31.0.tgz - SHA256 manifests:
checksums.txtplus per-file.sha256
Notes
- Re-run the sensor-proxy installer to switch existing deployments to HTTP mode; the installer now auto-registers allowed nodes and enforces localhost-only fallbacks.
- Docker images
rcourtman/pulse:v4.31.0andrcourtman/pulse-docker-agent:v4.31.0are already pushed for amd64 and arm64. - If you manage Windows hosts, expect clearer installer logs when upgrading to this release.
v4.31.0: Pulse v4.31.0
β Release Asset Validation (Post-Publish): PASSED
Assets were revalidated after publication due to a release edit.
Status: Live release assets re-validated β
Validated: 2025-11-14 00:19:26 UTC
Workflow: Validate Release Assets #β32
Validation Summary
- All required assets present β
- Checksums verified β
- Version strings correct β
- Binary architectures validated β
What's Changed
New Features
- Added HTTP mode to
pulse-sensor-proxy, letting proxies register via the API and receive temperature polling over HTTPS for multi-instance deployments (#β571). - Sensor-proxy installer now auto-populates
allowed_nodesso temperature monitoring works immediately after installation, even on clustered Proxmox deployments.
Bug Fixes
- Restored temperature monitoring for standalone Proxmox, clustered nodes, and LXC environments by fixing detection logic and SSH fallbacks (#β571).
- Added context deadlines so local temperature collectors cannot hang the proxy when a node stops responding (#β571).
- Hardened the security fallback so the proxy never drops into a permissive mode; localhost-only access is enforced during degraded scenarios and Codex security review findings are addressed.
- Improved Windows host agent installer logging and diagnostics for cleaner upgrades (related to #β709).
Improvements
- Raised startup rate limits so Pulse can handle large bursts of telemetry connections without throttling.
- Expanded sensor-proxy diagnostics and tests to surface registration issues earlier.
- Cleaned up documentation (removed the obsolete installer-v2 rollout plan and CONTRIBUTING-SCRIPTS notes).
Breaking Changes
None.
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.31.0
docker stop pulse && docker rm pulse || true
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.31.0
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.31.0/pulse-v4.31.0-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.31.0-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.31.0 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball with auto-detected architecture:
pulse-v4.31.0.tar.gz - Architecture-specific server builds:
pulse-v4.31.0-linux-{amd64,arm64,armv7,armv6,386}.tar.gz - Docker/VM installer script:
install.shwith companion SHA256 files - Host agent packages for macOS (amd64/arm64) and Windows (386/amd64/arm64)
- Helm chart:
pulse-4.31.0.tgz - SHA256 manifests:
checksums.txtplus per-file.sha256
Notes
- Re-run the sensor-proxy installer to switch existing deployments to HTTP mode; the installer now auto-registers allowed nodes and enforces localhost-only fallbacks.
- Docker images
rcourtman/pulse:v4.31.0andrcourtman/pulse-docker-agent:v4.31.0are already pushed for amd64 and arm64. - If you manage Windows hosts, expect clearer installer logs when upgrading to this release.
v4.30.0
v4.29.5: Pulse v4.29.5
β Release Asset Validation (Post-Publish): PASSED
Assets were revalidated after publication due to a release edit.
Status: Live release assets re-validated β
Validated: 2025-11-12 17:34:40 UTC
Workflow: Validate Release Assets #β30
Validation Summary
- All required assets present β
- Checksums verified β
- Version strings correct β
- Binary architectures validated β
βββββββββββββββββββββββββββββββββββββββββββββββββ
What's Changed
New Features
Host Agent Docker Support: Added Snap Docker support to the host-agent installer for improved container monitoring on systems using Snap-packaged Docker.
Kubernetes Helm Chart: Added production-grade Helm chart with GitHub Pages repository distribution and OCI annotations for improved discoverability and package management.
Bug Fixes
Security - Path Traversal: Fixed a path traversal vulnerability in the host-agent download endpoint (#β669).
Temperature Monitoring: Fixed temperature monitoring on standalone Proxmox nodes (#β571).
Guest Agent Compatibility: Fixed guest agent OS info calls that were causing OpenBSD VM crashes (#β692).
Host Agent Downloads: Fixed Windows and macOS host agent downloads for bare metal installs (#β684).
Disk Metrics: Filtered read-only filesystems from host agent disk metrics (#β690).
Update Checker: Fixed update checker to skip draft releases, preventing malformed download URLs.
Notification Manager: Fixed deadlock in notification manager Stop() function.
CSRF Token Validation: Fixed CSRF token validation failure in Settings diagnostics endpoints (#β600).
Sensor Proxy in LXC: Fixed pulse-sensor-proxy pvecm errors when running in LXC containers (#β600).
SELinux Compatibility: Fixed SELinux compatibility in host agent installer.
Release Asset Checksums: Fixed checksum file generation for backward compatibility with both old and new release formats.
Frontend Authentication: Fixed router to allow frontend pages without authentication for diagnostic purposes.
Improvements
Diagnostic Capabilities: Enhanced diagnostics to capture DOM structure, JavaScript errors, and browser API access; added comprehensive diagnostic test for login issues.
Integration Tests: Improved integration test suite with pre-built Docker images, health check waits, container logging, and port mapping verification.
Update Service: Refactored update service to eliminate polling and race conditions, with improved consistency handling.
Demo Server Updates: Added manual trigger support and improved asset checking with redirect following.
Release Automation: Added release workflow validation gates and improved asset management by reducing duplicate downloads.
Docker Images: Added OCI labels to Docker images and --version flag to docker-agent for better version tracking.
Breaking Changes
None
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.29.5
docker stop pulse && docker rm pulse
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.29.5
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.29.5/pulse-v4.29.5-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.29.5-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.29.5 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball (auto-detects architecture):
pulse-v4.29.5.tar.gz - Architecture-specific:
amd64,arm64,armv7,armv6,386 - Host agent packages: macOS (amd64/arm64), Windows (amd64/arm64/386), Linux (amd64/arm64/armv7/armv6/386)
- Sensor proxy: Linux (amd64/arm64/armv7/armv6/386)
- Helm chart:
pulse-4.29.5.tgz - SHA256 checksums:
checksums.txt
Notes
- Security Update: This release includes a critical security fix for a path traversal vulnerability in the host-agent download endpoint. Update recommended.
- Improved Compatibility: Fixed issues affecting OpenBSD VMs, standalone Proxmox nodes, and LXC containers for broader environment support.
- Helm Chart Available: Production-ready Kubernetes deployment now available via GitHub Pages Helm repository for easier cluster installations.
- Enhanced Diagnostics: Improved troubleshooting capabilities with better diagnostic tools to help identify and resolve issues.
v4.29.5: Pulse v4.29.5
β Release Asset Validation (Post-Publish): PASSED
Assets were revalidated after publication due to a release edit.
Status: Live release assets re-validated β
Validated: 2025-11-12 17:34:40 UTC
Workflow: Validate Release Assets #β30
Validation Summary
- All required assets present β
- Checksums verified β
- Version strings correct β
- Binary architectures validated β
βββββββββββββββββββββββββββββββββββββββββββββββββ
What's Changed
New Features
Host Agent Docker Support: Added Snap Docker support to the host-agent installer for improved container monitoring on systems using Snap-packaged Docker.
Kubernetes Helm Chart: Added production-grade Helm chart with GitHub Pages repository distribution and OCI annotations for improved discoverability and package management.
Bug Fixes
Security - Path Traversal: Fixed a path traversal vulnerability in the host-agent download endpoint (#β669).
Temperature Monitoring: Fixed temperature monitoring on standalone Proxmox nodes (#β571).
Guest Agent Compatibility: Fixed guest agent OS info calls that were causing OpenBSD VM crashes (#β692).
Host Agent Downloads: Fixed Windows and macOS host agent downloads for bare metal installs (#β684).
Disk Metrics: Filtered read-only filesystems from host agent disk metrics (#β690).
Update Checker: Fixed update checker to skip draft releases, preventing malformed download URLs.
Notification Manager: Fixed deadlock in notification manager Stop() function.
CSRF Token Validation: Fixed CSRF token validation failure in Settings diagnostics endpoints (#β600).
Sensor Proxy in LXC: Fixed pulse-sensor-proxy pvecm errors when running in LXC containers (#β600).
SELinux Compatibility: Fixed SELinux compatibility in host agent installer.
Release Asset Checksums: Fixed checksum file generation for backward compatibility with both old and new release formats.
Frontend Authentication: Fixed router to allow frontend pages without authentication for diagnostic purposes.
Improvements
Diagnostic Capabilities: Enhanced diagnostics to capture DOM structure, JavaScript errors, and browser API access; added comprehensive diagnostic test for login issues.
Integration Tests: Improved integration test suite with pre-built Docker images, health check waits, container logging, and port mapping verification.
Update Service: Refactored update service to eliminate polling and race conditions, with improved consistency handling.
Demo Server Updates: Added manual trigger support and improved asset checking with redirect following.
Release Automation: Added release workflow validation gates and improved asset management by reducing duplicate downloads.
Docker Images: Added OCI labels to Docker images and --version flag to docker-agent for better version tracking.
Breaking Changes
None
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.29.5
docker stop pulse && docker rm pulse
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.29.5
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.29.5/pulse-v4.29.5-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.29.5-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.29.5 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball (auto-detects architecture):
pulse-v4.29.5.tar.gz - Architecture-specific:
amd64,arm64,armv7,armv6,386 - Host agent packages: macOS (amd64/arm64), Windows (amd64/arm64/386), Linux (amd64/arm64/armv7/armv6/386)
- Sensor proxy: Linux (amd64/arm64/armv7/armv6/386)
- Helm chart:
pulse-4.29.5.tgz - SHA256 checksums:
checksums.txt
Notes
- Security Update: This release includes a critical security fix for a path traversal vulnerability in the host-agent download endpoint. Update recommended.
- Improved Compatibility: Fixed issues affecting OpenBSD VMs, standalone Proxmox nodes, and LXC containers for broader environment support.
- Helm Chart Available: Production-ready Kubernetes deployment now available via GitHub Pages Helm repository for easier cluster installations.
- Enhanced Diagnostics: Improved troubleshooting capabilities with better diagnostic tools to help identify and resolve issues.
v4.28.0: Pulse v4.28.0
What's Changed
New Features
- Sparkline visualization mode: Added new sparklines view for metrics, providing compact time-series graphs alongside traditional table views for CPU, memory, disk, and network metrics (#β886368ec4)
- mdadm RAID monitoring: Host agents now detect and monitor mdadm RAID arrays, reporting array status, device health, and degraded states (#bb7ca93c1)
- Webhook private IP allowlist: Added configurable allowlist for webhook notifications to private IP addresses, preventing SSRF attacks while allowing legitimate internal webhooks (#β673)
- Expanded architecture support: Added linux-386, linux-armv6, and windows-386 builds for broader device compatibility, including older systems and 32-bit Windows (#β674)
Bug Fixes
- API token persistence: Fixed dark mode toggle wiping API tokens; made api_tokens.json the authoritative source for token storage (#β685)
- Offline alert thresholds: Fixed offline alert state not displaying correctly in thresholds UI (#β683)
- Bootstrap token paths: Fixed bootstrap-token command to use correct environment variable and default paths in Docker deployments (#β680)
- Temperature monitoring: Fixed persistent temperature monitoring issues for standalone Proxmox nodes, ensuring sensors remain active across restarts (#β571)
- Docker host display names: Fixed custom display names not showing in main Docker tab RESOURCE column (#β662)
- Upgrade path authentication: Fixed upgrade path when DISABLE_AUTH detected but no credentials exist, preventing setup loop (#β678)
- LXC diagnostics: Fixed diagnostics incorrectly warning about /run mount in Docker containers (#β600)
- Sensor proxy LXC: Fixed pulse-sensor-proxy configuration not being applied in LXC containers (#β600)
- Temperature proxy installation: Fixed unbound variable error in temperature proxy installation script (#β438d3b6b7)
Improvements
- Bootstrap token UI: Added Proxmox LXC-specific instructions to bootstrap token UI, clarifying setup for container deployments
- Update error visibility: Update errors now surface to the UI instead of failing silently, providing better feedback when auto-updates encounter issues (#β671)
- Table and sparkline layout: Improved table column widths and sparkline visibility for better data density and readability
- Documentation: Added webhook allowlist configuration guide and sponsorship information
Breaking Changes
None
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.28.0
docker stop pulse && docker rm pulse
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.28.0
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.28.0/pulse-v4.28.0-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.28.0-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.28.0 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball (auto-detects architecture):
pulse-v4.28.0.tar.gz - Architecture-specific:
amd64,arm64,armv7,armv6,386 - Host agent packages: macOS (amd64/arm64), Windows (amd64/arm64/386), Linux (amd64/arm64/armv7/armv6/386)
- Sensor proxy: Linux (amd64/arm64/armv7/armv6/386)
- Helm chart:
pulse-4.28.0.tgz - SHA256 checksums:
checksums.txt
Notes
- Sparklines: Toggle between table and sparklines view using the new view switcher in the metrics interface
- RAID monitoring: mdadm arrays are automatically detected on hosts running pulse-host-agent
- Webhook security: Review the documentation for configuring the webhook private IP allowlist if you need to send notifications to internal services
- Architecture expansion: Older devices can now use the 386 and armv6 builds for better compatibility
v4.28.0: Pulse v4.28.0
What's Changed
New Features
- Sparkline visualization mode: Added new sparklines view for metrics, providing compact time-series graphs alongside traditional table views for CPU, memory, disk, and network metrics (#β886368ec4)
- mdadm RAID monitoring: Host agents now detect and monitor mdadm RAID arrays, reporting array status, device health, and degraded states (#bb7ca93c1)
- Webhook private IP allowlist: Added configurable allowlist for webhook notifications to private IP addresses, preventing SSRF attacks while allowing legitimate internal webhooks (#β673)
- Expanded architecture support: Added linux-386, linux-armv6, and windows-386 builds for broader device compatibility, including older systems and 32-bit Windows (#β674)
Bug Fixes
- API token persistence: Fixed dark mode toggle wiping API tokens; made api_tokens.json the authoritative source for token storage (#β685)
- Offline alert thresholds: Fixed offline alert state not displaying correctly in thresholds UI (#β683)
- Bootstrap token paths: Fixed bootstrap-token command to use correct environment variable and default paths in Docker deployments (#β680)
- Temperature monitoring: Fixed persistent temperature monitoring issues for standalone Proxmox nodes, ensuring sensors remain active across restarts (#β571)
- Docker host display names: Fixed custom display names not showing in main Docker tab RESOURCE column (#β662)
- Upgrade path authentication: Fixed upgrade path when DISABLE_AUTH detected but no credentials exist, preventing setup loop (#β678)
- LXC diagnostics: Fixed diagnostics incorrectly warning about /run mount in Docker containers (#β600)
- Sensor proxy LXC: Fixed pulse-sensor-proxy configuration not being applied in LXC containers (#β600)
- Temperature proxy installation: Fixed unbound variable error in temperature proxy installation script (#β438d3b6b7)
Improvements
- Bootstrap token UI: Added Proxmox LXC-specific instructions to bootstrap token UI, clarifying setup for container deployments
- Update error visibility: Update errors now surface to the UI instead of failing silently, providing better feedback when auto-updates encounter issues (#β671)
- Table and sparkline layout: Improved table column widths and sparkline visibility for better data density and readability
- Documentation: Added webhook allowlist configuration guide and sponsorship information
Breaking Changes
None
Installation
Quick Install (systemd / LXC / Proxmox VE):
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash
Docker:
docker pull rcourtman/pulse:v4.28.0
docker stop pulse && docker rm pulse
docker run -d --name pulse \
--restart unless-stopped \
-p 7655:7655 -p 7656:7656 \
-v /opt/pulse/data:/data \
rcourtman/pulse:v4.28.0
Manual Binary (amd64 example):
curl -LO https://github.com/rcourtman/Pulse/releases/download/v4.28.0/pulse-v4.28.0-linux-amd64.tar.gz
sudo systemctl stop pulse
sudo tar -xzf pulse-v4.28.0-linux-amd64.tar.gz -C /usr/local/bin pulse
sudo systemctl start pulse
Helm:
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
--version 4.28.0 \
--namespace pulse \
--create-namespace
Downloads
- Universal tarball (auto-detects architecture):
pulse-v4.28.0.tar.gz - Architecture-specific:
amd64,arm64,armv7,armv6,386 - Host agent packages: macOS (amd64/arm64), Windows (amd64/arm64/386), Linux (amd64/arm64/armv7/armv6/386)
- Sensor proxy: Linux (amd64/arm64/armv7/armv6/386)
- Helm chart:
pulse-4.28.0.tgz - SHA256 checksums:
checksums.txt
Notes
- Sparklines: Toggle between table and sparklines view using the new view switcher in the metrics interface
- RAID monitoring: mdadm arrays are automatically detected on hosts running pulse-host-agent
- Webhook security: Review the documentation for configuring the webhook private IP allowlist if you need to send notifications to internal services
- Architecture expansion: Older devices can now use the 386 and armv6 builds for better compatibility