# Pre-Migration Config Capture

Run this on the old server before wiping PBS. Tick each off once saved.

---

## OPNsense — both routers (105, 1006)
- [ ] System → Configuration → Backups → Download (saves full XML)
- [ ] Note any manually installed plugins not in the XML (check Firmware → Plugins)

## zlh-dns (1001)
- [ ] Technitium: Settings → Backup → Download backup file
- [ ] Note the listening IP/port if non-default

## zlh-proxy / zlh-zpack-proxy (1002, 1004)
- [ ] Copy `/etc/traefik/` or wherever config lives
- [ ] Note any env vars set in the systemd unit (`systemctl cat traefik`)

## zlh-artifacts (1003)
- [ ] `du -sh` the content tree — confirms rsync scope
- [ ] Note the Caddy config (file server root path, any auth middleware)
