Jellyfin Forum
Migrating my JF installation from NAS to PC - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: Migrating my JF installation from NAS to PC (/t-migrating-my-jf-installation-from-nas-to-pc)



Migrating my JF installation from NAS to PC - andres87 - 2024-09-01

Hello, I'm considering buying a Mini PC just for Jellyfin. Currently I'm running my Jellyfin server in a Synology NAS. Is there a way to migrate my libraries, users and so on to the Mini PC or do I have to start from scratch?

The content will remain in the NAS, I'll only move the server.

I have lots of libraries for home videos and other not publicly available content that I wrote the metadata for, added the thumbnails and so on. Will I lose everything?

Also, is there a tutorial or something about linking my external NAS to the PC Jellyfin server? Will it be easy just following the Jellyfin prompts or do I have to mess with Windows?

I'm a bit worried this will be a huge pain to do.

Thanks for any help.


RE: Migrating my JF installation from NAS to PC - Host-in-the-Shell - 2024-09-01

How did you install Jellyfin on Synology? I'm assuming docker, and if that's the case, the transfer should be simple if you plan to run it under docker again. Otherwise, it may be more difficult or not possible. By the way, what's the target OS on the new computer?  Edit: I just realized you asked if you'd have to mess with Windows, so that pretty much answers the question. I've never run docker under Windows, but if your installation was done on docker like I'm speculating, then it should be transferable by creating a JF container in the new machine and porting over everything from the config directory. At least that's how it works under Linux, not sure about Windows. And as long as you point the container to the media already sitting in your NAS in the same way, then it should run as it was before, preserving everything, including metadata and users.


RE: Migrating my JF installation from NAS to PC - Efficient_Good_5784 - 2024-09-01

As long as you go from Docker to Docker and keep the paths to the files the same, you won't lose anything.

Jellyfin relies on the paths to the files being the same, otherwise it assumes all media with new paths are new (thus resulting in a rescan to get new updated metadata for them).

If you're going from Docker to Linux for example, it will require you to move some of the configuration files around since they store things differently too.


RE: Migrating my JF installation from NAS to PC - andres87 - 2024-09-02

I'm not sure what a docker is but after investigating a bit it unfortunately seems I didn't use docker, I installed it from the package centre, in the community tab, so it would be this: https://synocommunity.com/package/jellyfin

Assuming this means I'll lose everything, should I install Jellyfin in a docker in the new PC so I don't lose it in the future if I change hardware again?

Thanks.


RE: Migrating my JF installation from NAS to PC - Host-in-the-Shell - 2024-09-02

Unfortunately, that is an unofficial installation method and we can't really provide much support for it. My advice would be to seek help from SynoCommunity directly, since they're the ones that configured and maintain that package.

As for whether to reinstall using docker, that is going to depend on your use case. You can lose everything regardless of installation method if you're not backing up regularly, and there are ways to transfer your installation even without docker when using operating systems such as Windows and Linux; all you would need to do is clone your drive into a new machine. For that I use clonezilla, but there are many other ways you can use if you do research out there.

The benefits that docker brings to the table are isolation through containers while still retaining performance by directly interacting with the system's kernel, easy portability and quick restoration of a service provided something goes wrong by recreating the container which divides important data in volumes that are preserved outside of it. On the other hand, installing a service bare metal (without any virtualization such as virtual machines or docker) has its own set of benefits, particularly with total access to all hardware and the system without going through hoops, no extra consumption of space because there's no bundling redundant dependencies in containers, and essentially no need to learn docker on top of your regular system administration tasks.

Which one is more beneficial is going to depend on what you intend to do. Personally, learning docker for hosting just one service would be overkill IMO, but if you plan to host many additional services, then learning it could be very useful. It helps with streamlining updating and managing many services at once, and that's where it can truly shine. I like installing JF bare metal because my media server only has that service in it, so it doesn't split any performance with anything else, and virtualization isn't really all that important for me in a computer that doesn't host anything that's particularly mission critical. Also, because I backup my OS installation to restorable disk images, I can always redeploy easily as with docker.


RE: Migrating my JF installation from NAS to PC - andres87 - 2024-09-07

