3.5 KiB
UISP Vault Key & Device-WS Recovery
UISP Vault Key Missing
When restoring a UISP backup to a new server, the Credential Vault key is NOT included in the backup. The key was set interactively during initial install years ago and is not stored anywhere on disk.
Symptoms
- "Vault Key Is Missing" error in UISP web UI
- Cannot access saved device passwords, SNMP strings, SSH credentials
Recovery Options
Option A: Find the original key Check anywhere it might have been documented:
- Password manager (Vaultwarden/Bitwarden, 1Password)
- Hudu documentation
- Initial setup notes/emails
/home/unms/app/.envon the old server (if it still exists)
Option B: Destroy and recreate (UISP web UI)
- Log into UISP at
https://<uisp-domain>/nms/login - Navigate to Settings → Credentials → Vault
- Use "Destroy Vault" option
- This deletes ALL stored passwords
- Creates a new vault with a fresh key
- Online devices can have new passwords auto-generated
Note: The destroy option is designed for exactly this scenario. UISP pushes new generated passwords to any device that checks in. Offline devices need manual password updates.
Device-WS Containers Not Running
After restoring a UISP backup to a new server, the device-ws Docker containers may be in Created state but not Running. These handle WebSocket connections from devices.
Symptoms
- Device registration fails with: "ws upgrade response not 101"
- Device error log shows
connection error: HS: ws upgrade response not 101 docker psshows 0unms-device-ws-*containers runningdocker ps -ashows them asCreated
Fix
# Start all device-ws containers
docker compose -f /home/unms/app/docker-compose.yml up -d device-ws
# OR start individually
for i in 1 2 3 4 5 6 7 8 9 10 11; do
docker start unms-device-ws-$i
done
Wait 10 seconds then verify all are healthy:
docker ps --format '{{.Names}} {{.Status}}' | grep device-ws | grep -v healthy
Root Cause
The UISP docker-compose defines the device-ws service with deploy.replicas: 11 but the containers don't auto-start after a backup restore. They're created but need explicit docker start or a docker compose up -d call.
UISP Backup Locations
| Server | Path | Retention |
|---|---|---|
| Live UISP (app2) | /home/unms/data/unms-backups/backups/ |
Auto backups daily at 4 AM |
| UCRM DB (app2) | /home/unms/data/ucrm/ucrm/data/backup/ |
Auto backups daily |
S3 Backup Cron
Script at /root/.hermes/scripts/unms-backup-sync.sh syncs to:
s3://hermes-vps-backups/unms-backups/old-unms/(historical, old server)s3://hermes-vps-backups/unms-backups/live/(current, app2)s3://hermes-vps-backups/unms-backups/live/ucrm/(UCRM DB)
Runs daily at 6 AM ET via cron job unms-backup-sync.
UNMS/UISP TLS Certificates
When unms.forefrontwireless.com DNS points to the new server, obtain certs:
# Stop nginx container to free port 80
docker stop unms-nginx
# Get certs
certbot certonly --standalone --non-interactive --agree-tos \
-m info@itpropartner.com \
-d unms.forefrontwireless.com \
--preferred-challenges http
# Inject into UNMS cert directory
cp /etc/letsencrypt/live/unms.forefrontwireless.com/fullchain.pem /home/unms/data/cert/live.crt
cp /etc/letsencrypt/live/unms.forefrontwireless.com/privkey.pem /home/unms/data/cert/live.key
chown unms:unms /home/unms/data/cert/live.*
chmod 600 /home/unms/data/cert/live.key
# Restart nginx
docker start unms-nginx
Auto-renewal is handled by certbot systemd timer.