Pulse/docs/INSTALL.md
Pulse Monitor 4675b5bf92 improve: clearer VM disk monitoring error messages (addresses #348, #344)
- Add detailed logging when VM disk monitoring fails due to permissions
- Explain Proxmox 9 limitation: API tokens cannot access guest agent data (PVE bug #1373)
- Explain Proxmox 8 requirements: VM.Monitor permission and privsep=0 for tokens
- Update setup script to show appropriate warnings for each PVE version
- Update FAQ with troubleshooting steps for 0% disk usage on VMs
- Log messages now clearly indicate workarounds for each scenario

The core issue: Proxmox 9 removed VM.Monitor permission and the replacement
permissions don't allow API tokens to access guest agent filesystem info.
This is a Proxmox upstream bug that affects their own web UI as well.

For users experiencing this issue:
- PVE 9: Use root@pam credentials or wait for Proxmox to fix upstream
- PVE 8: Ensure token has VM.Monitor and privsep=0
- All versions: QEMU guest agent must be installed in VMs
2025-08-25 09:00:40 +00:00

3.1 KiB

Installation Guide

Quick Install

The official installer automatically detects your environment and chooses the best installation method:

curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash

The installer will prompt you for the port (default: 7655). To skip the prompt, set the environment variable:

FRONTEND_PORT=8080 curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash

Installation Methods

Proxmox VE Hosts

When run on a Proxmox VE host, the installer automatically:

  1. Creates a lightweight LXC container
  2. Installs Pulse inside the container
  3. Configures networking and security

Quick Mode (recommended):

  • 1GB RAM, 4GB disk, 2 CPU cores
  • Unprivileged container with firewall
  • Auto-starts with your host
  • Takes about 1 minute

Advanced Mode:

  • Customize all container settings
  • Choose specific network bridges and storage
  • Configure static IP if needed
  • Set custom port (default: 7655)

Standard Linux Systems

On Debian/Ubuntu systems, the installer:

  1. Installs required dependencies
  2. Downloads the latest Pulse binary
  3. Creates a systemd service
  4. Starts Pulse automatically

Docker

For containerized deployments:

docker run -d -p 7655:7655 -v pulse_data:/data rcourtman/pulse:latest

See Docker Guide for advanced options.

Updating

For LXC Containers

pct exec <container-id> -- update

For Standard Installations

curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash

For Docker

docker pull rcourtman/pulse:latest
docker stop pulse
docker rm pulse
docker run -d --name pulse -p 7655:7655 -v pulse_data:/data rcourtman/pulse:latest

Version Management

Install Specific Version

curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --version v4.8.0

Install Release Candidate

curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -s -- --rc

Troubleshooting

Permission Denied

If you encounter permission errors, you may need to run with sudo on some systems, though most installations (including LXC containers) run as root and don't need it.

Container Creation Failed

Ensure you have:

  • Available container IDs (check with pct list)
  • Sufficient storage space
  • Network bridge configured

Port Already in Use

Pulse uses port 7655 by default. You can change it during installation or check current usage with:

sudo netstat -tlnp | grep 7655

To use a different port during installation:

FRONTEND_PORT=8080 curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash

Uninstalling

From LXC Container

pct stop <container-id>
pct destroy <container-id>

From Standard System

sudo systemctl stop pulse
sudo systemctl disable pulse
sudo rm -rf /opt/pulse /etc/pulse
sudo rm /etc/systemd/system/pulse.service

Docker

docker stop pulse
docker rm pulse
docker volume rm pulse_data  # Warning: deletes all data