Please I need some more help. I decided to install it as normal with the .exe in W11 and since then I've been trying to migrate my Synology installation data. I've almost succeded but then I found a problem and I don't know how to fix it. 

I'll explain what I've done so far. This had way too much more steps as I tried things and undid them and tried another ones, but I'll summary:

First I needed to access the hidden Synology folders with my JF information, so on the NAS I created a new shared folder, connected from the MiniPc with telnet and did:
- rm -R /volume1/newfolder
- ln -s /volume1 /volume1/newfolder

Now I mapped that folder as a drive in w11.
This gave me access to the root hidden synology folders where I found the Jellyfin one inside @appdata.

I installed Jellyfin as normal (not service) with the .exe file.

I then went to the cache, config and so on folders in the programdata/jellyfin folder.

I compared this folder with the NAS folder and found out that:
- Cache folder was almost the same, so I overwrote it.
- Same with config folder.
- Data folder got complicated, as in the nas it has another data folder inside while in the PC it didn't.
I replaced the PC folder with the child NAS folder inside the parent data folder.
- I ignored the log folder.
- Next folder was metadata, which in the NAS is inside the data folder. I overwrote it.
This took a really really long time and gave me some errors so I had to restart the process a few times.
- Next one was plugins. This was also inside the NAS data folder. I overwrote it.
- Finally, the root folder. I could see all my library information inside this folder so I overwrote it as well.
- Another folder was the transcode folder that was empty.

I then went to every library folder inside the "root" folder (not the root one, the one called that).
I opened every options.xml file with notepad and replaced the \volume1\xxx path with the letter I assigned my NAS (N:\xxx)

Then I did the same with the mblink files.

Then I updated all paths in the config folder files system.xml and encoding.xml.

Now, the worse part of the process because it took me too long to figure out how modify databases.
I opened the library.db with "db browser for sqlite" and replaced the paths with:
UPDATE TypedBaseItems SET Path = replace(Path, '/volume1/@appdata', 'C:\\ProgramData') WHERE Path LIKE '/volume1/@appdata%';
UPDATE TypedBaseItems SET Path = replace(Path, '/volume1', 'N:') WHERE Path LIKE '/volume1%';
UPDATE TypedBaseItems SET Images = replace(Images, '/volume1/@appdata', 'C:\\ProgramData') WHERE Images LIKE '/volume1/@appdata%';
UPDATE TypedBaseItems SET Data = replace(Data, '/volume1/@appdata', 'C:\\ProgramData') WHERE Data LIKE '%/volume1/@appdata%';
UPDATE TypedBaseItems SET Data = replace(Data, '/volume1', 'N:') WHERE Data LIKE '%/volume1%';
UPDATE mediastreams SET Path = replace(Path, '/volume1', 'N:') WHERE Path LIKE '/volume1%';

Once this was done I chose a god to pray to while I started the server and went to http://localhost:8096

All my libraries appeared, with all my stats (viewed, favorited and so on). 

I tried watching a video and it worked great.

Now, what's the problem? 

I added a new file to one of my libraries and when I clicked "scan for new files" it overwrote the metadata for every file in that library. I tried with a couple more and it happened too. So I lost all my custom metadata, images and everything.

I restored the database from the NAS folder and did the update path queries and everything is perfect again, but I can't add new files because it will remove my custom metadata again.

The files are in the same folders as always and in the database I can see their added and edit dates and they're months old.

Maybe I've overlooked an xml file?  

I've looked everywhere and tried everything. I think I'm going crazy, I've been doing this for 5 days.

I'll end up doing a clean install and manually adding all the metadata, views and so on. It would've been faster but at this point I would like to successfuly migrate it.

Any ideas?


RE: Migrating my JF installation from NAS to PC - TheDreadPirate - 2024-09-07

Migrating between install types is fraught with many hurdles that few people have attempted. Good luck.


RE: Migrating my JF installation from NAS to PC - andres87 - 2024-09-09

I gave up. Can't waste more time trying to understand how it works. I could say it was a learning experience but honestly I didn't understand 90% of what I did.

I'm just slowly re-adding everything by hand, at least I know how to do that!