- Updated MIGRATION_V3_TO_V4.md to clarify .env is optional - Fixed CONFIGURATION.md file locations section - Verified all other references are correct - Installation scripts correctly check for v3 .env files - Security warnings already appropriate
5.2 KiB
Pulse v3 to v4 Migration Guide
⚠️ CRITICAL: Manual Migration Required
Pulse v4 is a complete rewrite from Node.js to Go. Due to fundamental architecture changes, automatic upgrades from v3 to v4 are not supported and will break your installation.
🚫 DO NOT Attempt These Actions
- DO NOT run auto-update from v3 to v4
- DO NOT use the old Proxmox helper script - it's still configured for v3
- DO NOT try to upgrade in-place - the applications are completely different
✅ Recommended Migration Process
Option 1: Fresh Installation (Recommended)
-
Create a new LXC container or VM for Pulse v4
# Create new container in Proxmox pct create [VMID] local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \ --hostname pulse-v4 \ --memory 1024 \ --cores 1 \ --rootfs local-lvm:8 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp -
Install Pulse v4 in the new container
# Download and run the v4 installer wget https://raw.githubusercontent.com/rcourtman/Pulse/main/install.sh chmod +x install.sh ./install.sh -
Configure your nodes through the new web UI (port 7655)
- Add your Proxmox VE nodes
- Add your PBS instances (if applicable)
- Configure notifications (Discord, email, etc.)
- Set up alert thresholds
-
Reference your old configuration if needed
- Check your v3
.envfile for API tokens and credentials - Note your notification webhook URLs
- Document your alert threshold preferences
- Check your v3
-
Test thoroughly before decommissioning v3
- Verify all nodes are being monitored
- Test alert notifications
- Ensure backups are visible (if using PBS)
-
Shut down the old v3 instance once v4 is working
Option 2: Docker Migration
If you were using Docker for v3, the process is simpler:
-
Stop and backup your v3 container
docker stop pulse-v3 docker rename pulse-v3 pulse-v3-backup -
Run Pulse v4 with Docker
docker run -d \ --name pulse \ -p 7655:7655 \ -v pulse-data:/data \ rcourtman/pulse:latest -
Configure through the web UI at http://localhost:7655
- All node configuration is done through the UI
- No environment variables needed for Proxmox credentials
📋 Configuration Reference
Environment Variables (v3 → v4)
Important: v4 does NOT use environment variables for node configuration. All configuration is done through the web UI.
| v3 Variable | v4 Equivalent | Notes |
|---|---|---|
PROXMOX_HOST |
UI Configuration | Settings → Nodes → Add Node |
PROXMOX_USER |
UI Configuration | Settings → Nodes → Add Node |
PROXMOX_PASSWORD |
UI Configuration | Encrypted storage via UI |
PROXMOX_TOKEN_ID |
UI Configuration | Split into name/value in UI |
PROXMOX_TOKEN_SECRET |
UI Configuration | Token auth recommended |
DISCORD_WEBHOOK |
UI Configuration | Settings → Notifications |
EMAIL_* |
UI Configuration | Settings → Notifications |
The only environment variable v4 supports is PULSE_DATA_DIR for Docker deployments to specify the data directory.
Key Differences
- Port Change: v3 used port 3000, v4 uses port 7655
- No Node.js: v4 is a Go binary, no npm/node required
- New UI: Complete redesign with dark mode support
- Multi-node: v4 supports multiple PVE/PBS instances natively
- Better Performance: Significantly faster and lower resource usage
🔧 Troubleshooting
"Missing package.json" Error
This means you're trying to run v4 with v3 startup scripts. Solution:
- Use the new systemd service file
- Don't use npm commands
- Run the binary directly:
/opt/pulse/pulse
Port 3000 Not Working
v4 uses port 7655 by default. Update your firewall rules and bookmarks.
Can't Find .env File
v4 stores configuration through the web UI. Environment variables can be used for deployment overrides but are not required.
Credentials Not Working
v4 has its own authentication system. Default credentials on fresh install:
- No authentication by default
- Set up security mode in Settings → Security
No Configuration Export/Import
By Design: v4 does NOT support configuration export/import for security reasons:
- Proxmox API tokens with write permissions are stored encrypted
- These tokens can access/modify your infrastructure
- Export functionality would create a security vulnerability
- Each Pulse instance maintains its own isolated credential store
Best Practice: Document your configuration separately (node names, thresholds) but re-enter credentials manually for each instance.
📚 Additional Resources
⚡ Quick Start After Migration
- Access the web UI at
http://your-server:7655 - Click Settings → Nodes → Add Node
- Enter your Proxmox credentials
- Configure notifications if desired
- Customize alert thresholds as needed
Remember: v4 is a complete rewrite with many improvements. Take time to explore the new features!