mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
The storage deduplication logic only checked cluster config's Shared flag, but this required the cluster config API call to succeed. When the per-node storage API already returns shared=1 (as the user verified), we should use that directly. Now we check three sources for shared storage detection: 1. Per-node API shared flag (storage.Shared) 2. Cluster config shared flag (if available) 3. Storage type heuristics (NFS, RBD, PBS, etc.) Related to #1049
2.8 KiB
2.8 KiB
🚚 Migrating Pulse
This guide covers migrating Pulse to a new host using the built-in encrypted export/import workflow.
🚀 Quick Migration Guide
❌ DON'T: Copy Files
Never copy /etc/pulse (or /data in Docker/Kubernetes) manually. Encryption keys and credentials can break.
✅ DO: Use Export/Import
1. Export (Old Server)
- Go to Settings → System → Backups.
- Click Create Backup.
- Enter a strong passphrase and download the encrypted backup.
2. Import (New Server)
- Install a fresh Pulse instance.
- Go to Settings → System → Backups.
- Click Restore Configuration and upload your file.
- Enter the passphrase.
📦 What Gets Migrated
| Included ✅ | Not Included ❌ |
|---|---|
| Nodes & credentials | Historical metrics history (metrics.db) |
| Alerts & overrides | Browser sessions and local cookies |
| Notifications (email, webhooks, Apprise) | Local login username/password (.env) |
System settings (system.json) |
Update history/backup folders |
| API token records | |
| OIDC config | |
| Guest metadata/notes |
🔄 Common Scenarios
Moving to New Hardware
Export from old → Install new → Import.
Docker ↔ Systemd ↔ Kubernetes
The export file works across all installation methods. You can migrate from Docker to Kubernetes or vice versa seamlessly.
Disaster Recovery
- Install Pulse using Docker or your preferred method (see INSTALL.md).
- Import your latest backup.
- Restored in < 5 minutes.
📋 Post-Migration Checklist
Because local login credentials are stored in .env (not part of exports), you must:
- Re-create Admin User: If not using
.envoverrides, create your admin account on the new instance. - Confirm API access:
- If you created API tokens in the UI, those token records are included in the export and should continue working.
- If you used
.env-basedAPI_TOKENS/API_TOKEN(legacy), reconfigure them on the new host or re-create tokens in the UI.
- Update Agents:
- Unified Agent: Update the
--tokenflag in your service definition. - Containerized agent: Update
PULSE_TOKENin the agent container environment. - Tip: You can use the "Install New Agent" wizard to generate updated install commands.
- Unified Agent: Update the
🔒 Security
- Encryption: Exports are encrypted with passphrase-based encryption (PBKDF2 + AES-GCM).
- Storage: Safe to store in cloud backups or password managers.
- Passphrase: Use a strong, unique passphrase (min 12 chars).
🔧 Troubleshooting
- "Invalid passphrase": Ensure exact match (case-sensitive).
- Missing Nodes: Verify export date.
- Connection Errors: Update node IPs in Settings if they changed.
- Logging: Adjust
LOG_LEVEL/LOG_FORMATvia environment variables if needed.