this post was submitted on 16 Jun 2025
128 points (94.4% liked)

Linux

55335 readers
686 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

Hello, I yet again come, hat in hand, for assistance from those wiser in the ways of the Linux. I’m having a bit of an issue downloading Jellyfin on my ElementaryOS laptop. I’ve tried all the guide on the first few pages of ddg only to receive errors after entering the comman “ sudo apt-get update “. I get ERR:3 https//repo.jellyfin.org/debian circle Release 404 Not found.

If someone can point me the way I’d be most appreciative

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 4 hours ago* (last edited 4 hours ago)

Find jellyfin related file in /etc/apt/sources.list.d, edit it as root and try replacing „circle” with „bookworm”. After that apt update and retry. If it doesn’t work you can also try replacing it with „noble” but the you might also need to replace debian -> ubuntu, but that’s just my guess

[–] [email protected] 24 points 11 hours ago (4 children)

Is there a reason you’re not using Docker?

[–] [email protected] 7 points 4 hours ago (2 children)

I was so ill prepared I didn’t even know what docker was. I definitely jumped the gun on the media server lol. Eh, blessing in disguise since I’m now getting such info I guess. Thank y’all for being kind to an ignoramus

[–] [email protected] 2 points 13 minutes ago

So, Jellyfin is one of those apps where the Docker documentation is really lacking. I'm gonna give you my docker-compose.yml file in case it helps:

services:
  jellyfin:
    image: jellyfin/jellyfin
    user: 0:0
    restart: 'unless-stopped'
    ports:
      - '8096:8096'
    environment:
      #- JELLYFIN_CACHE_DIR=/var/cache/jellyfin
      #- JELLYFIN_CONFIG_DIR=/etc/jellyfin
      - JELLYFIN_DATA_DIR=/var/lib/jellyfin
      - JELLYFIN_LOG_DIR=/var/log/jellyfin
    volumes:
      - ./config:/config
      - ./cache:/cache
      - ./data:/var/lib/jellyfin
      - ./log:/var/log/jellyfin
      - /data/jellyfin:/data/jellyfin
    devices:
      - /dev/dri

For me /data/ is my RAID array, which is why my jellyfin data directory is there. Everything else goes in the same directory as the compose file. My system has a graphics card that does transcoding (Arc A380), so I have /dev/dri under devices.

You should learn a lot about Docker Compose, because it will help you tremendously. I use Jellyfin behind an Nginx Proxy Manager reverse proxy. I'd highly recommend it. Here's my compose file for that:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    network_mode: "host"
    #ports:
    #  - '80:80'
    #  - '81:81'
    #  - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Running in "host" mode is important, instead of just forwarding ports, because it lets you forward things to localhost, like pointing https://media/.[mydomain]/ to http://127.0.0.1:8096/ for Jellyfin.

Anyway, best of luck to you, and I hope that helps!

[–] [email protected] 6 points 3 hours ago

Jumping in over your head is how you learn. Just be patient!

[–] [email protected] 7 points 7 hours ago

Op please don't ignore the above.

Learn docker once and you'll be able to install almost anything, rather than having to learn every individual app and how it installs on specific operating systems.

[–] [email protected] 5 points 9 hours ago* (last edited 9 hours ago) (2 children)

Probably not interested in dealing with endless permission and proxy problems. Me I just run everything as root and password 543211111111111111Aa+-

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

Your password is what? All I see is *******

[–] [email protected] 3 points 6 hours ago

Add yourself to the docker group

[–] [email protected] 11 points 11 hours ago (1 children)

This is the question and answer

[–] [email protected] 10 points 11 hours ago (2 children)

To be completely honest, I installed Jellyfin "bare-metal" and have been using it that way since after attempting to skim the Docker documentation and failing to understand how Docker works.

[–] [email protected] 3 points 6 hours ago

Docker is a virtualization platform, similar to setting out a Virtual Machine but a lot less resource intense. You need to:

  • install docker on your machine
  • Start/enable the service (this is usually done automatically on most user friendly distros, and if you're using one that doesn't I expect you to know how to do it)
  • Add your user to the docker group

