The aim is to have a qbittorrent setup combined with a service like plex (or jellyfin?) to easily stream music, movies and TV shows to my mobile devices.

Is there a comprehensive guide or list of good software and hardware one could use to accomplish such a thing?

What I know/have already:

  • Good, paid VPN: Mullvad
  • Mediaserver software: Jellyfin
  • Torrenting software: qbittorrent
  • ???
  • Hi I accidentally wrote a wall of text:

    perfectmediaserver.com can give you some inspiration on system architecture/layout. There’s a lot of right answers here depending on your situation, so you’ll likely want to research the various options and trade-offs.

    Some common base architecture layouts that I know of:

    Any Linux + no parity: Just throw Debian on a box, put Docker on it, and away we go. No data integrity, and data loss will be permanent, but it’s an option if you set up backups for your important data and assume the rest is expendable. If you want to start setting up parity on raw Linux you’ll probably want to move down to a more dedicated architecture below for less headaches.

    OpenMediaVault + SnapRAID + MergerFS + backed by BTRFS disks: my personal choice for ad-hoc/budget setups. Great for having really flexible storage that lets you make use of all HDD space that you have laying around without fuss. You’ll need to sacrifice your largest drive to hold RAID parity and the storage architecture is not especially performant but that’s not a big deal for a media server. OpenMediaVault can run Docker for you on the host without needing to run it in a VM (and you should be using Docker for your software stack).

    Unraid: Similar in storage architecture to the OpenMediaVault combo, but it’s not free. I don’t have personal experience with this one but a lot of people like it. IMO this option would only make sense if you want a turn-key system and don’t want to think about anything on the software side. It has turn-key “apps” that are just Docker behind the scenes (to my knowledge).

    TrueNAS Scale: This will be running ZFS for storage, but ZFS has a lot of problems with storage flexibility. You need to really know what you’re doing when designing your storage layout, and you probably won’t get full usage out of the HDDs you have laying around. In exchange, ZFS is bulletproof for data integrity and makes full use of your drives’ combined speed. You’ll likely be giving up 50% of your total HDD capacity to run ZFS - either explicitly by running mirrored drives or by running mismatched RAIDZ1/2 (which makes all drives become the size of the smallest disk). I would recommend a mirrored setup for home use due to its flexibility - it gives up more space than RAIDZ but it’s able to be upgraded easier in the future, so you can throw random drives that are on sale into your system when needed. You could write a book on ZFS’s complexities and trade-offs and I’m sure many have. TrueNAS itself is basically just a turn-key appliance to run a ZFS storage server, but the “Scale” version also comes with the ability to install apps via some Kubernetes+Docker thing. It’s still in beta and I hear a lot of people have problems with how the app system is designed, so if you go this route I’d recommend installing Debian/Alpine Linux under TrueNAS Scale in a VM with something like this method, and running normal Docker on that VM. TrueNAS is otherwise very locked down and if your usecase is not supported by them you’ll probably need to bail out to a VM anyway.

    Proxmox + TrueNAS + Docker Host: This has all the caveats of ZFS from before. Proxmox is just a virtualization hypervisor that you can put other operating systems on, via VMs and LXCs. The easiest way to use it in a NAS configuration is to install Proxmox on the bare metal, then spin up a TrueNAS Core/Scale VM and pass through your HDDs to that (may require special hardware consideration). You’ll probably want to run a minimal Debian/Alpine Linux VM under Proxmox to hold your Docker stack. Then you can use an NFS/SMB mount to get access to your ZFS storage from your Docker VM. You can also run ZFS raw on Proxmox without the GUI of TrueNAS, but you’ll have to manage it by CLI. Proxmox can be more difficult to understand than the other architectures, but personally I think it’s easier to use once you do. It allows greater flexibility on the software side via snapshotting VMs and building up/tearing down operating systems at-will.

    Proxmox + OpenMediaVault + SnapRAID + MergerFS + backed by BTRFS disks: Same as Proxmox+TrueNAS, except instead of TrueNAS you run OpenMediaVault’s storage stack to give yourself flexibility with HDDs. You’ll might also want to move your Docker stack into its own VM instead of running it on OpenMediaVault, but this isn’t required. While this is technically an option, it feels a bit weird. If you want to dive head-first into a robust server setup but don’t want to buy a bunch of new drives, this could work in a pinch.

    Personally my two recommended options are the OpenMediaVault stack or the Proxmox+TrueNAS stack, depending on if you want to buy new drives for a clean storage layout. Keep in mind these blurbs are just a crash course on each option and there’s a lot more going on behind the scenes that will also need consideration/planning.