Best way to migrate Apps to a new storage pool?

Hi everyone,

I’m planning my TrueNAS SCALE setup and I’d like to know the best approach.

Right now I have a temporary storage pool because I plan to rebuild the system in the future with a new 9-disk RAIDZ2 pool. I don’t want to spend too much time configuring everything twice.

My question is mainly about Apps.

If I install my apps now (Jellyfin, Immich, Sonarr, Radarr, etc.) and store all persistent data (config, databases, metadata, etc.) in dedicated host path datasets (for example /mnt/tank/appdata/...), can I later:

  1. Back up or replicate those datasets.

  2. Destroy the old pool.

  3. Create the new pool.

  4. Restore the datasets to the new pool.

  5. Reinstall the apps (or redeploy Docker Compose stacks) pointing to the restored datasets.

Will the apps pick up their previous configuration, users, databases, plugins and metadata, or is there anything else inside ix-apps that I also need to preserve?

I’m trying to understand the best long-term strategy to make future migrations as painless as possible.

Thanks!

Truenas got an app migration feature in 25.10, so if you have a second pool that you won’t destroy you could move the apps to e.g. your hdd pool, destroy old pool, create new pool and migrate the data back to the new pool, no need to replicate any datasets.

The migration feature is somewhat hidden. If you select another pool as apps pool it asks if you want to migrate existing apps to the selected pool.

Thanks! I didn’t know about the app migration feature, but unfortunately it doesn’t fit my use case.

My plan is to completely replace my current storage pool in the future. I’ll back up everything to an external drive, destroy the old pool, create a new 9-disk(the max my case can handle) RAIDZ2 pool, and then restore the data. During that process there won’t be a second pool available to migrate the apps to.

Then your best option would propably be to follow this guide and adjust it slightly. It as written before the included migration feature was available.