From 15a9158d587115b50481d7bddaa8974f29ef72aa Mon Sep 17 00:00:00 2001 From: Pulse Monitor Date: Mon, 1 Sep 2025 22:38:14 +0000 Subject: [PATCH] docs: remove ProxmoxVE Helper Script references The ProxmoxVE Helper Script is no longer the recommended installation method. Users should use the official install.sh script instead, which supports creating LXC containers directly on Proxmox hosts. For existing users confused about updating (like in discussion #407), they can use 'pct enter' from the Proxmox host to access their container as root. --- CLAUDE.md | 64 +++++--------------------------------- README.md | 12 ------- docs/CONFIGURATION.md | 9 ------ docs/FAQ.md | 3 +- docs/PORT_CONFIGURATION.md | 8 ----- 5 files changed, 9 insertions(+), 87 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index df8069fa6..6fc7e80ea 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -206,78 +206,30 @@ Mock mode shows both real and mock data mixed. If user needs PURE mock: - Use "addresses #XXX" or "related to #XXX" not "fixes #XXX" (which auto-closes) 8. **AVOID certainty in comments** - Don't say "found the issue" or "fixed it", say "looks like" or "should address this" -## CRITICAL: ProxmoxVE Community Script Requirements -**NEVER change these without coordinating with the ProxmoxVE team:** +## Binary and Service Naming Consistency +**Important for compatibility with various installation methods:** ### Binary Location -- **MUST be at**: `/opt/pulse/bin/pulse` -- **NOT**: `/opt/pulse/pulse` (v4.3.7 bug that broke everything) -- **NOT**: `/usr/local/bin/pulse` (that's just a symlink) -- The ProxmoxVE script expects this exact path - changing it breaks their deployment +- **Standard location**: `/opt/pulse/bin/pulse` +- **Symlink**: `/usr/local/bin/pulse` → `/opt/pulse/bin/pulse` +- Keep consistent across releases to avoid breaking existing installations ### Service Name -- **ProxmoxVE uses**: `pulse` (NOT pulse-backend) - **Our install.sh uses**: `pulse` -- **Manual installs might use**: `pulse-backend` +- **Legacy installs might use**: `pulse-backend` - **Code MUST detect both** and handle either service name ### Configuration Location - **Config directory**: `/etc/pulse/` - **Data directory**: `/etc/pulse/` -- **NOT**: `/opt/pulse/` for config (that's just for the binary) +- **Binary location**: `/opt/pulse/` ### User and Permissions - **Service runs as**: `pulse` user (non-root) - **NO sudo access** - the pulse user has no sudo privileges -- **Shell access**: Removed (`/bin/false`) +- **Shell access**: Limited or removed for security - **NEVER attempt sudo** in any code paths -### Authentication Setup -- ProxmoxVE script may pre-configure API_TOKEN in the service file -- If API_TOKEN is already set, Quick Security Setup should be skipped -- They handle auth setup their own way - respect their configuration - -### What Breaks ProxmoxVE Script -1. **Changing binary path** from `/opt/pulse/bin/pulse` -2. **Hardcoding service name** as `pulse-backend` -3. **Requiring sudo** for any operations -4. **Forcing Quick Security Setup** when API_TOKEN exists -5. **Changing config directory** from `/etc/pulse` - -### ProxmoxVE Script Installation Method -They use their own installation approach: -1. Downloads our release tarball from GitHub -2. Extracts to `/opt/pulse/` -3. Creates systemd service named `pulse` (NOT pulse-backend) -4. Creates `pulse` user with no shell access -5. May pre-configure API_TOKEN in the service -6. Expects binary at `/opt/pulse/bin/pulse` - -### Recent Issues They've Had -- **v4.3.2**: Binary path changed from `/opt/pulse/pulse` to `/opt/pulse/bin/pulse` -- **v4.3.7**: We broke it again by installing to wrong path -- **Multiple versions**: Service name confusion (pulse vs pulse-backend) -- **Authentication**: They want to set API_TOKEN themselves, not use our UI - -### Testing ProxmoxVE Compatibility -Before ANY release that changes paths or service handling: -```bash -# Create fresh ProxmoxVE container and test their script -ssh root@delly "pct create /var/lib/vz/template/cache/debian-12-standard_12.7-1_amd64.tar.zst --hostname pulse-test --memory 1024 --cores 2 --rootfs local-zfs:4 --net0 name=eth0,bridge=vmbr0,ip=dhcp --unprivileged 1 --features nesting=1 && pct start " - -# Install via their script (bash -c $(...) pulse) -# Verify: -# - Binary is at /opt/pulse/bin/pulse -# - Service name is 'pulse' -# - Can start without sudo errors -``` - -### GitHub Issue History -- **#6833**: Main complaint about constant binary path changes -- **#6859**: Their PR to update for v4.3.2+ -- They've had to update their script MULTIPLE times due to our changes -- They're understandably frustrated with the instability - ## CRITICAL: Security Model Understanding **Pulse v4 Security Architecture:** - Node credentials (passwords, API tokens) are stored ENCRYPTED at rest diff --git a/README.md b/README.md index e8d149446..bc47f2c50 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ docker run -d -p 7655:7655 -v pulse_data:/data rcourtman/pulse:latest ### Updating **Automatic Updates (New!):** Enable during installation or via Settings UI to stay current automatically -**LXC Container:** `pct exec -- update` **Standard Install:** Re-run the installer **Docker:** `docker pull rcourtman/pulse:latest` then recreate container @@ -261,14 +260,6 @@ See [Security Documentation](docs/SECURITY.md) for details. ### Update Notifications Pulse checks for updates and displays notifications in the UI when new versions are available. For security reasons, updates must be installed manually using the appropriate method for your deployment. -### ProxmoxVE LXC Container -If you installed Pulse using the ProxmoxVE Helper Script: -```bash -# Simply type 'update' in the LXC console -update -``` -The ProxmoxVE script handles everything automatically. - ### Manual Installation (systemd) ```bash # Update to latest stable @@ -397,9 +388,6 @@ pulse config import -i backup.enc Pulse shows when updates are available and provides deployment-specific instructions: -### ProxmoxVE LXC Container -Type `update` in the LXC console - the script handles everything automatically - ### Docker ```bash docker pull rcourtman/pulse:latest diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index d71930fdf..905f9f15a 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -298,15 +298,6 @@ echo "Pulse deployed! Use API token: $API_TOKEN" curl -H "X-API-Token: $API_TOKEN" http://localhost:7655/api/nodes ``` -### ProxmoxVE Helper Script - -The ProxmoxVE community scripts already use this approach: - -```bash -# They generate a token and set it directly -API_TOKEN=generated-token-here /opt/pulse/bin/pulse -``` - --- ## Security Best Practices diff --git a/docs/FAQ.md b/docs/FAQ.md index e711d9902..4ae51793a 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -4,7 +4,7 @@ ### What's the easiest way to install? ```bash -bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/pulse.sh)" +curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash ``` ### System requirements? @@ -144,7 +144,6 @@ Yes, ensure WebSocket support is enabled ## Updates ### How to update? -- **ProxmoxVE LXC**: Type `update` in the LXC console - **Docker**: Pull latest image, recreate container - **Manual/systemd**: Run the install script again: `curl -fsSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash` diff --git a/docs/PORT_CONFIGURATION.md b/docs/PORT_CONFIGURATION.md index e2579a13c..98d366e07 100644 --- a/docs/PORT_CONFIGURATION.md +++ b/docs/PORT_CONFIGURATION.md @@ -78,11 +78,3 @@ Keeping application configuration separate from authentication credentials: sudo lsof -i :8080 ``` -### ProxmoxVE Community Script Users -The ProxmoxVE script uses service name `pulse` (not `pulse-backend`). -Always use: `sudo systemctl restart pulse` - -For issues, consider switching to the official installer: -```bash -curl -sSL https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh | bash -``` \ No newline at end of file