2024-06-01, 05:21 PM
After a year of running JF, I attempted to do my first upgrade (to 10.9.3) using the windows installer. If you are like myself, it failed miserably and did not want to give up my cool af streaming server. Here is what I did to work around it. Some of it can be considered RTFM.
1. Don't use the windows installer.
2. Download the amd64 standalone version zip file (assuming you are on a 64bit system)
3. For the cleanest upgrade, I recommend stopping the service, and then remove it using nssm (https://nssm.cc/download).
4. <Optional but strongly recommend> Make a 00_Original folder and move both your data and JF server|system folders into it.
5. Extract the JELLYFIN FOLDER into your directory.
Tip- because mine is on a web server, I have mine on a different drive than root. Lets just say that my root drive is F:\JellyFin\
(yes I know I should not post drive letters, but if you honestly think that is my real drive letter /-: , I am using an example to make it easier to digest)
So when I extracted it, I now have this path: F:\JellyFin\JellyFin
6. Rename the JellyFin directory to something like System or Server. It really does not matter. If you did not remove the service from step3, you will need to keep the original directory name.
F:\JellyFin\Server
7. COPY the original Data folder back into F:\JellyFin , " F:\JellyFin\Data"
Don't move it and here is why. You want to have an unsullied copy of the Data directory, just in case. Trust me, you will thank me later if anything blows up.
8. Start up a command prompt (as administrator)
9. Run this command: F:\JellyFin\system\jellyfin.exe -d F:\JellyFin\data
This will start your new (temp) instance. However you accessed JF before the "upgrade" use the same method as before. If it works, you should be able to log in with your original cred and see all your data. If it doesn't work, then you have a choice to either debug why, or "restore" by getting rid of the "new" data and system folders, then from your 00_Original folder, COPY (not move) both folders back and try the command again. It should work. If it still does not, then you have a deeper problem.
10. Close out of the command window. **THIS WILL STOP JF**
11. Start the JF service from within computer management. Or if you named your service "JellyFin Server"
cmd line: net start "JellyFin Server"
**If you removed the service, you will need to add it back in using a tool like nssm
You should be good to go and have a working server again.
========
Using NSSM
========
If you have not used NSSM before, it is very simple to use. The biggest misconception is that you can just double click on nssm.exe and expect the gui to appear. That is not how that works. You have to invoke it from the command line.
Download location: https://nssm.cc/download
(for arguments sake you downloaded nssm and placed it here: d:\tools\nssm\nssm.exe )
Installing a service
1. Open a admin cmd prompt.
2. cd d:\tools\nssm\
3. nssm install "JellyFin Server"
4. The gui will appear. For JF the 4 critical fields are:
Path: F:\JellyFin\system\jellyfin.exe
Start: F:\JellyFin\system
Argument: -d F:\JellyFin\data
Startup Type: Automatic (I set mine to delayed start since it is not a critical service. Its just a personal preference)
Optional but recommended: Tab Details, Set the display Name to JellyFin Server.
5. Press Install Service
Removing a service
1. Open a admin cmd prompt.
2. cd d:\tools\nssm\
3. (assuming the name of the EXISTING service is "JellyFin Server")
nssm remove "JellyFin Server"
**You can remove/install any service using nssm. It is not dedicated to JF.
Done
Some Q&A
1. No I am not a developer of the system.
2. Why did the installer not work? I have no idea. My best guess is that it did not cleanly shut down the service and had issues with locked files or something. Does not really matter to me since while the installer is meant to be "for ease", this method is even more easier that anyone can do it.
3. Can I hire you to install it for me? Probably not, I am way too expensive and out of reach for most unless you are super wealthy. Besides, you will miss out learning on how to do things for yourself. Where is the fun in that?
4. Will this method on *nix? the move/copy parts, yes. The nssm part? no. nssm is a windows only tool. Linux has a completely different method of starting up binaries.
5. Do I need to use the same paths and folder names as you? No. You can use whatever names and drives of your choosing. I simply put examples of what an actual path would look like instead of <DriveLetter>:\Path\To\Folder
6. How can I trust NSSM? That is up to you. I did not develop the tool nor have any stake in it. It's free and has been around for as long as I can remember, and I have been in IT since 1998 during the NT4 days and RedHat was still free.
Michael B. Morell, CISSP CCSK
1. Don't use the windows installer.
2. Download the amd64 standalone version zip file (assuming you are on a 64bit system)
3. For the cleanest upgrade, I recommend stopping the service, and then remove it using nssm (https://nssm.cc/download).
4. <Optional but strongly recommend> Make a 00_Original folder and move both your data and JF server|system folders into it.
5. Extract the JELLYFIN FOLDER into your directory.
Tip- because mine is on a web server, I have mine on a different drive than root. Lets just say that my root drive is F:\JellyFin\
(yes I know I should not post drive letters, but if you honestly think that is my real drive letter /-: , I am using an example to make it easier to digest)
So when I extracted it, I now have this path: F:\JellyFin\JellyFin
6. Rename the JellyFin directory to something like System or Server. It really does not matter. If you did not remove the service from step3, you will need to keep the original directory name.
F:\JellyFin\Server
7. COPY the original Data folder back into F:\JellyFin , " F:\JellyFin\Data"
Don't move it and here is why. You want to have an unsullied copy of the Data directory, just in case. Trust me, you will thank me later if anything blows up.
8. Start up a command prompt (as administrator)
9. Run this command: F:\JellyFin\system\jellyfin.exe -d F:\JellyFin\data
This will start your new (temp) instance. However you accessed JF before the "upgrade" use the same method as before. If it works, you should be able to log in with your original cred and see all your data. If it doesn't work, then you have a choice to either debug why, or "restore" by getting rid of the "new" data and system folders, then from your 00_Original folder, COPY (not move) both folders back and try the command again. It should work. If it still does not, then you have a deeper problem.
10. Close out of the command window. **THIS WILL STOP JF**
11. Start the JF service from within computer management. Or if you named your service "JellyFin Server"
cmd line: net start "JellyFin Server"
**If you removed the service, you will need to add it back in using a tool like nssm
You should be good to go and have a working server again.
========
Using NSSM
========
If you have not used NSSM before, it is very simple to use. The biggest misconception is that you can just double click on nssm.exe and expect the gui to appear. That is not how that works. You have to invoke it from the command line.
Download location: https://nssm.cc/download
(for arguments sake you downloaded nssm and placed it here: d:\tools\nssm\nssm.exe )
Installing a service
1. Open a admin cmd prompt.
2. cd d:\tools\nssm\
3. nssm install "JellyFin Server"
4. The gui will appear. For JF the 4 critical fields are:
Path: F:\JellyFin\system\jellyfin.exe
Start: F:\JellyFin\system
Argument: -d F:\JellyFin\data
Startup Type: Automatic (I set mine to delayed start since it is not a critical service. Its just a personal preference)
Optional but recommended: Tab Details, Set the display Name to JellyFin Server.
5. Press Install Service
Removing a service
1. Open a admin cmd prompt.
2. cd d:\tools\nssm\
3. (assuming the name of the EXISTING service is "JellyFin Server")
nssm remove "JellyFin Server"
**You can remove/install any service using nssm. It is not dedicated to JF.
Done
Some Q&A
1. No I am not a developer of the system.
2. Why did the installer not work? I have no idea. My best guess is that it did not cleanly shut down the service and had issues with locked files or something. Does not really matter to me since while the installer is meant to be "for ease", this method is even more easier that anyone can do it.
3. Can I hire you to install it for me? Probably not, I am way too expensive and out of reach for most unless you are super wealthy. Besides, you will miss out learning on how to do things for yourself. Where is the fun in that?
4. Will this method on *nix? the move/copy parts, yes. The nssm part? no. nssm is a windows only tool. Linux has a completely different method of starting up binaries.
5. Do I need to use the same paths and folder names as you? No. You can use whatever names and drives of your choosing. I simply put examples of what an actual path would look like instead of <DriveLetter>:\Path\To\Folder
6. How can I trust NSSM? That is up to you. I did not develop the tool nor have any stake in it. It's free and has been around for as long as I can remember, and I have been in IT since 1998 during the NT4 days and RedHat was still free.
Michael B. Morell, CISSP CCSK