Unraid Migration & Docker Stack
Why
My old setup was a single Ubuntu box with manually-managed services — each upgrade was a day-long ordeal of stopping everything, reading changelogs, and praying nothing broke. Unraid gave me array-based storage with parity (so I can lose one drive without data loss) and first-class Docker support that made containerizing everything painless.
Architecture / Stack
- OS: Unraid 6.x running on a used Dell R720xd
- Storage: 4x 8 TB HDDs in RAID5 (parity array), 1x NVMe for cache/app data
- Container orchestration: docker-compose files, one per service stack
- Key services: Nextcloud, Gitea, Uptime Kuma, Nginx Proxy Manager, Cloudflare Tunnel daemon
- Backups: Restic to an external USB drive that only mounts weekly
Build Log
- Researched Unraid vs TrueNAS for three weeks — chose Unraid because Docker-native (TrueNAS apps are iocage/jails which felt more complex)
- Ordered a used Dell R720xd on eBay with eight 3.5-inch drive bays ($200 including shipping)
- Migrated data from old server via rsync over the LAN — took about six hours for ~10 TB of files
- Wrote docker-compose files for each service, versioned in a private Git repo on Gitea (chicken-and-egg: bootstrapped with GitHub first)
What Broke
The Dell R720xd’s default BIOS settings allocated 2 GB of VRAM to the integrated GPU — wasted RAM I desperately needed. Disabled iGPU in BIOS, reclaimed that memory for containers. Also had a nightmare week where Unraid’s CA plugins auto-updated every container simultaneously during a firmware update window — everything came back up except Nextcloud, which refused to connect to its database until I manually reset permissions on the data volume.
What’s Next
- Add a second node (already ordered another used server) for redundancy
- Set up automatic failover using Keepalived or similar
- Migrate from Nginx Proxy Manager to Traefik for better Docker integration
Related Projects
- Local AI Server Build — pulls model checkpoints from this NAS