Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/JPVenson/jellyfin.org int…
Browse files Browse the repository at this point in the history
…o pr/1099
  • Loading branch information
felix920506 committed Oct 28, 2024
2 parents c4323f3 + d84fbd0 commit 2cc1ad5
Show file tree
Hide file tree
Showing 9 changed files with 142 additions and 30 deletions.
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.github/ @jellyfin/core
blog/ @jellyfin/core
src/data/ @jellyfin/core
docs/general/about.md @jellyfin/core
docs/general/community-standards.md @joshuaboniface
2 changes: 1 addition & 1 deletion blog/2024/10-26-jellyfin-release-10.10.0/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ We are pleased to announce the latest stable release of Jellyfin, version 10.10.

This major release brings several new features, improvements, and bugfixes to improve your Jellyfin experience. With our faster release cadence between 10.9.0 and 10.10.0, this release should be far less daunting, so please read on for a quick peek at what's new and some important-to-know breaking changes!

You may upgrade your Jellyfin instances at any time now. For those who were running Unstable builds for testing, we thank you immensely, and you may now switch back to the Stable repository and forcibly reinstall/repull the latest version. As always, **ensure you [back up your Jellyfin data and configuration directories](/docs/general/testing/upgrades#make-backups) before upgrading**. With a major release, it's possible you will hit a bug and want to revert, and to do so, you will need to restore from a backup.
You may upgrade your Jellyfin instances at any time now. For those who were running Unstable builds for testing, we thank you immensely, and you may now switch back to the Stable repository and forcibly reinstall/repull the latest version. As always, **ensure you [back up your Jellyfin data and configuration directories](/docs/general/administration/backup-and-restore) before upgrading**. With a major release, it's possible you will hit a bug and want to revert, and to do so, you will need to restore from a backup.

Happy watching!

Expand Down
74 changes: 74 additions & 0 deletions docs/general/administration/backup-and-restore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
uid: backup-and-restore
title: Backup and Restore
---

# Backup and Restore

This guide documents how to both back up and then restore the data in your Jellyfin instance.

## Why Backing Up is Important

Backups are important in general for all digital data. There are myriad possible bugs and issues that can arise and cause data loss, especially when you upgrade major releases (for instance, from Jellyfin 10.9.x to Jellyfin 10.10.x).

In addition, Jellyfin does not have a downgrade mechanism. This is very important to understand; once your Jellyfin instance has been started with a new version, any pending migrations are immediately applied, and your Jellyfin data will no longer work with the old version. The **only** way to restore your active instance back to the old version is to restore a backup. Backups are thus critical if you want to test Unstable versions, or before upgradiing to the latest version. In fact, when testing Unstable, it is best to back up much more regularly, perhaps using a cron job or similar automatic mechanism, to ensure that your data can be recovered if you hit a major issue.

Backups may also come in handy if you hit a bug. For instance, if a bug in the new version causes corruption of some aspect of the Jellyfin data, restoring from a backup means you can quickly restore to good data and apply any fixes to avoid a repeat. Without a backup, you would be completely out of luck in this situation.

Finally, administrative mistakes, normal operation issues (e.g. filling up a disk), or general bit rot can cause corruption or issues that require a backup to be restored. It's always better to have one than not.

## Taking a Backup

1. Stop the running Jellyfin server. This is extremely important, as otherwise the database will be locked and might not be recoverable when restoring. Note that this will interrupt any playback.

* Any platform: Within the Jellyfin Dashboard, click "Shutdown". This should cleanly stop the process on all platforms, but if not, try one of the following.
* Docker: `docker stop jellyfin`
* Debian/Ubuntu packages: `sudo systemctl stop jellyfin` or `sudo service jellyfin stop`
* Windows Installer: Right-click the Tray app, and select "Quit"; or, in Process Manager, find the Jellyfin process and terminate it.
* MacOS Installer (.dmg): In Activity Monitor, find the Jellyfin process and terminate it.
* Portable Installs (regardless of platform): Stop the running `jellyfin` or `jellyfin.exe` program, however it was started.

2. Copy your data and configuration directories to a destination of your choice. What you name the copies is up to you; personally, I like to use dated and versioned directory names e.g. `jellyfin.2024-05-01_10.8.13`. Where these files are also depends on the platform; generally these follow the [XDG Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) for platforms that support it. For more information see [the configuration documentation](/docs/general/administration/configuration/#server-paths).

**NOTE**: These are default locations; if you've changed your data or config paths, use those instead.

* Official Docker: Wherever your `/data` and `/config` volumes are sourced from; this is set in your `docker-compose.yml` or in your `-v` options to `docker run`.
* LinuxServer.io Docker: Data and config are wherever your `/config` volume is sourced from; this is set in your `docker-compose.yml` or in your `-v` options to `docker run`.
* Debian/Ubuntu packages: Data is in `/var/lib/jellyfin` and config is in `/etc/jellyfin`; these are defined in `/etc/default/jellyfin`.
* RPMFusion Fedora/CentOS packages: Data is in `/var/lib/jellyfin` and config is in `/etc/jellyfin`; these are defined in `/etc/sysconfig/jellyfin`.
* Windows Tray/Installer (.exe): Data and config is in `%PROGRAMDATA%\Jellyfin\Server` (`C:\ProgramData\Jellyfin\Server`) or `%LOCALAPPDATA%\Jellyfin` (`C:\Users\<Username>\AppData\Local\Jellyfin`).
* MacOS Installer (.dmg): Data is stored in one of these paths; back up whichever one(s) exist: `~/.config/jellyfin/`, `~/.local/share/jellyfin/`, `~/Library/Application Support/Jellyfin/`.
* Portable Installs:
* Linux: Data is stored in `~/.local/share/jellyfin` and config in `~/.local/share/jellyfin`.
* Windows: Data and config is in `C:\Users\<Username>\AppData\Local\Jellyfin`, using `%LOCALAPPDATA%`.
* MacOS: Data is stored in these paths; back up whichever one(s) exist: `~/.config/jellyfin/`, `~/.local/share/jellyfin/`, `~/Library/Application Support/Jellyfin/`.

As an example, on Debian, you can do this with these commands to make a copy of both directories into a single target directory:

```bash
TIMESTAMP=$(date +%Y%m%d%H%M%S)
VERSION=10.9.10
sudo mkdir -p /media/backups/jellyfin.${TIMESTAMP}_${VERSION} # Or change the path wherever in your system makes sense to you
sudo cp -a /var/lib/jellyfin /media/backups/jellyfin.${TIMESTAMP}_${VERSION}/data
sudo cp -a /etc/jellyfin /media/backups/jellyfin.${TIMESTAMP}_${VERSION}/config
```

3. Start up Jellyfin again, either after upgrading or on the current version. You now have a safe copy of your data in the path chosen in step 2.

## Restoring a Backup

This process assumes you followed the steps above to take the backup.

1. Stop the running Jellyfin server process.

2. Move your current data and configuration directories out of the way (e.g. by appending `.bak` to them). For example, `sudo mv /var/lib/jellyfin /var/lib/jellyfin.bak` and `sudo mv /etc/jellyfin /etc/jellyfin.bak`.

3. Copy - **do not move or rename** - your backup to the existing name. For example, `sudo cp -a /media/backups/jellyfin.2024-10-27_10.9.11/data /var/lib/jellyfin` and `sudo cp -a /media/backups/jellyfin.2024-10-27_10.9.11/config /etc/jellyfin`.

4. If required, downgrade Jellyfin to the same version as your backup now.

5. Start up Jellyfin again. It should start cleanly with the old data, assuming versions are correct. If you downgraded this may happen automatically.

## The Future

Long-term, we have plans to provide an official backup and restore plugin bundled with Jellyfin, however this requires the completion of our EFCore rewrite, which is currently slated for our next major release 10.11.0. Once that becomes available, this document will be updated to reflect the process using that plugin.
2 changes: 1 addition & 1 deletion docs/general/administration/hardware-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ AMD is **NOT** recommended if you plan to use integrated graphics for Jellyfin.

:::caution

Intel 7-10th gen CPUs have been removed from this list, since the toolkit for these generations has been deprecated by Intel. QSV on Linux for these iGPUs may stop working in a few years. You will be required to switch to VA-API when that happens.
Intel 7-10th gen CPUs have been removed from this list, since the toolkit for these generations has been deprecated by Intel. If you own 7-10th gen CPUs with integrated graphics, please continue to use them for Jellyfin, as they are still perfectly capable of performing the task. If you are making a purchase decision, please consider something else instead.

:::

Expand Down
7 changes: 7 additions & 0 deletions docs/general/clients/kodi.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ To use Add-on mode, simply choose "Add-on" at the dialog and proceed to [Library

#### Native Mode

:::caution

Do not use Native mode! Use Addon-mode instead.

Jellyfin 10.10 no longer provides the shared network folder via the API, and as such native mode does not get the required information to function.

:::
Native mode accesses your media files directly from the filesystem, bypassing the Jellyfin server during playback. Native mode needs more setup and configuration, but it can, on rare occasions, lead to better performance where network bandwidth is a limitation. It requires your media to be available to the device Kodi is running on over either NFS or Samba, and therefore should only be used on a LAN or over a VPN connection.

To use Native mode, first set up your libraries in Jellyfin with a remote path.
Expand Down
57 changes: 32 additions & 25 deletions docs/general/installation/container.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,28 +311,35 @@ SuccessExitStatus=0 143
WantedBy=default.target
```

## TrueNAS SCALE / TrueCharts

Jellyfin is available as a [TrueNAS SCALE](https://www.truenas.org/) App inside the [TrueCharts](https://www.truecharts.org/) App Catalog with direct integration into the GUI, no CLI needed. Direct support is available on the [TrueCharts Discord](https://discord.gg/tVsPTHWTtr) and the source code is available on [GitHub](https://github.com/truecharts/charts).

1. Install the TrueCharts Catalog to TrueNAS SCALE, see [website](https://truecharts.org/manual/SCALE/guides/getting-started/#adding-truecharts) for more info.

1. Go to Apps page from the top level SCALE menu
2. Select Manage Catalogs tab on the Apps page
3. Click Add Catalog
4. After reading the iXsystems notice, click Continue and enter the required information:
Name: truecharts
Repository: `https://github.com/truecharts/catalog`
Preferred Trains: `enterprise` and `stable`
Branch: main
5. Click Save and allow SCALE to refresh its catalog with TrueCharts (this may take a few minutes)

2. Click `Available Applications` and search for `Jellyfin`

3. Click `Install`, which will take you to the GUI Wizard and you'll be able to fill out the necessary info

- Server URL to publish in UDP Auto Discovery response.
- Networking, Ingress (Reverse Proxy), Security Options
- Adding Storage (for media folders) is also a standalone guide available in the [TrueCharts documentation](https://truecharts.org/manual/SCALE/guides/add-storage/). For Jellyfin the recommendation is to add storage as `Additional App Storage`

4. Click Save and once it's up and running you'll be able to click Open to access `Jellyfin`.
## TrueNAS SCALE

Jellyfin is available as a [TrueNAS SCALE](https://www.truenas.org/) App in the official app catalog with direct integration into the GUI, no CLI needed.

1. Go to Apps page from the top level SCALE menu

2. Click `Discover Apps` and search for `Jellyfin`

3. Click `Install`, which will take you to the GUI installation wizard and you'll be able to fill out the necessary info

- Published Server URL to publish in UDP Auto Discovery response
- User and Group Configuration: adjust only if needed, defaults to `568:568` which is `apps:apps` user/group
- Network Configuration
- Tick `Host Network` if DLNA is used, otherwise it's optional.
- You may optionally change the `WebUI Port` to the Jellyfin's default of `8096` if it's not occupied already by another app.
- Storage Configuraton
- For `Jellyfin Config Storage` and `Jellyfin Cache Storage`, consider mapping Host Paths for ease of backup.
- Store them on SSD storage if possible, as using HDD storage **will** lead to poor experience.
- For `Jellyfin Transcode Storage`, consider using `Temporary` or `tmpfs`
- `Temporary` places a Docker volume under your configured Apps dataset (`Apps` -> `Configuration` -> `Choose Pool`). Avoid if that's on HDD.
- `tmpfs` creates a temporary directory on the RAM. Ensure you set the limit to at least a few gigabytes, and that you have considerate amount of spare memory, since TrueNAS disables swap by default. You may need to increase the limit if you have many large media files streamed with transcoding at once, or transcodes might fail. Note that total memory usage may also be capped in the `Resources Configuration` section.
- If your only SSD storage is the boot drive, you may configure a Host Path mount to `/var/tmp/jellyfin_transcodes`.
- For media, add your library directories as Additional Storage.
- For hardware-accelerated transcoding, under the Resources Configuration:
- If using NVIDIA, tick `Use this GPU` under your listed GPU. If you don't see your GPU, go to `Apps` -> `Configuration` -> `Settings` -> Install NVIDIA Drivers.
- If using other vendors, tick `Passthrough available (non-NVIDIA) GPUs`.
- Then in Jellyfin UI, configure it under `Dashboard` -> `Playback` -> `Transcoding`.
- Note that [some newer Intel GPUs](/docs/general/administration/hardware-acceleration/known-issues#intel-on-linux) might require a newer kernel version than provided. If that's the case for your GPU, you may consider using a VM with PCIe pass-through instead of app containers.

4. Click `Install` and once it's up and running you'll be able to click `Web UI` button to access `Jellyfin`.

Additional documentation is available on [TrueNAS Documentation Hub](https://www.truenas.com/docs/truenasapps/communityapps/jellyfin/).
4 changes: 1 addition & 3 deletions docs/general/testing/upgrades.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ The only way to downgrade from an Unstable to an older Stable is to restore from

You can utilize certain plugins to help with this, for instance the Trakt plugin to synchronize watched status, but this will not necessarily preserve everything. So be careful here, and know the limitations before proceeding.

How to back up your server depends on the exact platform, as each platform stores data in different places. [The exact locations are documented here](/docs/general/administration/configuration/#server-paths).

**Ensure you stop Jellyfin from running before taking a backup**. If you don't, the database might still be locked and this can cause problems when restoring.
Follow [the process listed in the documentation here](/docs/general/administration/backup-and-restore) for more details.

### Disable Automatic Updates on Unstable

Expand Down
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ Want to know more about administering a Jellyfin server? Check out these pages!

- [Quick-Start Guide](/docs/general/quick-start): What to do after you have installed Jellyfin to get it up and running.
- [Migrating](/docs/general/administration/migrate): How to migrate Jellyfin.
- [Backup and Restore](/docs/general/administration/backup-and-restore): How to back up or restore your Jellyfin metadata and configuration.
- [Plugins](/docs/general/server/plugins): How to install and manage plugins.
- [Networking](/docs/general/networking): Networking settings and troubleshooting.
- [Monitoring](/docs/general/networking/monitoring): Integration with external monitoring software.
Expand Down
23 changes: 23 additions & 0 deletions src/data/clients.ts
Original file line number Diff line number Diff line change
Expand Up @@ -907,5 +907,28 @@ export const Clients: Array<Client> = [
url: 'https://streamyfin.app'
}
]
},
{
id: 'manet',
name: 'Manet',
description: 'A third-party music client for iOS',
clientType: ClientType.ThirdParty,
deviceTypes: [DeviceType.Mobile],
licenseType: LicenseType.Proprietary,
platforms: [Platform.IOS],
primaryLinks: [
{
id: 'app-store',
name: 'App Store',
url: 'https://apps.apple.com/us/app/manet-music/id6470928235'
},
],
secondaryLinks: [
{
id: 'website',
name: 'Website',
url: 'https://tilo.dev/manet/'
}
]
}
];

0 comments on commit 2cc1ad5

Please sign in to comment.