That's it, docker setup done, now you need to write a compose file, i.e. something that tells docker what do you want to run, usually you get a working example on any project website, and linuxserver.io is a great site for them too, for example for Jellyfin can be found here: https://docs.linuxserver.io/images/docker-jellyfin/

Just create a folder, create a file called compose.yaml there and put that content in it, now run docker compose up -d and congratulations you have a working Jellyfin server.

With time you'll learn what the compose file is doing, for example the ports map ports from the docker to your machine, volumes does the same, so for example the example has /path/to/jellyfin/library:/config if instead you write ./config:/config a folder called config will be created on the same folder the compose.yaml file is and inside the docker it will be mounted as /config which is where Jellyfin will look for configurations. In the same manner you can add /home/myuser/Movies:/Movies and inside docker you will be able to see the contents of /home/myuser/Movies when scanning the /Movies folder.

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

My friend, i would like to introduce you to the wonders of Portainer. Go forth and watch a video on youtube and you'll get it.

[–] [email protected] 4 points 9 hours ago

Use Portainer if you don’t want anything to be portable. There are other issues too. Just use Docker Compose.

[–] [email protected] 49 points 16 hours ago (3 children)

Seems like you followed some random AI generated guide like this one:

https://www.ipv6.rs/tutorial/Elementary_OS_Latest/Jellyfin/

Whenever you're downloading a Linux (or any) package, always try to look for the official documentation, like here:

https://jellyfin.org/docs/general/installation/linux#debian--ubuntu-and-derivatives

Where it will tell you to install Jellyfin on a Debian/Ubuntu based system is simply:

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

and it also tells you that if you don't have curl already installed, either install it first or instead run:

wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash

which is their official installer.

If you want to undo what you did before installing (assuming you followed the bad guide linked above), just remove the file it created here first:

/etc/apt/sources.list.d/jellyfin.list

[–] [email protected] 4 points 4 hours ago

Well now I feel really dumb cause that is the exact guide I was using. Oh well, live and learn I guess. Thank you very much for educating me

[–] [email protected] 10 points 10 hours ago (3 children)

How the fuck did you deduce that from the post above?

I'm not doubting you at all, you've got the Linux aura, but please share so more people can hope to do this

[–] [email protected] 4 points 4 hours ago (1 children)

This dude is a wizard cause that was the exact “guide” I was using. I had to look over my shoulder for a sec lol

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

Because, contrary to what it might seem like, we ALL start out this way using Linux. Everyone makes the same mistakes, so its easy to retrace the logic once you understand what the commands you used to copy-paste are doing. OP you're clearly just making the switch and want to dive head-first into self-hosting as well as Linux, which will be a ton of fun, just try not to get discouraged as there is a lot to learn. Take it one step at a time, and try to understand the commands as there's really not that many, and you re-use these in many scenarios.

I see many people recommending Docker, which is great, but imho a little too early to dive in to if you haven't experimented with Linux at all. Docker is just a container of Linux inside of Linux, so you'll still need to use the command line, and it has its own set of tools. Just my two cents. Somebody else posted but this was the video that also made Linux 'click' for me:

https://www.youtube.com/watch?v=tc4ROCJYbm0&t=296

Don't be afraid to break things and start over. Have fun :)

[–] [email protected] 2 points 3 hours ago

Thanks so much for the kind words on top of the invaluable info you’ve provided. You are a true gentle-person and a scholar

[–] [email protected] 9 points 10 hours ago* (last edited 9 hours ago) (1 children)

He had added a Jellyfin repo to his apt sources.list file for some reason, which is weird and likely not the right way to do it these days. But it might have been in the past, so it could be OP was following some obsolete procedure (or one AI-hallucinated from an obsolete procedure).

After realizing that OP was completely going about it the wrong way, the guy you replied to just looked up the correct way and relayed that to him.

See also: https://wiki.debian.org/DontBreakDebian

[–] [email protected] 1 points 9 hours ago

Grue, I only really see you when it has to do with Linux.

Come hang out more with the degens, you'd be appreciated

[–] [email protected] 4 points 9 hours ago (2 children)

