Jellyfin is a streaming service of your own, for the films, TV series and music you already have. Point it at your files and it fetches posters, descriptions and episode lists, then streams to a browser, phone, tablet or TV, with no subscription and nobody watching what you watch.
On this page
At a glance#
- What it is
- Media Server Media
- Where it opens
- Media Server
On its own port at
http://your-server:port, orjellyfin.your-domainonce you have a domain - Updates
- Automatic A backup is taken first, and it rolls back if the update fails
- Backups
- Included Part of the daily backup when that's switched on
- Copies
- As many as you like Run several copies, each with its own data
What it's good for#
If you've got a hard drive of films and series, Jellyfin turns it into something the whole house can use. It sorts your files into a library with artwork, cast lists and plot summaries, remembers where each person stopped, and plays on nearly anything with a screen. When a device can't play a file as it is, Jellyfin converts it on the fly.
It plays music too, and it's a fine choice if you want one app for everything. If music is your main interest, Navidrome or Funkwhale do that one job better, and for audiobooks there's Audiobookshelf.
Signing in#
A new Jellyfin opens on a setup wizard, and whoever finishes it becomes the administrator. On a server other people can reach, that would be a race. So LibrePortal finishes the wizard itself as soon as Jellyfin answers, and keeps Jellyfin reachable from the server only until it has checked the new login works.
The account is called admin. Its password is in the Login Details shown when the install finishes; press Welcome on the app's page to see it again.
LibrePortal has no Tools for Jellyfin, so you change passwords and add people inside Jellyfin itself. If you change the admin password there, the Login Details keep showing the old one, so keep the new one somewhere safe, like your password manager.
If the install couldn't finish the wizard
If something went wrong (Jellyfin didn't answer within three minutes, say), the install says so and leaves Jellyfin reachable from the server only, so nobody else can claim it. The simplest fix is to uninstall it and install it again. Only restart it to open it up once you know the admin account exists.
Installed with 0.4.6 or earlier?
Older versions left the wizard for you to finish. If you never did, the next time Jellyfin starts after you update to 0.4.7, LibrePortal finishes it with a generated password and shows it in the Login Details. If you'd already finished it yourself, nothing changes.
Adding your films and series#
LibrePortal doesn't create any libraries, because only you know what kind of media you have. Jellyfin reads your files from its media folder, which is in its app folder, normally /libreportal-containers/jellyfin/media. Inside Jellyfin that folder is called /media.
- Copy your files in. Keep films and series in separate folders, like
media/Filmsandmedia/TV. Jellyfin matches names against online databases, soFilms/The Matrix (1999)/The Matrix (1999).mkvandTV/Doctor Who/Season 01/work far better than whatever the files were called on the disk. - Add a library. Sign in, open Jellyfin's Dashboard, go to Libraries and add one, choosing the content type (Movies, Shows, Music and so on) and the folder under
/media. - Let it scan. The first scan of a big collection can take a while as Jellyfin downloads artwork. It picks up new files by itself after that.
There's also a media2 folder next to it, which Jellyfin can read but never change. It suits files you want kept safe from anything Jellyfin might do, like deleting.
Set your country
LibrePortal answers the wizard's language questions with English and the United States. If you're elsewhere, change the metadata language and country in the Dashboard so that film titles, age ratings and release dates match where you live.
Adding people#
Give everyone their own account, so each person gets their own "continue watching" row and you can keep the grown-up films away from the children's profiles. Accounts are added in Jellyfin's Dashboard, under Users, where you can also choose which libraries each person sees.
Watching on phones and TVs#
This is where Jellyfin shines. There are Jellyfin apps for Android and iPhone, Android TV and Fire TV, and several other TV platforms and desktops, plus apps from other makers that speak its language. In any of them, add a server with Jellyfin's address, exactly as you open it in the browser, and sign in.
Jellyfin is marked Public in the catalogue, with no extra login in front of it, because those apps have to reach the same port the browser does. If everyone who watches lives with you, making it private is the safer choice, and the LibrePortal VPN brings it with you when you're away. With a domain, it gets its own address at jellyfin.<your domain>, over HTTPS.
Good to know#
- Converting video uses the processor. LibrePortal doesn't hand Jellyfin a graphics card, so when a device needs a file converted, the server's CPU does the work. Converting high-definition video is hard work for a small server, while a file the device can play as it is costs almost nothing, so formats your TVs and phones play directly save a lot of effort.
- Backups include your media. LibrePortal backs up the whole app folder, so a film collection makes for a very big backup. Make sure your backup location has room for it before the first nightly run.
- Updates are automatic, following Jellyfin's latest release, with a backup taken first.
- It runs on your server's timezone from 0.4.7, which is what its scheduled tasks and logs go by. Installs made with 0.4.6 or earlier run on UTC, because the setting never reached the app. Press Update Configuration on its Config tab, without changing anything, to fix that: it rewrites the app's compose file, which an update leaves alone, and keeps your libraries and accounts. It also checks the admin login as an install does, so if the password in the Login Details no longer works (you changed it inside Jellyfin, or set Jellyfin up yourself before 0.4.7), Jellyfin comes back reachable from the server only. Restart it to open it up again.
- You can run several copies, each with its own library and accounts; see More than one copy of an app.
Addresses and ports#
Jellyfin has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.
| What it is | Who can reach it | With a domain |
|---|---|---|
| Media Server | Anyone | jellyfin.your-domain |
Settings#
In its config file#
Jellyfin's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.
| Setting | What it does | Starts as |
|---|---|---|
NameCFG_JELLYFIN_DISPLAY_NAME |
What this app is called on your dashboards. Leave empty to use its usual name | Empty |
Show on the LibrePortal DashboardCFG_JELLYFIN_SHOW_ON_DASHBOARD |
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard Choices: true, false |
true |
Tools#
Jellyfin's Tools tab has 1 button for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.
Read LibrePortal's SharedVideo folder, read-only, alongside Jellyfin's own folders. It is the same folder ownCloud and Nextcloud show, and it is turned on if it is off. Jellyfin restarts for a few seconds. Then, in Jellyfin, add a Video library and choose /library/video. Nothing is deleted either way.
Works with#
These are the other apps Jellyfin knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.
- Shared video folder: Reads the SharedVideo folder you fill from Nextcloud or ownCloud. Nothing is copied.
- Grafana: Shows dashboards for the apps that have one. works with every app
- Home Assistant: Control what plays on Jellyfin from Home Assistant.
- Prometheus: Collects metrics from the apps that can export them. works with every app
- Uptime Kuma: Watches your apps and shows when one goes down. works with every app
Privacy and security#
Worth knowing Jellyfin streams your own media and does not track you. By default it looks up film and show details on outside databases such as TMDb, which you can switch off per library.
What leaves this server#
- Titles and years are sent to metadata sites (TMDb, TheTVDB and others), which can be turned off per library
- Plugin lists come from repo.jellyfin.org when you use plugins
What LibrePortal turns off#
Nothing needed switching off.
Licence: GPL-2.0. Audited: 21 October 2026. See the privacy of every app and the Promise.
Sources#
Under the hood#
- It runs this image:
jellyfin/jellyfin:12.2.20261005-225228@sha256:357724bf0ae27a672c7cbaa899db2d9abeb13dbd8657ccce750258a4c059d037. - It can sit behind Authelia's sign-in once Authelia is installed.
- Its own project and documentation: github.com/jellyfin/jellyfin
Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.