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:

  1. Review version and changelog
  2. Take snapshot/backup first
  3. Update one service at a time
  4. 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

  1. Decide data placement first (pool/dataset model)
  2. Start with 2–3 core services (e.g., Nextcloud + Immich + Home Assistant)
  3. For each new service, add one note: purpose/mounts/backup/upgrade
  4. 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