Not OP, but it was very simple if you have already seen that error.

First of all, there is one single easily parsable error.

https://repo.jellyfin.org/debian produced a 404 error, thus the URL is invalid.

Let's ignore why it's invalid for a second.

This error happens after apt update, thus we can deduce the following:

  • It's supposed to be an apt repository URL (To experienced users, it effectively looks like a repository URL)
  • This repository URL does not work
  • As in 99% of cases, this URL is likely located in a configuration file in the standard location, /etc/apt/sources.list.d/

Back to why it's invalid, maybe it used to be valid in the past, or there is a temporary server error, this can be verified with the official documentation.

If the documentation does not mention this repository URL, then it's a mistake to use it.

This is a good moment to google this URL and find out why/which guide tells you to use it, and to analyze which steps they made you take.

From there, reverse those steps.

Even if you hadn't found this guide, you can be sure that by looking into /etc/apt/sources.list.d you would've found that file containing that URL, simply removing the file or URL would've removed the error.

Lastly, you look for either the official documentation, or a more reliable guide.

[–] [email protected] 1 points 3 hours ago
[–] [email protected] 2 points 9 hours ago

This was cool, thank you for doing it.

Sometimes it's hard to switch gears and understand this OS/language, but you did an excellent job of bridging that gap. Thank you.

[–] [email protected] 39 points 15 hours ago (2 children)

I just wanted to add a small follow up comment because I remember being young and copy-pasting commands into Linux and eventually getting really frustrated. Therefore, he's a (brief) explanation of the commands:

  1. curl is just an open source tool for making Web requests from the command line. It's a great tool to have in general.
  2. https://repo.jellyfin.org/install-debuntu.sh the URL of a shell script from repo.jellyfin.org (Jellyfin's official website)

What is a shell script? It's a script that runs a whole bunch of commands by itself, so you don't have to copy-paste them from the internet. Basically the official Jellyfin people in this case made a file with all of the commands the computer needs to run to install the package. This is great because it means the people who made Jellyfin tested these commands and they're responsible for keeping it up to date if anything changes.

| bash The 'pipe' or | symbol in Linux is a cool Unix philosophy of 'connecting' programs together. You run one program, and tell it to pass the results to another program. In this case, you're telling curl to download the script at https://repo.jellyfin.org/install-debuntu.sh and then passing that file to bash (which is the shell program in the terminal that runs commands) and to run it as sudo or 'super-user'.

Hope this was helpful. The last thing you should know is the command you probably copy-pasted before made you add a source to the /etc/apt/sources files, which are basically just a list of sources for apt, the package manager to download from, and since the command was wrong or outdated, apt is complaining that the Jellyfin source was not found.

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

The one thing I'd add is to say don't run a shell script from the Internet unless you're damn sure that (a) you trust the entity providing it, and (b) you're downloading via https and haven't typo'd the URL.

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

Agreed, but I didn't want to overwhelm the guy with too much info :P The official guide even recommends checking the cryptographic signature of the script and reading its contents first. I'm sure like all of us they'll nuke their system several times and before long will be writing their own shell scripts.

[–] [email protected] 14 points 15 hours ago (1 children)

GOOD FOLLOW UP!!

I was about to shit a brick that you went from "go to the official trusted source" to "just trust me: curl [x] | sudo bash"

https://youtu.be/dT7X2IxBDjc

[–] p03locke 3 points 12 hours ago (3 children)

You can do some wild shit with pipes:

  • head -10 /var/log/syslog - Look at the first ten lines of one of your log files, with timestamps on the front
  • cat /var/log/syslog | cut -d' ' -f1 - Splits the lines by a space delimiter (the -d' ' part), and grabs the first "field" (the one with the timestamp, using -f1)
  • cat /var/log/syslog | cut -d' ' -f1 | cut -dT -f1 - Splits the timestamp at the "T", and leaves only the date
  • cat /var/log/syslog | cut -d' ' -f1 | cut -dT -f1 | sort | uniq -c - Gives you a count of each date
  • grep systemd /var/log/syslog | cut -d' ' -f1 | cut -dT -f1 | sort | uniq -c - For only the lines with 'systemd' on it, gives you a count of each date

