Jellyfin Forum
Jellyfin Backup - 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: Jellyfin Backup (/t-jellyfin-backup)



Jellyfin Backup - Dzvon2 - 2024-05-14

I am looking to upgrade to the newest Jellyfin version 10.9.1, and I see its recommended to take a full backup of Jellyfin before updating in case there are issues. I tried looking up online and found conflicting pieces of info about what is needed for a backup. I am using Ubuntu and wanted to know if anyone could share what directories I should be backing up? Thanks in advance.


RE: Jellyfin Backup - TheDreadPirate - 2024-05-14

Stop jellyfin and back up these directories.

/var/lib/jellyfin
/etc/jellyfin

If anything goes wrong or you need to revert back to 10.8.13, restore these directories and, just for good measure, chown them.

sudo chown -R jellyfin: /var/lib/jellyfin /etc/jellyfin


RE: Jellyfin Backup - cesar_bianchi - 2024-08-09

You can also apply an automatic backup routine over your Jellyfin instance.

https://forum.jellyfin.org/t-automatic-run-backup-of-your-jellyfin-instance


RE: Jellyfin Backup - 34626 - 2024-08-09

I use the official jellyfin docker, very easy to maintain, especially when it comes to backup, restore and upgrade :-)


RE: Jellyfin Backup - TheDreadPirate - 2024-08-09

On my bare metal, non-docker, Jellyfin install I opted to write a short backup script and setup a cron. When the cron triggers, in the middle of the night when no one is using my Jellyfin, it runs the script, which stops jellyfin and then rsyncs any changes to a backup folder. Then I setup Duplicati to sync the backup directory to my Google Drive. Duplicati is configured to keep 30 days of backups, which are differentials so it isn't using up a huge amount of space.


RE: Jellyfin Backup - alleycat - 2024-10-12

(2024-08-09, 08:40 PM)TheDreadPirate Wrote: On my bare metal, non-docker, Jellyfin install I opted to write a short backup script and setup a cron. When the cron triggers, in the middle of the night when no one is using my Jellyfin, it runs the script, which stops jellyfin and then rsyncs any changes to a backup folder.  Then I setup Duplicati to sync the backup directory to my Google Drive.  Duplicati is configured to keep 30 days of backups, which are differentials so it isn't using up a huge amount of space.

Would you be willing to share this script with us noobs? I've been worried about backing up. I would like to backup to TrueNAS Scale.
This sounds like what I've been looking for...


RE: Jellyfin Backup - TheDreadPirate - 2024-10-13

The way mine works is by writing to a temporary "backup" directory on my NVMe drive. This minimizes down time. Once the backup completes to the NVMe drive I start up my containers and then it starts writing the backup to the hard drive for storage.

I use rsync because it has an option (--delete) to clean up files in the "destination" folder that are no longer present in the "source". This helps prevent the backup from bloating with files that no longer exist.

Update the three path variables at the top with where your files are located.

BACKUPDIR = the temp path you are moving files to. Preferably the path is on a fast SSD.
DOCKERDIR = the root path for where all your docker data is located.
STORAGEDIR = the path for permanent backup storage.

Code:
#!/bin/bash

BACKUPDIR=/root/backup
DOCKERDIR=/docker/containers
STORAGEDIR=/media/library/backup

mkdir -p $BACKUPDIR
mkdir -p $BACKUPDIR/docker

cd $DOCKERDIR
docker compose down
rsync -a -p --progress . $BACKUPDIR/docker/ --delete
docker compose up -d

mkdir -p $STORAGEDIR

rsync -a -p --progress $BACKUPDIR/docker $STORAGEDIR --delete

Then I have duplicati running as a service that pushes the storage backup folder to Google Drive.

My containers, not just jellyfin, are down for about 5-7 seconds since rsync essentially does a "diff" backup. The initial backup will take longer.


RE: Jellyfin Backup - alleycat - 2024-10-13

(2024-10-13, 01:11 AM)TheDreadPirate Wrote: The way mine works is by writing to a temporary "backup" directory on my NVMe drive.  This minimizes down time.  Once the backup completes to the NVMe drive I start up my containers and then it starts writing the backup to the hard drive for storage.

I use rsync because it has an option (--delete) to clean up files in the "destination" folder that are no longer present in the "source".  This helps prevent the backup from bloating with files that no longer exist.

Update the three path variables at the top with where your files are located.

BACKUPDIR = the temp path you are moving files to.  Preferably the path is on a fast SSD.
DOCKERDIR = the root path for where all your docker data is located.
STORAGEDIR = the path for permanent backup storage.

Code:
#!/bin/bash

BACKUPDIR=/root/backup
DOCKERDIR=/docker/containers
STORAGEDIR=/media/library/backup

mkdir -p $BACKUPDIR
mkdir -p $BACKUPDIR/docker

cd $DOCKERDIR
docker compose down
rsync -a -p --progress . $BACKUPDIR/docker/ --delete
docker compose up -d

mkdir -p $STORAGEDIR

rsync -a -p --progress $BACKUPDIR/docker $STORAGEDIR --delete

Then I have duplicati running as a service that pushes the storage backup folder to Google Drive.

My containers, not just jellyfin, are down for about 5-7 seconds since rsync essentially does a "diff" backup.  The initial backup will take longer.

I thank you for the reply and script example. My standalone Jellyfin server (Dell 7050) runs Ubuntu 24.04 (bare metal) and I installed the Jellyfin repo straight to it, thats the only software on this machine. I don't think I'm running Docker or Flatpacks on the Dell. I was hoping to rsync Jellyfin data from the Dell to a dataset on my Truenas Mini X+, which is another machine.

This is how I installed Jellyfin from the docs:
curl https:// repo.jellyfin.org/install-debuntu.sh | sudo bash