Find a file
Pulse Monitor bb3f783b59 refactor: implement directory-based auto-update approach
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)
2025-08-10 09:48:53 +00:00
.devdata/alerts fix: address additional critical bugs and security vulnerabilities 2025-08-09 10:54:10 +01:00
cmd/pulse feat: add encrypted config export/import for automation 2025-08-05 21:45:25 +00:00
docs docs: remove resolved Proxmox helper issue documentation 2025-08-09 11:59:12 +00:00
frontend-modern feat: add 'Recommended' label to API Token option 2025-08-10 09:32:00 +00:00
internal refactor: implement directory-based auto-update approach 2025-08-10 09:48:53 +00:00
pkg feat: major improvements to cluster detection, auto-registration, and UI 2025-08-08 21:25:28 +00:00
screenshots Add Updates UI to Settings page 2025-08-07 18:17:13 +00:00
scripts refactor: implement directory-based auto-update approach 2025-08-10 09:48:53 +00:00
testing-tools feat: major improvements to cluster detection, auto-registration, and UI 2025-08-08 21:25:28 +00:00
.dockerignore Add Docker deployment files for production readiness 2025-08-03 16:18:18 +00:00
.env.example docs: update all documentation for simplified configuration 2025-08-09 09:39:23 +00:00
.gitignore chore: clean up repository 2025-08-06 21:55:36 +00:00
build-release.sh refactor: implement directory-based auto-update approach 2025-08-10 09:48:53 +00:00
docker-compose.yml Remove PBS summary card and fix backup chart timezone 2025-08-08 15:30:28 +00:00
docker-entrypoint.sh fix: Docker permission issues and alert history file access 2025-08-10 06:51:45 +00:00
Dockerfile Remove PBS summary card and fix backup chart timezone 2025-08-08 15:30:28 +00:00
go.mod fix: release channel persistence and expanded .env support 2025-08-08 23:19:26 +00:00
go.sum fix: update dependencies to address security vulnerabilities 2025-08-08 22:38:59 +00:00
install.sh refactor: implement directory-based auto-update approach 2025-08-10 09:48:53 +00:00
LICENSE fix: consolidate to encrypted-only configuration system 2025-08-03 11:19:32 +00:00
README.md chore: remove unused updater scripts and update docs for manual refresh 2025-08-09 21:50:53 +00:00
VERSION fix: enable PBS backup monitoring by default 2025-08-10 08:27:20 +00:00

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.

Dashboard

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

Screenshots →

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)

  1. Open http://<your-server>:7655
  2. Settings → Nodes → Shows discovered nodes automatically
  3. Click "Setup Script" to copy one-liner
  4. Run script on Proxmox node - auto-configures everything

Option 2: Manual

  1. Settings → Nodes → Add Node
  2. Enter credentials manually
  3. 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

📖 Full Configuration Guide →

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

License

MIT - See LICENSE