Pulse for Proxmox VE
A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.
📸 Screenshots
Click to view other UI tabs
📋 Table of Contents
- Quick Start (Docker Compose)
- Configuration
- Deployment
- Features
- System Requirements
- Contributing
- Privacy
- License
- Trademark Notice
- Support
- Troubleshooting
🚀 Quick Start (Docker Compose)
This is the fastest way to get Pulse running.
- Get Files: Clone the repository (
git clone https://github.com/rcourtman/Pulse.git && cd Pulse) or downloaddocker-compose.ymland.env.examplemanually. - Copy
.env:cp .env.example .env - Edit
.env: Fill in your primary Proxmox API details (PROXMOX_HOST,PROXMOX_TOKEN_ID,PROXMOX_TOKEN_SECRET). See Creating a Proxmox API Token if you don't have one. - Run:
docker compose up -d - Access: Open your browser to
http://<your-host-ip>:7655.
🛠️ Configuration
Environment Variables
Pulse is configured using environment variables, typically set in a .env file in the project root.
- Copy Example File: If you haven't already, copy the example file:
cp .env.example .env - Edit
.env: Open.envin a text editor and update the values for your environment(s).
Proxmox VE (Primary Environment)
These are the minimum required variables:
PROXMOX_HOST: URL of your Proxmox server (e.g.,https://192.168.1.10:8006).PROXMOX_TOKEN_ID: Your API Token ID (e.g.,user@pam!tokenid).PROXMOX_TOKEN_SECRET: Your API Token Secret.
Optional variables:
PROXMOX_NODE_NAME: A display name for this endpoint in the UI (defaults toPROXMOX_HOST).PROXMOX_ALLOW_SELF_SIGNED_CERTS: Set totrueif your Proxmox server uses self-signed SSL certificates. Defaults tofalse.PORT: Port for the Pulse server to listen on. Defaults to7655.- (Username/Password fallback exists but API Token is strongly recommended)
Note: For a Proxmox cluster, you only need to provide connection details for one node. Pulse automatically discovers other cluster members.
Multiple Proxmox Environments (Optional)
To monitor separate Proxmox environments (e.g., different clusters, sites) in one Pulse instance, add numbered variables:
PROXMOX_HOST_2,PROXMOX_TOKEN_ID_2,PROXMOX_TOKEN_SECRET_2PROXMOX_HOST_3,PROXMOX_TOKEN_ID_3,PROXMOX_TOKEN_SECRET_3- ...and so on.
Optional numbered variables also exist (e.g., PROXMOX_ALLOW_SELF_SIGNED_CERTS_2, PROXMOX_NODE_NAME_2).
Proxmox Backup Server (PBS) (Optional)
To monitor a PBS instance:
PBS_HOST: URL of your PBS server (e.g.,https://192.168.1.11:8007).PBS_TOKEN_ID: Your PBS API Token ID (e.g.,user@pbs!tokenid). See Creating a Proxmox Backup Server API Token.PBS_TOKEN_SECRET: Your PBS API Token Secret.PBS_NODE_NAME: Important! The internal hostname of your PBS server (e.g.,pbs-server-01). This is usually required for API token auth because the token might lack permission to auto-discover the node name. See details below.PBS_ALLOW_SELF_SIGNED_CERTS: Set totruefor self-signed certificates. Defaults tofalse.PBS_PORT: PBS API port. Defaults to8007.
Note: Currently, only one PBS instance can be configured.
Why PBS_NODE_NAME is Required (Click to Expand)
Pulse needs to query task lists specific to the PBS node (e.g., /api2/json/nodes/{nodeName}/tasks). It attempts to discover this node name automatically by querying /api2/json/nodes. However, this endpoint is often restricted for API tokens (returning a 403 Forbidden error), even for tokens with high privileges, unless the Sys.Audit permission is granted on the root path (/).
Therefore, setting PBS_NODE_NAME in your .env file is the standard and recommended way to ensure Pulse can correctly query task endpoints when using API token authentication. If it's not set and automatic discovery fails due to permissions, Pulse will be unable to fetch task data (backups, verifications, etc.).
How to find your PBS Node Name:
- SSH: Log into your PBS server via SSH and run
hostname. - UI: Log into the PBS web interface. The hostname is typically displayed on the Dashboard under Server Status.
Example: If your PBS connects via https://minipc-pbs.lan:8007 but its internal hostname is proxmox-backup-server, set:
PBS_HOST=https://minipc-pbs.lan:8007
PBS_NODE_NAME=proxmox-backup-server
Creating a Proxmox API Token
Using an API token is the recommended authentication method.
Steps to Create a PVE API Token (Click to Expand)
- Log in to the Proxmox VE web interface.
- Create a dedicated user (optional but recommended):
- Go to
Datacenter→Permissions→Users. - Click
Add. Enter aUser name(e.g., "pulse-monitor"), set Realm toProxmox VE authentication server(pam), set a password, ensureEnabled. ClickAdd.
- Go to
- Create an API token:
- Go to
Datacenter→Permissions→API Tokens. - Click
Add. - Select the
User(e.g., "pulse-monitor@pam") orroot@pam. - Enter a
Token ID(e.g., "pulse"). - Leave
Privilege Separationchecked. ClickAdd. - Important: Copy the
Secretvalue immediately. It's shown only once.
- Go to
- Assign permissions (to User and Token):
- Go to
Datacenter→Permissions. - Add User Permission: Click
Add→User Permission. Path:/, User:pulse-monitor@pam, Role:PVEAuditor, checkPropagate. ClickAdd. - Add Token Permission: Click
Add→API Token Permission. Path:/, API Token:pulse-monitor@pam!pulse, Role:PVEAuditor, checkPropagate. ClickAdd. - Note: The
PVEAuditorrole at the root path (/) withPropagateis crucial.
- Go to
- Update
.env: SetPROXMOX_TOKEN_ID(e.g.,pulse-monitor@pam!pulse) andPROXMOX_TOKEN_SECRET(the secret you copied).
Creating a Proxmox Backup Server API Token
If monitoring PBS, create a token within the PBS interface.
Steps to Create a PBS API Token (Click to Expand)
- Log in to the Proxmox Backup Server web interface.
- Create a dedicated user (optional but recommended):
- Go to
Configuration→Access Control→User Management. - Click
Add. EnterUser ID(e.g., "pulse-monitor@pbs"), set Realm (likelypbs), add password. ClickAdd.
- Go to
- Create an API token:
- Go to
Configuration→Access Control→API Token. - Click
Add. - Select
User(e.g., "pulse-monitor@pbs") orroot@pam. - Enter
Token Name(e.g., "pulse"). - Leave
Privilege Separationchecked. ClickAdd. - Important: Copy the
Secretvalue immediately.
- Go to
- Assign permissions:
- Go to
Configuration→Access Control→Permissions. - Click
Add→API Token Permission. - Path:
/(root level). - API Token: Select the token (e.g., "pulse-monitor@pbs!pulse").
- Role:
Audit. - Check
Propagate. ClickAdd. - Note: The
Auditrole at root path (/) is needed for read-only access.
- Go to
- Update
.env: SetPBS_TOKEN_ID(e.g.,pulse-monitor@pbs!pulse) andPBS_TOKEN_SECRET.
Required Permissions
- Proxmox VE: The
PVEAuditorrole assigned at path/withPropagateenabled is recommended.Permissions included in PVEAuditor (Click to Expand)
- `Datastore.Audit` - `Permissions.Read` (implicitly included) - `Pool.Audit` - `Sys.Audit` - `VM.Audit` - Proxmox Backup Server: The
Auditrole assigned at path/withPropagateenabled is recommended.
🚀 Deployment
Choose one of the following methods to deploy Pulse.
Running with Docker Compose
Using Docker Compose is the recommended way for most users.
Prerequisites:
- Docker (Install Docker)
- Docker Compose (Install Docker Compose)
Steps:
- Configure Environment: Ensure your
.envfile is created and configured as described in Configuration. - Run: In the project root directory, run:
docker compose up -d





