this post was submitted on 20 Jul 2023
19 points (95.2% liked)

Jellyfin: The Free Software Media System

5800 readers
153 users here now

Current stable release: 10.10.3

Community Standards

Website

Forum

GitHub

Documentation

Feature Requests

Matrix (General Information & Help)

Matrix (Announcements)

Matrix (General Development)

Matrix (Off-Topic) - Come get to know the team and blow off steam!

Matrix Space - List of all the available rooms on Matrix.

Discord - Bridged to our Matrix rooms

founded 4 years ago
MODERATORS
 

I've been running jellyfin server on win10 but just got my hands on an old laptop that I turned into a ubuntu server.

my question is, is there any advantage on running jellyfin in a docker container?
I suppose it might be easier to get it up running, but might be more wasteful?
Also since it is all in containers, would be easier to troubleshoot or to just kill it and start anew.

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 1 year ago* (last edited 1 year ago) (2 children)

Docker containers usually have a negligible performance overhead compared to bare metal. Certainly it won't make or break jellyfin usability whether it is running in a container or not.

Some further advantages in addition to the ones you mentioned:

  • trivially easy to up and downgrade versions (in case of a broken release for example)
  • nearly 0 chance of incompatibilities stemming from your other installed packages or versions
  • If your server is open to the public internet and you get hacked due to a flaw in jellyfin, any attacker finds himself inside the container. One typically mounts all media as read only into the container - so at that point all they can do is mess with your playback history and steal your home videos but a ransomware attack against your actual data is off the table.

edit: obviously you should still practice good security practices like requiring HTTPS, geoblocking etc. if you are open to the internet. Luckily there's a fantastic container which pairs perfectly with the (imho preferrable) linuxserver/jellyfin container which provides this: linuxserver/swag. Just FYI

[–] [email protected] 4 points 1 year ago

+1 for Docker if not for anything except the ability to easily upgrade and downgrade.

I generally grab my containers and specify a specific version number instead of latest. This allows me to have Jellyfin-10.8.1 (or whatever) and quickly go to Jellyfin-10.9.1 for testing and if there is any problem, just stop the new container and restart the old one.

This also makes it really easy to backup the /config directory if I want as well.

[–] [email protected] 2 points 1 year ago (1 children)

perfect! thanks!

one question regarding media folder, do I have to set it in the docker configuration (docker-compose) beforehand or I could use only the GUI to select the directories?

In case I must set it beforehand, would it work If I add symbolic links to that folder?

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

Unfortunately I don't use a GUI to manage my docker compose config so I don't know, sorry. Symlinks do work as long as you also mount the mount point to which the symlink points (if it is on another partition/physical disk)!

[–] [email protected] 2 points 1 year ago (1 children)

Oh no, sorry I meant the jellyfin GUI.

And thanks about the symlink, that gonna help!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Ah, right. Jellyfin running inside the container won't know about anything happening outside of the container including any bare metal file system particulars, so you'll have to manage mounts in the docker-compose file. AFAIK The official docker compose tutorial is pretty good but let me know if you need help!

[–] [email protected] 10 points 1 year ago (1 children)

I’ve done both bare metal and docker. I find containers much easier to manage, troubleshoot and deploy

[–] [email protected] 1 points 1 year ago

awesome! Thanks!

[–] [email protected] 6 points 1 year ago (1 children)

Containers are nice because it's harder for the container to leave behind files scattered across the filesystem. It's also generally easier to upgrade, since your package manager is likely to only have a single version.

[–] [email protected] 2 points 1 year ago

it’s harder for the container to leave behind files scattered across the filesystem

Yeah this is so much more convenient.

[–] [email protected] 3 points 1 year ago (1 children)

I run it as a LXC container in Proxmox. I love how easy it is to make snapshots (takes literally 2 seconds) I can roll back to, and the whole thing is just so easy to work with.

If you don't have lots of self-hosted stuff, you probably won't run need to run something like Proxmox though. Docker is fine for Jellyfin. Do you use hardware transcoding?

[–] [email protected] 1 points 1 year ago (2 children)

I intend to use it, but will depend on the CPU because I don't have a GPU

[–] [email protected] 2 points 1 year ago

I have transcoding working in LXC with Quicksync on the Intel CPU. It works well. Can be done.

[–] [email protected] 2 points 1 year ago (1 children)

I have transcoding working in LXC with Quicksync on the Intel CPU. It works well. Can be done.

[–] [email protected] 1 points 1 year ago
[–] [email protected] 3 points 1 year ago

My distro is Debian, but I installed it using the Linux (generic amd64) method as posted on https://jellyfin.org/docs/general/installation/linux. I picked this method because I liked the installation instructions. All the files would be in a folder that I specified, I'm accustomed to using systemd to manage services, and the only manually installed dependency is FFmpeg.

I use docker for some other things, but since docker does take some effort to learn (it's easy but it still slows me down), I ended up sticking with my manual Linux (generic amd64) installation. Upgrading versions is as simple as extracing the latest file to a folder, updating a symbolic link, and restarting the service. I may choose docker in the future, but haven't had any problems for the 3-4 years that I've been doing it this way.

[–] [email protected] 3 points 1 year ago

The main thing I like about containers is portability. Backup/copy your mounted folder with all the application's data to any other system, point a new container of the same app to it and you're up and running.

All the other advantages mentioned already are a really nice bonus.

[–] [email protected] 2 points 1 year ago

I had trouble getting casting working from a container on my NAS, so I went back to my Windows server. But it's easy enough to set up a test server with a small library and check to see if everything works for you.

load more comments
view more: next ›