Files
unifi/CHANGELOG.md
T
2026-07-15 17:31:58 -04:00

43 lines
2.2 KiB
Markdown

# UniFi Controller Migration — CHANGELOG
## 2026-07-15
### Phase 1 — Fresh deploy on app2
- **Action:** Deployed jacobalberty/unifi:latest (v10.0.162) in Docker on app2
- **Image:** Bundles MongoDB internally — single container, no external DB
- **Caddy proxy:** unifi.itpropartner.com:443 → localhost:8443 with tls_insecure_skip_verify
- **Status:** ✅ Controller running, healthy
### Phase 2 — Admin account creation
- **Obstacle:** Fresh controller has zero admin users — can't log in
- **Fix:** Created admin via MongoDB shell (mongosh port 27117) using openssl passwd -6
- **Credentials:** info@itpropartner.com / TempChangeMe123! (changed by user)
- **Status:** ✅
### Phase 3 — Old controller backup discovery
- **Obstacle:** `.unf` files on old server are encrypted BSON, not standard zip
- **Fix:** Pulled autobackups from 178.156.131.57:/var/lib/unifi/backup/autobackup/
- **Files:** 8 backups (161KB each), base backup 9.0.114.unf (686KB) from Oct 2025
- **S3 sync set up:** Daily cron → s3://hermes-vps-backups/unifi-backups/
- **Status:** ✅ Backups safe in S3
### Phase 4 — Restore attempts
- **Obstacle:** ace.jar restore fails with Spring context errors — can't run concurrently with active controller
- **Attempts:** Stopped UniFi process, ran restore — still failed. Docker volume vs bind mount path confusion.
- **Resolution:** Emailed .unf files to user for manual upload through setup wizard
- **Status:** ⚠️ Pending manual restore by user
### Phase 5 — Old controller decommissioning
- **Action:** Stopped UniFi service, disabled from boot on 178.156.131.57
- **Hetzner deletion:** ID 59987821 (178.156.131.57) removed
- **Backup cron removed:** unifi-backup-sync shut down (source deleted)
- **Status:** ✅
## Lessons
- jacobalberty/unifi Docker image uses TWO storage volumes: /config (bind mount) + /unifi (anonymous volume)
- ace.jar restore requires MongoDB running but NOT the UniFi Java process — yet the Spring context still collides
- UniFi 10.x API requires CSRF token + session cookie; NoSiteContext errors even with valid login
- mongosh replaces mongo on MongoDB 5+ — different binary, same port
- Always verify port ownership (Caddy on 443, UniFi on 8443) before deployment