The standard GNU toolkit has a ton of utilities like that for doing stuff with text files.

[–] [email protected] 2 points 3 hours ago

I find it unbelievably cool that the guys who came up with this got it so right the first time, that its still incredibly powerful today.

[–] [email protected] 7 points 12 hours ago (1 children)

At work whenever we need to build little command line tools, my team is always vexxed by my guideline to have the meat+potatoes in a script that reads well-formatted data off stdin , and outputs well formatted-data to stout. They always wanna have some stupid interactive prompts and saving to files baked right in.

This is exactly why. You wanna save to a file?? > file

You want to read from a file? cat |

You want to save to a file but swap commas for colons? Sed.

You get so much FOR FREE w/ the GNU toolkit, even for what you build yourself, by thinking in streams.

[–] [email protected] 4 points 9 hours ago* (last edited 9 hours ago) (1 children)

When trying to explain that concept, I like showing people this: https://www.youtube.com/watch?v=tc4ROCJYbm0&t=296

[–] [email protected] 2 points 7 hours ago

Wow, this was a treat to watch. Never would have imagined Brian Kernighan would be explaining shell pipeline to me in such a cosy setting

[–] [email protected] 2 points 11 hours ago

Me, a simpleton,

"Wut dat mean"

[–] [email protected] 6 points 16 hours ago (5 children)

It seems to have picked up "circle" as the distro. You'll need to replace that with the matching Ubuntu or Debian version of what this version of ElementaryOS is.

load more comments (5 replies)
[–] [email protected] 2 points 16 hours ago (1 children)

Are you trying to install jellyfin server or client?

[–] [email protected] 2 points 16 hours ago (1 children)
[–] [email protected] 9 points 15 hours ago* (last edited 15 hours ago) (1 children)

Install docker, grab the official docker compose file, then docker compose up -d.

Details: Look up how to install docker on elementary (I guess it's sudo apt install docker), than you don't have to care about the distro after that, docker works the same way everywhere. You can find countless tutorials on this, and they should work

[–] [email protected] 3 points 15 hours ago (2 children)

Thanks, I’ve been seeing that rec a lot recently. I’ll give that a try

[–] [email protected] 9 points 13 hours ago (2 children)

Once you know how to use docker/containerization it'll be the only way you want to deploy applications. Most popular applications will also have good guides on how to setup/config the container, but sometimes you'll need to read up on docker and Linux to figure things out.

[–] [email protected] 3 points 10 hours ago

Containers are often simple enough you don't even need a guide. I don't trust myself to configure anything on the host system correctly, and using Docker containers completely solves concerns of conflicting dependencies during updates. I personally avoid hosting anything that isn't available with Docker anymore. It's just too much work for a worse result.

[–] [email protected] 3 points 13 hours ago (2 children)

Yeah I really need to do more reading. My lack of knowledge on Linux is my main issue I think. Just jumped the gun to Linux like a month ago, played around in elementary for a bit and was like “now is the time to set up my media server”. Prob needed more time, reading, and texting but eh.

I appreciate the advice I’ve been getting here big time!

[–] [email protected] 1 points 5 hours ago

You don't need too much, it should be fairly straightforward, read my other reply in this thread if you want more details, but long story short it's just install docker, add your user, copy a file, edit it to suit your needs and run a command.

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

Some of the commands I use a lot for debugging containers, in case you go down that route:

  • docker run --rm -it --entrypoint bash <image_name>
  • This command let's you enter a docker image with bash so you can test commands and treat it like a temporary VM. Great way to see how the image is setup
  • docker exec -it <container_name>
  • This let's you enter a running container with bash. A great way to inspect why something might not be working or check mounted volumes, etc.
[–] [email protected] 2 points 4 hours ago* (last edited 10 minutes ago)

Also docker logs -f CONTAINERNAME to see the log output for non-interactive containers.

[–] [email protected] 5 points 14 hours ago

Yeah using docker is the most reliable way to do it

load more comments
view more: next ›