mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-09 02:44:24 +00:00
aialertsdashboarddockerdocker-monitoringgohomelabhost-monitoringinfrastructure-monitoringkubernetesmonitoringproxmoxproxmox-backup-serverproxmox-mail-gatewayproxmox-vereactself-hostedtypescriptwebhooks
Replaced sudo-based updater with a cleaner directory-based approach: - Pulse binary now installs to /opt/pulse/bin/pulse (owned by pulse user) - Symlink created at /usr/local/bin/pulse for PATH convenience - Pulse user has full write access to /opt/pulse, enabling self-updates - Removed sudo dependency and security risks - Simplified update logic - no special scripts or permissions needed This is more secure, simpler, and works in all environments (containers, VMs, bare metal) |
||
|---|---|---|
| .devdata/alerts | ||
| cmd/pulse | ||
| docs | ||
| frontend-modern | ||
| internal | ||
| pkg | ||
| screenshots | ||
| scripts | ||
| testing-tools | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| build-release.sh | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
Pulse for Proxmox
Real-time monitoring for Proxmox VE and PBS with alerts and webhooks.
⚠️ Upgrading from v3? See Migration Guide - automatic upgrades will break.
Features
- Auto-Discovery: Automatically finds and configures Proxmox nodes
- Cluster Support: Detects and monitors entire Proxmox clusters
- Live monitoring of VMs, containers, nodes, storage
- Alerts with email and webhooks (Discord, Slack, Telegram, Teams, ntfy.sh, Gotify)
- Unified view of PBS backups, PVE backups, and snapshots
- PBS push mode for firewalled servers
- Secure Config Export/Import: Encrypted backup and restore
- Dark/light themes, responsive design
- Built with Go for minimal resource usage
Quick Start
Install
# Option A: Proxmox Helper Script (creates LXC container)
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/pulse.sh)"
# Option B: Docker
docker run -d -p 7655:7655 -v pulse_data:/data rcourtman/pulse:latest
# Option C: Manual (existing systems)
curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | sudo bash
Configure
Option 1: Auto-Registration (NEW)
- Open
http://<your-server>:7655 - Settings → Nodes → Shows discovered nodes automatically
- Click "Setup Script" to copy one-liner
- Run script on Proxmox node - auto-configures everything
Option 2: Manual
- Settings → Nodes → Add Node
- Enter credentials manually
- Save
Docker
Basic
docker run -d \
--name pulse \
-p 7655:7655 \
-v pulse_data:/data \
--restart unless-stopped \
rcourtman/pulse:latest
Docker Compose
services:
pulse:
image: rcourtman/pulse:latest
container_name: pulse
ports:
- "7655:7655"
volumes:
- pulse_data:/data
restart: unless-stopped
volumes:
pulse_data:
PBS Agent (Push Mode)
For isolated PBS servers, see PBS Agent documentation
Configuration
Quick start - most settings are in the web UI:
- Settings → Nodes: Add/remove Proxmox instances
- Settings → System: Polling intervals, CORS settings
- Alerts: Thresholds and notifications
For deployment overrides (ports, etc), use environment variables:
# Systemd: sudo systemctl edit pulse-backend
Environment="FRONTEND_PORT=8080"
# Docker: -e FRONTEND_PORT=8080
Backup/Restore
# Export (v4.0.3+)
pulse config export -o backup.enc
# Import
pulse config import -i backup.enc
Or use Settings → Security tab in UI.
Updates
Docker
docker pull rcourtman/pulse:latest
docker stop pulse
docker rm pulse
# Run docker run command again
Manual Install
Settings → System → Check for Updates
After updates complete, refresh your browser (Ctrl+F5 or Cmd+Shift+R) to load the new version.
API
# Status
curl http://localhost:7655/api/status
# Metrics
curl http://localhost:7655/api/metrics
# With authentication (if configured)
curl -H "X-API-Token: your-token" http://localhost:7655/api/status
Troubleshooting
Connection Issues
- Check Proxmox API is accessible (port 8006/8007)
- Verify credentials have PVEAuditor role minimum
- For PBS: ensure API token has Datastore.Audit permission
High CPU/Memory
- Reduce polling interval in Settings
- Check number of monitored nodes
- Disable unused features (backups, snapshots)
Logs
# Docker
docker logs pulse
# Manual
journalctl -u pulse -f
Security
- Credentials stored encrypted (AES-256-GCM)
- Optional API token authentication
- Export/import requires passphrase
- Security Details →
Development
# Frontend
cd frontend-modern
npm install
npm run dev
# Backend
go run cmd/pulse/*.go
Links
License
MIT - See LICENSE
