Migration of apps from Truecharts to Truenas

All,
I’m running Scale 24.04 and I need to upgrade to 24.10 so I can use the awesome ZFS extend feature (i.e. add one disk rather than creating a new vdev). However that will require me to migrate my apps… 50% of them are from TC.

Before I start and possibly bork my system, is there a document that talks about the process of migrating TC apps to Truenas?. I really don’t want to lose data that is currently inside those apps. (e.g. Jellyfin customisation, Wireguard keys etc).

Ideally of course, the app migration will happen automatically (I mean… they are all containers under the hood, right?). But that might be hopeful thinking.

Advice would be most appreciated.
Paul.

TrueCharts app migration will not happen automatically. TrueCharts apps require Kubernetes, which iX decided to throw out the window in EE. If you want to directly migrate those apps, you’ll need to follow their migration path, which will involve creating a VM running Talos, and using the tool they’ve created called clustertool to migrate the apps. It doesn’t appear the docs are ready for that yet, but then EE isn’t released yet either.

Other options would include:

  • Create a VM with a different Kubernetes flavor and migrate your apps manually–this still keeps TrueCharts apps, but doesn’t tie you to Talos
  • Manually install new apps (whether iX apps, or your own docker-compose) in EE once it’s released.
  • Create a sandbox under Dragonfish, optionally install Docker in it, optionally install Portainer, Dockge, or whatever else you like to manage Docker in it, then install your apps that way.

Any of these, with the possible exception of the first, will require you to manually migrate your app config and other data.

1 Like

This Reddit post describes how to pull your data out etc when doing the above

https://www.reddit.com/r/truenas/comments/1d2k4lf/finally_migrated_away_from_truecharts_steps_and/

1 Like

@dan, @Stux
Thanks for the hints. I’ve reviewed all the docs you referred to (and followed their links).

My personal preference is to try and live within the docker app manager built into TrueNas (in 24.10), and not to build my own sandbox or docker instance in 24.04. I think long term that will be easier as it follows iX’s strategy, uses their existing UIs etc.

Having said that - installing docker and creating containers does give me the option to run data conversion tests while the real apps are still running. Then those containers can likely be moved to TN docker.

There isn’t (and won’t be) a way to move the containers from k8s to docker.

So it seems that the best strategy for conversion is to find a way to backup each of my TC apps, reinstall using TN (or own docker), then attempt a restore. One backup method is to grab a low level copy of the pod’s PVC (rsync), reinstall via TN, then restore it. This is likely to be dodgy with DBs. Another is to use a backup/restore strategy built into the app, if one exists (which it doesn’t for most). In summary - I’ll have to find a method that works for each app.

A last option is to just reinstall and reconfigure each app from scratch - e.g. setting up all the wireguard keys/clients again. ick.

I also have to wait for each of the apps to be migrated to TN (which I don’t think will be long because the apps I use are pretty popular).

Cheers.
Paul

I made a video on migrating apps from docker/Dockge in a sandbox to native docker in Electric Eel.

Its really quite simple

I am merely running Eel in a VM in Dragonfish, that is how you can also convert your apps to run in Eel native. I find that the best test to make sure.

@sfatula Nice idea!.

I’ve had a thought on what might work very simply for me - and have run some experiments. The most problematic app for me is jellyfin, and there is no good backup strategy (you can copy files and db files, but there is no guarantee the data will work when copied to the new instance).

In my case, most of the jellyfin data is easy. Create a new jellyfin instance and point it at movies, tv, music etc. All metadata gets downloaded fresh. I can then recreate users.

However a lot of time has been spend creating collections and I don’t want to lose that data. It turns out that all collection data is stored in XML files in /config/collections.

So I installed a new jellyfin from Truenas (not Truecharts) in dragonfish, pointed it at my data (music, movies, tv) then copied over the collections folder from my existing jellyfin. They were ignored until I created a dummy collection, then it all worked.

Of course this will only work if the paths match (fixable using awk/grep). But I think I’ve proven that I can copy collections over when I have to reinstall jellyfin on Truenas Eel.

I will lose all list of what has been watched by every account, but those were unreliable anyway.

Paul.

Great video. Thanks for sharing it.
This helped a lot in understanding what’s happening with dockge.

1 Like

Does Jellyfin not have a backup plugin like Emby does? I have migrated very easily using the backup plugin in Emby. I don’t know much about Jellyfin, just curious.

@sfatula Not as far as I know. Looking online, there appear to be a few people proposing solutions to copying data, and proposals for creating a simple UI for backups. NO-ONE seems to be ensuring that simple restore is a part of that mix (as an old system IT guy - backups are only part of the problem, you need to have a reliable and tested restore strategy).

Wow, that’s bad then. Emby has a backup and restore plugin right in the plugins section of emby server. Surprised Jellyfin does not. So, it’s simple to backup and restore on another machine.