Update docs to reflect the simplified temperature monitoring architecture: - Remove references to pulse-sensor-proxy throughout - Update TEMPERATURE_MONITORING.md to focus on unified agent approach - Update CONFIGURATION.md, DEPLOYMENT_MODELS.md, FAQ.md - Remove SECURITY_CHANGELOG.md (proxy-specific security notes) - Clarify current recommended setup in various guides
4.7 KiB
Automatic Updates
Pulse 5.0 introduces one-click updates for supported deployment types, making it easy to keep your monitoring system up to date.
Supported Deployment Types
| Deployment | Auto-Update | Method |
|---|---|---|
| ProxmoxVE LXC | ✅ Yes | In-app update button |
| Systemd Service | ✅ Yes | In-app update button |
| Docker | ❌ Manual | Pull new image |
| Source Build | ❌ Manual | Git pull + rebuild |
Using One-Click Updates
When an Update is Available
- Navigate to Settings → System → Updates
- If an update is available, you'll see an "Install Update" button
- Click the button to open the confirmation dialog
- Review the update details:
- Current version → New version
- Estimated time
- Changelog highlights
- Click "Install Update" to begin
Update Process
- Download: New version is downloaded
- Backup: Current installation is backed up
- Apply: Files are updated
- Restart: Service restarts automatically
- Verify: Health check confirms success
Progress Tracking
A real-time progress modal shows:
- Current step
- Download progress
- Any warnings or errors
- Automatic page reload on success
Configuration
Update Preferences
In Settings → System → Updates:
| Setting | Description |
|---|---|
| Update Channel | Stable (recommended) or Release Candidate |
| Auto-Check | Background update check interval (hours); 0 disables |
Stored Settings (system.json)
Auto-update preferences are stored in system.json and edited via the UI.
{
"autoUpdateEnabled": false,
"updateChannel": "stable",
"autoUpdateCheckInterval": 24,
"autoUpdateTime": "03:00"
}
Note: autoUpdateTime is stored for UI reference. The systemd timer still runs on its own schedule (02:00 + jitter). Background update checks follow autoUpdateCheckInterval.
Manual Update Methods
Docker
# Pull latest image
docker pull rcourtman/pulse:latest
# Restart container
docker compose down && docker compose up -d
If you use the legacy docker-compose binary, replace docker compose with docker-compose.
ProxmoxVE LXC (Manual)
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash
This script installs/updates the Pulse server. Agent updates use the /install.sh command generated in Settings → Agents → Installation commands.
Systemd Service (Manual)
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash
This script installs/updates the Pulse server. Agent updates use the /install.sh command generated in Settings → Agents → Installation commands.
Source Build
cd /path/to/pulse
git pull
make build
sudo systemctl restart pulse
Rollback
If an update causes issues:
Automatic Rollback
Pulse creates a backup before updating. If the update fails:
- The previous version is automatically restored
- Service restarts with the old version
- Error details are logged
Manual Rollback
Backups created by in-app updates are stored as backup-<timestamp>/ folders inside the Pulse data directory (/etc/pulse or /data). If that directory is not writable, Pulse falls back to /tmp/pulse-backup-<timestamp>.
There is no rollback UI. To revert, stop Pulse, restore the backup contents to /opt/pulse, then restart.
Example (systemd/LXC):
sudo systemctl stop pulse
sudo cp -a /etc/pulse/backup-<timestamp>/pulse /opt/pulse/pulse
sudo cp -a /etc/pulse/backup-<timestamp>/VERSION /opt/pulse/VERSION
sudo rm -rf /opt/pulse/data /opt/pulse/config
sudo cp -a /etc/pulse/backup-<timestamp>/data /opt/pulse/data
sudo cp -a /etc/pulse/backup-<timestamp>/config /opt/pulse/config
sudo cp -a /etc/pulse/backup-<timestamp>/.env /opt/pulse/.env
sudo systemctl start pulse
Update History
History entries are stored in update-history.jsonl under the Pulse data directory (/etc/pulse or /data), and exposed via GET /api/updates/history (admin auth required).
Systemd/LXC update runs write detailed logs to /var/log/pulse/update-<timestamp>.log.
Troubleshooting
Update button not showing
- Check if your deployment supports auto-update
- Verify an update is actually available
- Ensure you have the latest frontend loaded (hard refresh)
Update failed
- Check the error message in the progress modal
- Review logs:
journalctl -u pulse -n 100or/var/log/pulse/update-<timestamp>.log - Verify disk space is available
- Check network connectivity to GitHub
Service won't restart after update
- Check systemd status:
systemctl status pulse - View recent logs:
journalctl -u pulse -f - Manually restore from backup if needed