๐ Migrating Pulse
April 26, 2026 ยท View on GitHub
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 โ Recovery.
- 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 โ Recovery.
- 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 | โ |
| SSO / SAML config | โ |
TrueNAS connections (truenas.enc) | โ |
| Guest metadata/notes | โ |
| โ | Relay config (relay.enc) โ re-enable in Settings |
| โ | Host metadata (notes/tags/AI command overrides) |
| โ | Docker metadata cache |
| โ | Agent profiles and assignments |
| โ | AI settings and findings (ai.enc, ai_findings.json, ai_patrol_runs.json, ai_usage_history.json) |
| โ | RBAC roles (rbac_roles.json) โ re-create after import |
| โ | Relay/Pro/legacy Pro+/Cloud license (license.enc) |
| โ | Server sessions (sessions.json) |
| โ | Update history (update-history.jsonl) |
๐ 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.
- Update Agents:
- Unified Agent: Update the
--tokenflag in your service definition. - Containerized agent: Update
PULSE_TOKENin the agent container environment. - Tip: Use Settings โ Infrastructure โ Install on a host to generate updated install commands.
- Unified Agent: Update the
- Relay/Pro/legacy Pro+/Cloud: Re-activate your license key after migration (license files are not included in exports).
๐ 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.