2.1 KiB
2.1 KiB
Service Migration Session Notes
Migrated from HP Mini i5-6500T/7GB (192.168.50.150) → rayserver i7-10700K/14GB/GTX1050Ti (192.168.50.98) running Ubuntu 26.04, Docker 29.1.3, NVIDIA Driver 580 with CUDA 13.0.
Services Migrated
| Service | Old Port | New Port | Notes |
|---|---|---|---|
| Immich v2.7.5 | 2283 | 2283 | GPU ML with -cuda image tag |
| Hermes Web UI | 8787 | 8787 | Same password, STATE_DIR required |
| Portainer CE | 9443 | 9443 | Volume data preserved |
| Heimdall | 8080 | 8080 | Volume data preserved |
| Scrutiny | 7272 | 7272 | Volume data preserved |
| Uptime Kuma | 3001 | 3001 | Volume data preserved |
| PiHole | 8090 | 8090 | Port 53 bound to specific IP |
| Watchtower | — | — | Replaced with cron.daily script |
Volume Tar-Pipe Command
The working pattern for copying Docker volume data between machines:
sshpass -p '<pass>' ssh user@old-ip "sudo tar czf - -C /var/lib/docker/volumes/<src>/_data ." | ssh user@new-ip "sudo tar xzf - -C /var/lib/docker/volumes/<dst>/_data/"
Source volumes on old machine used hyphenated names (uptime-kuma_uptime_kuma_data, dashboard_heimdall_config). Destination volumes on new machine used simpler names (uptime_kuma_data, heimdall_config).
PiHole Details
- PiHole password:
@89(same suffix as the user's SSH password pattern) - PiHole admin URL:
http://192.168.50.98:8090/admin - Port 53 bound to
192.168.50.98:53:53/tcpand.udp(not0.0.0.0:53) due to systemd-resolved conflict on Ubuntu 26.04 - systemd-resolved on Ubuntu 26.04 listens on 127.0.0.53:53 (stub) AND 127.0.0.54:53 (proxy) — either can block Docker's
0.0.0.0:53
API Key Transfer
API keys were copied via piping cat over SSH:
sshpass -p '<pass>' ssh user@old-ip 'cat ~/.hermes/.env' | ssh user@new-ip 'cat > ~/.hermes/.env'
The terminal tool redacts secrets in output, making it hard to verify. Check by file byte count (wc -c) or hexdump the password field specifically.
VERSION
Last updated: 2026-05-31 Target: Internal reference for selfhosted-migration skill