Implements PULSE_DISABLE_DOCKER_UPDATE_ACTIONS environment variable and Settings UI toggle to hide Docker container update buttons while still allowing update detection. This addresses requests for a 'read-only' mode in production environments. Backend: - Add DisableDockerUpdateActions to SystemSettings and Config structs - Add environment variable parsing with EnvOverrides tracking - Expose setting in GET/POST /api/config/system endpoints - Block update API with 403 when disabled (defense-in-depth) Frontend: - Add disableDockerUpdateActions to SystemConfig type - Create systemSettings store for reactive access to server config - Add Docker Settings card in Settings → Agents tab with toggle - Show env lock badge when set via environment variable UpdateButton improvements: - Properly handle loading state (disabled + visual indicator) - Use Solid.js Show components for proper reactivity - Show read-only UpdateBadge when updates disabled - Show interactive button when updates enabled Closes discussion #982
🚀 Overview
Pulse is a modern, unified dashboard for monitoring your infrastructure across Proxmox, Docker, and Kubernetes. It consolidates metrics, alerts, and AI-powered insights from all your systems into a single, beautiful interface.
Designed for homelabs, sysadmins, and MSPs who need a "single pane of glass" without the complexity of enterprise monitoring stacks.
✨ Features
Core Monitoring
- Unified Monitoring: View health and metrics for PVE, PBS, PMG, Docker, and Kubernetes in one place
- Smart Alerts: Get notified via Discord, Slack, Telegram, Email, and more
- Auto-Discovery: Automatically finds Proxmox nodes on your network
- Metrics History: Persistent storage with configurable retention
- Backup Explorer: Visualize backup jobs and storage usage
AI-Powered
- Chat Assistant: Ask questions about your infrastructure in natural language
- Patrol: Background health checks that generate findings on a schedule
- Alert Analysis: Optional AI analysis when alerts fire
- Cost Tracking: Track usage and costs per provider/model
Multi-Platform
- Proxmox VE/PBS/PMG: Full monitoring and management
- Kubernetes: Complete K8s cluster monitoring via agents
- Docker/Podman: Container and Swarm service monitoring
- OCI Containers: Proxmox 9.1+ native container support
Security & Operations
- Secure by Design: Credentials encrypted at rest, strict API scoping
- One-Click Updates: Easy upgrades for supported deployments
- OIDC/SSO: Enterprise authentication support
- Privacy Focused: No telemetry, all data stays on your server
⚡ Quick Start
Option 1: Proxmox LXC (Recommended)
Run this one-liner on your Proxmox host to create a lightweight LXC container:
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash
Option 2: Docker
docker run -d \
--name pulse \
-p 7655:7655 \
-v pulse_data:/data \
--restart unless-stopped \
rcourtman/pulse:latest
Access the dashboard at http://<your-ip>:7655.
📚 Documentation
- Installation Guide: Detailed instructions for Docker, Kubernetes, and bare metal.
- Configuration: Setup authentication, notifications, and advanced settings.
- Security: Learn about Pulse's security model and best practices.
- API Reference: Integrate Pulse with your own tools.
- Architecture: High-level system design and data flow.
- Troubleshooting: Solutions to common issues.
- Agent Security: Details on signed updates and verification.
- Docker Monitoring: Setup and management of Docker agents.
🌐 Community Integrations
Community-maintained integrations and addons:
- Home Assistant Addons - Run Pulse Agent and Pulse Server as Home Assistant addons.
🚀 Pulse Pro
Pulse Pro unlocks AI Patrol — automated background monitoring that catches issues before they become outages.
| Feature | Free | Pro |
|---|---|---|
| Real-time dashboard | ✅ | ✅ |
| Threshold alerts | ✅ | ✅ |
| AI Chat (BYOK) | ✅ | ✅ |
| AI Patrol (automated scans) | — | ✅ |
| Root cause analysis | — | ✅ |
| Priority support | — | ✅ |
AI Patrol runs on your schedule (every 5 minutes to every 24 hours) and finds:
- ZFS pools approaching capacity
- Backup jobs that silently failed
- VMs stuck in restart loops
- Clock drift across cluster nodes
- Container health check failures
Try the live demo → or learn more at pulserelay.pro
❤️ Support Pulse Development
Pulse is maintained by one person. Sponsorships help cover the costs of the demo server, development tools, and domains. If Pulse saves you time, please consider supporting the project!
📄 License
MIT © Richard Courtman. Use of Pulse Pro is subject to the Terms of Service.
