I want to make a server for hosting media through Jellyfin, and maybe some Nextcloud functionality. I prefer to use containers, but something like TrueNAS’ extensions/plugins sound good as well. This is my first server, so I don’t know what to choose. My possible options are:
- Debian
- Ubuntu
- Fedora
- TrueNAS Scale Which one should I choose? I am fine with using either Docker or Podman. (Edit: The server will be running on an old laptop with a single drive slot.)
Debian
As someone who doesn’t know as much about the differences, why?
Say debian vs ubuntu
There’s no reason to use Ubuntu for this scenario. Debian will be cleaner, simpler and easier to support long term. Ubuntu complicates things and there are no benefits to compensate that for OP’s use case.
Debian is (rightfully) known for being lightweight and very stable. Particularly with older hardware, while still being quite compatible with newer hardware. Their long-running release cycles tend to not break whenever updates do roll out. Ubuntu is Debian based as well, its focus however is on user friendliness and usability, especially on the GUI front. Ubuntu server is perfectly fine, but it’s heavy handed compared to a minimal Debian installation with just a handful of packages selected purposefully by the user for the task it is intended for. There have also been more vocal complaints about whatever Canonical is trying to do with snaps/snap store.
Most beginners with Linux I would more encourage to try Debian for its stability and speed because it’s a great platform to learn Linux on as well as experiment with whatever goal they have by way of packages and projects available all over the open source side of the web.
Honestly, I would say because you just have less struggle. I had just a lot more problems when I was using Ubuntu instead of Debian. But I thinks it’s mostly personal preference
I agree w what others have said. Just some personal background: started with Ubuntu (well technically I started with Suse, then then Ubuntu). But I found on the server, Ubuntu required a lot of manual upkeep. Debian was just always worked, never had to think twice about it.
Debian
Debian
- What’s the hardware?
- Debian, imho
I love how every answer so far is Debian.
Debian is the correct answer.
Based on that generic request, you’re just going to get everyone’s personal favourite server OS here. You’ll need to give more details to get something tailored to your needs.
True, but everyone’s favorite so far is debian
As it should be.
Using a debian base (OMV6) with docker. Container is maintained by linuxserver.io
No issues so far beyond myself botching permissions but anyone competent should be able to do it.Same, but with the jellyfin/jellyfin image. Been solid for me, less dramas than raw on the OS. Two cores and 8GB for the VM (in Proxmox), media on a NAS, metadata on local SSD.
Everybody is so quick to suggest Debian (and it’s a fine choice), but Alpine is great for such things, as well. It’s blazing fast, frequently updated, has most packages you could ever want in a server environment (not that it matters if you’re planning on using containers). I’ve been using Alpine for years as my docker host, and not once have I thought “man, I wish it was debian instead”.
I’ve been using Debian as my main server OS for a long time, but yeah I’ve started using Alpine for lightweight hosts for a single app/docker lately. Especially on proxmox with the pve-helper-scripts you can spin up an Alpine container or VM with Docker in a few seconds.
frequently updated
Not something I’d want on my server :) Partly joking, their lifecycle makes sense if you stay on the major.minor release. Though I find 2 years security support is a bit short - Debian LTS is usually around 5 years, not an excuse to wait for the last moment to upgrade but I find it more comfortable than just 2 years.
One thing to watch for is that alpine uses
musl
as it libc, and many programs expect glibc so you might run into obscure bugs. I find it good as base image for OCI images (again there are edge cases), but wouldn’t use it for a general purpose server.I upgrade as soon as new versions come out, I like living on the edge :) if something goes wrong, there are backups.
As for musl, I haven’t mentioned it since OP wants to run containers - and in that case, musl doesn’t matter. And for running programs natively, many are available as packages (with any musl incompatibilities already resolved). But yeah, if you venture outside these limits, you can definitely run into issues with musl.
I would like to recommend an Ubuntu Server LTS which is almost as solid as Debian in my opinion but with many useful features like nonfree drivers accessible right away and newer packages.
nonfree drivers accessible right away
Non-free firmware is included in the Debian installer since Bookworm.
I’ve recently switched from Ubuntu Server LTS to Debian stable because Ubuntu started adding snaps to Server too, and the LTS support was restricted behind machine registration which doesn’t smell good to me.
I haven’t had to deal with any unusual driver support on Debian, probably because I use Intel CPU+GPU for transcoding not Nvidia.
The only external thing I’ve installed was adding the official Docker repo to have the latest Docker, docker-compose-plugin, containerd etc. straight from the source.
Debian’s great for this.
I’m also running NextCloud (the official AIO Docker image) on Debian. Great for that too.
Probably Debian or Ubuntu
I tried truenas and was at first enamored but felt quite limited when it came to using docker compose. There are no official ways for using it. Additionally because it uses kubernetes under the hood it’s not as easy to go under the hood to make it work, as it requires knowledge of that in addition to docker. There is an unofficial docker compose package but there is almost no documentation that I could find and it seems to be largely unmaintained nowadays.
The other OS are good candidates, though through my research, if you are after reliability, people seem to prefer Debian with its more robust validation of updates.
I’m here mostly because I’m setting up my own homelab and I’m preparing for making use of Alpine Linux, which has no desktop environment which makes it particularly fast to boot. Additionally it is very robust, has decent documentation and allows for quite some customization but requires to learn a bit about how to make it work. With its barebone structure, it is more secure as it has a smaller attack surface and you only install what you need. Perhaps an alternative for you to consider?
Edit: to keep some sanity while needing to manage your homelab, make sure to put some weight on an os you are familiar with. I have juggled for months between OSs to find what does what I want but it has been a long battle of learning everything from scratch every time. Having tried proxmox, truenas, xcpng, and now hopefully settling with Alpine and zfs. Go the more sane way, any of those first three will work just fine.
It doesn’t matter what your host os is, if you’re using docker. Choose whichever one you like more
Proxmox. I’ve been using it and deployed jellyfin in a container, they have a bunch of one-click deployments and it’s great. Or you can just use a VM to group Docker containers together. Having a beautiful web interface is huge, Plus being able to access that interface from anywhere via WireGuard/Tailscale is great.
If you do choose to go down this route, there is a “no-nag proxmox” script somewhere, and it will disable some warnings and give you deeper customization options. Well worth a look!
I’ve never used Proxmox, but have a Docker setup on Ubuntu Server with Jellyfin, Nextcloud, Immich, and a bunch of other smaller things. I still don’t understand why use Proxmox over Docker. What does it give you that Docker doesn’t?
Proxmox is completely different from Docker. Proxmox is focused on VMs, and to a lesser extent LXC containers. If you think you will have a need to run VMs (for example, a Windows VM for a game server that doesn’t support Linux) Proxmox is great for that.
I run Docker on a dedicated VM inside Proxmox, and then I spin up other specialized VMs on the same system when needed. The Docker VM only does Docker and nothing else at all.
I run proxmox, then an alpine VM which has all my docker containers.
I do this so that I have the flexibility to run more vms if needed
Proxmox isn’t an OS. It runs on top of Debian.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters LTS Long Term Support software version LXC Linux Containers NAS Network-Attached Storage SSD Solid State Drive mass storage VPN Virtual Private Network
[Thread #243 for this sub, first seen 26th Oct 2023, 10:25] [FAQ] [Full list] [Contact] [Source code]