How I Built a Home Private Cloud with TrueNAS + OMV (with Docker Practical Notes)
💡 Quick Navigation
Why I built this stack
What I wanted was simple:
- Keep photos, documents, and media off full dependency on public cloud
- Fully control each service and know how to recover when things break
- Grow gradually (from a few containers to full family infrastructure)
I ended up with this combination:
- TrueNAS: focused on storage, data reliability, snapshots
- OMV + Docker: focused on most applications (Home Assistant, Nextcloud…)
Some data-heavy services run on TrueNAS, such as Immich and Plex. These services read and write large photo, video, media, and thumbnail datasets, so staying close to the ZFS dataset and stronger hardware is more stable.
The benefit: clean separation between storage and apps, with less upgrade/maintenance coupling.
My real use cases (daily)
1) Nextcloud: family document and sync hub
I treat Nextcloud like a household workspace:
- Document sync
- Calendar and contacts
- Cross-device read/write data
Experience:
- Pros: full control and flexible permissions
- Tradeoff: you own upgrade operations (now standardized in my workflow)
2) Immich: phone photo backup and memory archive
Automatic photo upload from phone to home storage is one of the most valuable services.
I currently run Immich on TrueNAS, not OMV. The reason is that photos and videos are large, while thumbnails, search, and background jobs benefit from local I/O and CPU / iGPU resources.
Experience:
- Greatly reduces phone storage anxiety
- Convenient centralized family photo management
- Need proper DB/storage planning for long-term growth
3) Home Assistant + TeslaMate: life automation
- Home Assistant handles devices and automation flows
- TeslaMate keeps long-term vehicle telemetry history
Experience:
- Good automation noticeably improves daily life
- Initial setup requires careful entity naming and workflow organization
4) Plex: home entertainment
Plex is optional, but meaningfully improves quality of life.
I currently run Plex on TrueNAS, keeping the media server close to the main video library and better positioned for scanning, metadata, and possible transcoding work.
Experience:
- Friendly UI and smooth cross-device usage
- Folder structure and naming conventions matter in practice
What I learned architecturally
1) Storage and app layers should be separated
Splitting TrueNAS and OMV responsibilities made troubleshooting much faster.
2) Think backup before features
Before bringing up a new service, I ask:
- How is this data backed up?
- How do I restore it if it fails?
3) Don’t rush updates—use a rollback-capable flow
My current habit:
- Review version and changelog
- Take snapshot/backup first
- Update one service at a time
- Verify core functionality
Real pitfalls (short version)
- If reverse proxy and container networking are not planned early, cleanup is painful
- Inconsistent permissions and mount naming cost huge debug time
- Backup without restore drills is not a real backup
If you want to replicate this setup, start here
- Decide data placement first (pool/dataset model)
- Start with 2–3 core services (e.g., Nextcloud + Immich + Home Assistant)
- For each new service, add one note: purpose/mounts/backup/upgrade
- Run a health check every two weeks
Final thoughts
This is not “set up once and done”—it becomes part of your daily life. Its real value is not showing off tech; it’s using it every day and being able to recover when things go wrong.
If you’re building a homelab, feel free to adopt this layering idea: TrueNAS manages data, OMV manages services—keep it alive first, then optimize.
Further reading: Home Lab Overview