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:

  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.