Fix INSTALL.md inaccuracies

- Remove non-existent Proxmox LXC installer section (install.sh is actually
  the unified agent installer, not an LXC container creator)
- Fix Helm install command to use GitHub Pages repo instead of non-existent
  OCI registry
- Add proper systemd installation instructions with actual commands
- Remove non-existent CLI commands (pulse config rollback, pulse-update.timer)
- Add Kubernetes update/uninstall commands
- Add sudo where needed for systemd commands
This commit is contained in:
rcourtman 2025-12-02 23:36:32 +00:00
parent 5c502d0c5f
commit b15f242509

View file

@ -1,16 +1,9 @@
# 📦 Installation Guide # 📦 Installation Guide
Pulse offers flexible installation options ranging from a simple one-liner for Proxmox to enterprise-ready Kubernetes charts. Pulse offers flexible installation options from Docker to enterprise-ready Kubernetes charts.
## 🚀 Quick Start (Recommended) ## 🚀 Quick Start (Recommended)
### Proxmox VE (LXC)
The easiest way to run Pulse on Proxmox. This script creates a lightweight LXC container, configures networking, and starts the service.
```bash
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash
```
### Docker ### Docker
Ideal for containerized environments or testing. Ideal for containerized environments or testing.
@ -49,35 +42,48 @@ volumes:
## 🛠️ Installation Methods ## 🛠️ Installation Methods
### 1. Proxmox LXC (Advanced) ### 1. Kubernetes (Helm)
The installer supports advanced flags for automation or custom setups.
```bash
# Install specific version
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash -s -- --version v4.24.0
# Install from source (dev branch)
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash -s -- --source develop
```
### 2. Kubernetes (Helm)
Deploy to your cluster using our Helm chart. Deploy to your cluster using our Helm chart.
```bash ```bash
helm registry login ghcr.io helm repo add pulse https://rcourtman.github.io/Pulse/
helm install pulse oci://ghcr.io/rcourtman/pulse-chart \ helm repo update
--version $(curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/VERSION) \ helm install pulse pulse/pulse \
--namespace pulse \ --namespace pulse \
--create-namespace --create-namespace
``` ```
See [KUBERNETES.md](KUBERNETES.md) for ingress and persistence configuration. See [KUBERNETES.md](KUBERNETES.md) for ingress and persistence configuration.
### 3. Manual / Systemd ### 2. Bare Metal / Systemd
For bare-metal Linux servers (Debian/Ubuntu). For bare-metal Linux servers, download the release binary directly.
```bash ```bash
# The installer detects non-Proxmox systems and installs as a systemd service # Download and extract
curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/pulse-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m).tar.gz | tar xz
sudo mv pulse /usr/local/bin/
sudo chmod +x /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
``` ```
--- ---
@ -90,10 +96,9 @@ Pulse is secure by default. On first launch, you must retrieve a **Bootstrap Tok
| Platform | Command | | Platform | Command |
|----------|---------| |----------|---------|
| **Proxmox LXC** | `pct exec <ID> -- cat /etc/pulse/.bootstrap_token` |
| **Docker** | `docker exec pulse cat /data/.bootstrap_token` | | **Docker** | `docker exec pulse cat /data/.bootstrap_token` |
| **Kubernetes** | `kubectl exec -it <pod> -- cat /data/.bootstrap_token` | | **Kubernetes** | `kubectl exec -it <pod> -- cat /data/.bootstrap_token` |
| **Systemd** | `cat /etc/pulse/.bootstrap_token` | | **Systemd** | `sudo cat /etc/pulse/.bootstrap_token` |
### Step 2: Create Admin Account ### Step 2: Create Admin Account
1. Open `http://<your-ip>:7655` 1. Open `http://<your-ip>:7655`
@ -106,33 +111,40 @@ Pulse is secure by default. On first launch, you must retrieve a **Bootstrap Tok
## 🔄 Updates ## 🔄 Updates
### Automatic Updates (Systemd/LXC only) ### Automatic Updates (Systemd only)
Pulse can self-update to the latest stable version. Pulse can self-update to the latest stable version.
**Enable via UI**: Settings → System → Automatic Updates **Enable via UI**: Settings → System → Automatic Updates
**Enable via CLI**: `systemctl enable --now pulse-update.timer`
### Manual Update ### Manual Update
| Platform | Command | | Platform | Command |
|----------|---------| |----------|---------|
| **LXC** | `pct exec <ID> -- update` |
| **Systemd** | Re-run the install script |
| **Docker** | `docker pull rcourtman/pulse:latest && docker restart pulse` | | **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 ### Rollback
If an update causes issues, you can roll back to the previous version instantly. If an update causes issues, you can roll back to a previous version.
**Via UI**: Settings → System → Updates → "Restore previous version" **Via UI**: Settings → System → Updates → "Restore previous version"
**Via CLI**: `pulse config rollback`
--- ---
## 🗑️ Uninstall ## 🗑️ Uninstall
**LXC**: `pct destroy <ID>` **Docker**:
**Docker**: `docker rm -f pulse && docker volume rm pulse_data` ```bash
docker rm -f pulse && docker volume rm pulse_data
```
**Kubernetes**:
```bash
helm uninstall pulse -n pulse
```
**Systemd**: **Systemd**:
```bash ```bash
systemctl disable --now pulse sudo systemctl disable --now pulse
rm -rf /opt/pulse /etc/pulse /etc/systemd/system/pulse.service sudo rm -rf /etc/pulse /etc/systemd/system/pulse.service /usr/local/bin/pulse
sudo systemctl daemon-reload
``` ```