Jellyfin Forum
Couple of Questions (restoring backup, reverse proxy) - 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: Couple of Questions (restoring backup, reverse proxy) (/t-couple-of-questions-restoring-backup-reverse-proxy)



Couple of Questions (restoring backup, reverse proxy) - 4r5hw45twh - 2025-01-19

My setup:
Mini PC with latest Ubuntu LTS on it. Docker (not Docker Desktop) installed with Jellyfin in it.

Regarding restoring backup from another OS:
I just switched from a Windows 10 non-Docker setup. I backed up my Windows JF server before wiping the OS and getting Ubuntu. I now use a Docker setup for JF.
Are there certain files I can transfer to my Ubuntu JF installation so that all the metadata and data in general stays how it was? User accounts, themes, collections, etc etc.
It seems my Windows' ProgramData folder looks similar to my Ubuntu's /Jellyfin/Config folder, minus some folders.
Could I simply copy everything in the old ProgramData folder and paste into /Jellyfin/Config folder, or how does a nom-Docker Windows backup get restored to a Docker Ubuntu setup?
Ok, so I tried simply copy & pasting from ProgramData (ServerData in photo below) to my Ubuntu Config area, and that does seem to transfer my theme at least but then if I access Jellyfin in my browser, it shows my server name to connect to but never lets me actually connect to it.
[Image: 79Lyhu2.png]

Regarding reverse proxy:
EDIT: ALL of the below has been resolved (for now). I needed to remove the network_mode: 'host' line on my docker compose file for Jellyfin. Jesus.
What is the easiest route to go with Linux? I installed NPM in Docker, but I just get too lost following the guide here because
at the very end of it, it says, "In the 'SSL' tab, use the jellyfin.example.org certificate that you created with Nginx Proxy Manager" but when I test my domain name in that section, I get:
"There is a server found at this domain but it returned an unexpected status code 502. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."

EDIT for above: So, not sure what changed, but I actually am getting a success message when testing the SSL now in NPM. HOWEVER, I still get a 502 Bad Gateway error on my domain name's page itself that accesses Jellyfin....

I have my own domain name and use Cloudflare with it. On Windows, I also had Cloudflared installed as a service to make a tunnel with CF. Do I need this with Linux as well? I'm also thinking the issue might simply be that I run
JF in Docker now, so I don't have my DNS in Cloudflare pointing to the correct IP or something? On Windows, I had JF as a tray icon, so it had my PC's IP, not something in Docker. How would I fix this?
Not sure if it helps, but if I do "sudo docker ps," it looks like NPM is at:
Code:
0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
And then if I do "sudo docker inspect [npm container ID from previous command above]", I get an IP address at the bottom.
It looks like "172.xx.x.x"

My initial NPM docker-compose file was:
Code:
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

I also put NPM & JF on the same Docker network in the docker-compose file for them both. Let's just call it "mynetwork" for now.
EDIT: Actually, I just ran "sudo docker ps --format "table {{.Names}}\t{{.Networks}}"" and got
Code:
jellyfin    host
npm-app-1  mynetwork
So when I re-ran the docker-compose for Jellyfin, it didn't change to NPM's network for some reason? I assume it has something to do with Jellyfin's docker compose section of "network_mode: 'host'"?
If I try to force JF to use that network with "sudo docker network connect mynetwork jellyfin", I get this error:
"Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network"


RE: Couple of Questions (restoring backup, reverse proxy) - TheDreadPirate - 2025-01-19

Your Cloudflare domain should be pointing to your public IP. Which you cannot get from docker. That 172 address is the local IP of the container.

You'd need to look at your router's UI or use a site like "what is my IP" to find your public IP. You should also consider using this docker container to dynamically update your Cloudflare domain if your public IP changes.

https://github.com/favonia/cloudflare-ddns

To use NPM with Jellyfin, you would need to publish ports 80 and 443. Which you already did. What does your Nginx config look like for Jellyfin? Are you using the Jellyfin's bridge IP? Which WOULD be 172.X.X.X. You do NOT need to publish port 8096 in the jellyfin docker config if all access to Jellyfin will go through NPM.


RE: Couple of Questions (restoring backup, reverse proxy) - 4r5hw45twh - 2025-01-19

(2025-01-19, 09:09 PM)TheDreadPirate Wrote: You should also consider using this docker container to dynamically update your Cloudflare domain if your public IP changes.
https://github.com/favonia/cloudflare-ddns

I gotcha. So, what about the restoring-from-a-backup part? That's really the main thing I'm stuck on at the moment and once that's solved, I think I'm finally good to go again.
Not sure which file(s) I can straight up copy-and-paste over from ProgramData on Windows to /Jellyfin/Config on Ubuntu.
What my main concern is, is restoring the data of what I've already watched, the time left on certain episodes of stuff, all the metadata I had to manually change for some movies, etc.


RE: Couple of Questions (restoring backup, reverse proxy) - TheDreadPirate - 2025-01-20

You cannot simply copy and paste Jellyfin files between different install types. The Jellyfin database contains a lot of absolute paths for metadata and other files that would break when switching from Windows to Linux. Even going from a direct Linux install to a docker install requires some extra work to be able to migrate.

A community member wrote a migration script to make these database changes for migrating from Windows to Docker, but it hasn't been updated in 2 years. So it is possible it no longer works with Jellyfin 10.9 and newer. Worth a try though. Just make sure you have a backup copy.

https://jellyfin.org/docs/general/administration/migrate/#full-database-migration
https://github.com/MMMZZZZ/Jellyfin-Migrator

If you were restoring from Docker to Docker, you would simply restore the /config and /cache folders you specified in the Docker compose.


RE: Couple of Questions (restoring backup, reverse proxy) - 4r5hw45twh - 2025-01-20

(2025-01-20, 12:20 AM)TheDreadPirate Wrote: If you were restoring from Docker to Docker, you would simply restore the /config and /cache folders you specified in the Docker compose.

Does this apply for hopping OS's as well? As long as it's in Docker, I could copy/paste the folders between OS's? Or still only OS's of the same type?
Because it sounds like I'll just have to bite the bullet yet again (I've rebuilt this darn library, metadata, etc etc, like 6 times in the past year and it takes hours each time) and get it how I want (again) on Ubuntu/Docker and then from there, could be a simple copy-and-paste thing with the Docker volume folders?


RE: Couple of Questions (restoring backup, reverse proxy) - TheDreadPirate - 2025-01-20

Docker is Docker. Even going to Docker in MacOS should be ok. Or even Docker in WSL2 in Windows.

That is the advantage of Docker. Data portability.