How I Built a Home Private Cloud with TrueNAS + OMV (with Docker Practical Notes)
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 applications (Home Assistant, Nextcloud, Immich, Plex…)
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.
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.
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.