Added explicit command and clarification for getting first-time bootstrap token on install
5.2 KiB
📦 Installation Guide
Pulse offers flexible installation options from Docker to enterprise-ready Kubernetes charts.
🚀 Quick Start (Recommended)
Proxmox VE (LXC installer)
If you run Proxmox VE, the easiest and most “Pulse-native” deployment is the official installer which creates and configures a lightweight LXC container.
Run this on your Proxmox host:
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash
Note
: The GitHub
install.shis the server installer. The agent installer is served from your Pulse server at/install.sh(see Settings → Agents → Installation commands).
Docker
Ideal for containerized environments or testing.
docker run -d \
--name pulse \
-p 7655:7655 \
-v pulse_data:/data \
--restart unless-stopped \
rcourtman/pulse:latest
Docker Compose
Create a docker-compose.yml file:
services:
pulse:
image: rcourtman/pulse:latest
container_name: pulse
restart: unless-stopped
ports:
- "7655:7655"
volumes:
- pulse_data:/data
environment:
- PULSE_AUTH_USER=admin
- PULSE_AUTH_PASS=secret123
volumes:
pulse_data:
Note
: Plain text passwords set via
PULSE_AUTH_PASSare auto-hashed on startup. For production, prefer Quick Security Setup or a pre-hashed bcrypt value. Note: Docker monitoring requires the unified agent on the Docker host with socket access; the Pulse server container does not need/var/run/docker.sock. See UNIFIED_AGENT.md.
🛠️ Installation Methods
1. Kubernetes (Helm)
Deploy to your cluster using our Helm chart.
helm repo add pulse https://rcourtman.github.io/Pulse
helm repo update
helm upgrade --install pulse pulse/pulse \
--namespace pulse \
--create-namespace
See KUBERNETES.md for ingress and persistence configuration.
2. Bare Metal / Systemd
For Linux servers (VM or bare metal), use the official installer:
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | sudo bash
Note
: This installs the Pulse server. Use the
/install.shendpoint from your Pulse UI for installingpulse-agenton monitored hosts.
Manual systemd install (advanced)
# Download the correct tarball from GitHub Releases and extract it
# https://github.com/rcourtman/Pulse/releases
sudo install -m 0755 pulse /usr/local/bin/pulse
# Create systemd service
sudo tee /etc/systemd/system/pulse.service > /dev/null << 'EOF'
[Unit]
Description=Pulse Monitoring
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/pulse
Restart=always
RestartSec=10
Environment=PULSE_DATA_DIR=/etc/pulse
[Install]
WantedBy=multi-user.target
EOF
# Start service
sudo mkdir -p /etc/pulse
sudo systemctl daemon-reload
sudo systemctl enable --now pulse
🔐 First-Time Setup
Pulse is secure by default. On first launch, you must retrieve a Bootstrap Token to create your admin account.
Step 1: Get the Token
| Platform | Command |
|---|---|
| LXC | From Proxmox host: pct enter <VMID> then cat /etc/pulse/.bootstrap_token or pulse bootstrap-token |
| Docker | docker exec pulse cat /data/.bootstrap_token or docker exec pulse /app/pulse bootstrap-token |
| Kubernetes | kubectl exec -it <pod> -- cat /data/.bootstrap_token or kubectl exec -it <pod> -- /app/pulse bootstrap-token |
| Systemd | sudo cat /etc/pulse/.bootstrap_token or sudo pulse bootstrap-token |
Step 2: Create Admin Account
- Open
http://<your-ip>:7655 - Paste the Bootstrap Token.
- Complete the Quick Security Setup wizard.
- Set your Admin Username and Password (or let Pulse generate one).
- Pulse generates an API token for agents and automations.
- Copy the credentials before leaving the page.
Note
: If you configure authentication via environment variables (
PULSE_AUTH_USER/PULSE_AUTH_PASSand/or legacyAPI_TOKENS), the bootstrap token is automatically removed and this step is skipped.
🔄 Updates
Automatic Updates (Systemd/LXC only)
Pulse can self-update to the latest stable version.
Enable via UI: Settings → System → Updates
Manual Update
| Platform | Command |
|---|---|
| Docker | docker pull rcourtman/pulse:latest && docker restart pulse |
| Kubernetes | helm repo update && helm upgrade pulse pulse/pulse -n pulse |
| Systemd | Re-download binary and restart service |
Rollback
If an update causes issues on systemd installations, backups are created automatically during the update process.
Manual rollback: In-app updates store backups under /etc/pulse/backup-<timestamp>/. The systemd auto-update timer uses a temporary /tmp/pulse-backup-<timestamp> during the update and auto-restores on failure.
🗑️ Uninstall
Docker:
docker rm -f pulse && docker volume rm pulse_data
Kubernetes:
helm uninstall pulse -n pulse
Systemd:
sudo systemctl disable --now pulse
sudo rm -rf /etc/pulse /etc/systemd/system/pulse.service /usr/local/bin/pulse
sudo systemctl daemon-reload