this post was submitted on 10 Apr 2026
104 points (95.6% liked)

Selfhosted

58744 readers
479 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hey guys! After over 2 years of me asking how to take the first steps in self-hosting, I think I've finally got most of the things I need set up (except for a mailcow server proxied through a VPS, but that's for another day). I've been seeing a bunch of posts here about the *arr stack, and only recently it piqued my interest enough to really warrant a serious look. But I'll be honest, it's a bit confusing. For now, I'm just thinking of starting up the whole suite on my machine, then slowly expose to internet the parts I find useful (and shut down the parts I don't). But I really can't find any good...tutorial(?) on how to quickly get the whole stack running, and I'm a bit worried about launching individual apps since I don't know if/how they communicate with each other. So I'll try to summarize my, quite naïve, questions here:

  • how exactly do I set up a quick stack? Is that possible? And more importantly, is that recommended?
  • most of the tutorials/stacks I see online use plex for video streaming, but seeing a lot of negativity around plex and its pricing, I reckon using jellyfin would be better. Does it just plug into the ecosystem as easily as plex apparently does?
  • I've already set up a hack-ish navidrome instance to stream music, but managing files is a real hassle with it. Does sonarr(?) do it any better?

I know most of these questions can be easily answered through some LLM (which I don't wanna rely on) or scouring documentation (which honestly look a bit daunting from my point right now), so I figured it'd be best to ask here. Thanks for any help!

you are viewing a single comment's thread
view the rest of the comments
[–] johnwicksdog@aussie.zone 6 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

Trying to be as helpful as I can, I think you might consider streaming (Plex/Jellyfin) and downloading (*arrs) as two seperate concerns.

Arrs:

For now don't worry about anything other than sonarr (tv shows) or radarr (movies). you can add the more complexity once you get it working.

These *arrs do two main things:

  • Connect to a "transport" to get new media or update existing media. This is a torrent client or a nzb/usenet client.
  • Manage your media files (such as storage strategies).

I would create a minimum viable config like this:

[sonarr] ----> [transmission or whatever torrent/nzb client]

at that point you should be able to download tv shows and you can building on it. Next steps might be nzbget, radarr or seerr (which is a very nice way to surface this functionality to your users), or connect things like prowlarr.

The other thing I would say is use something like Docker for this. Easy to make changes that way and provision new services. Here's my arrs stack's docker-compose.yml (which is by far not best practice, but it might help you)

services:

  ##############################
  # Transport
  ##############################
  sabnzbd:
    image: 'linuxserver/sabnzbd:latest'
    container_name: sabnzbd

    extends:
      file: ../_templates/template.yaml
      service: large

    networks:
      - arrs-edge

    volumes:
      - './sabnzbd:/config'
      - '/media/web/downloads:/downloads'
      - '/media/web/incomplete-downloads:/incomplete-downloads'
      - '/media/web/watched:/watched'

  transmission-openvpn:
    image: haugene/transmission-openvpn
    container_name: transmission

    extends:
      file: ../_templates/template.yaml
      service: large

    networks:
      - arrs-edge

    devices:
      - /dev/net/tun

    cap_add:
      - NET_ADMIN

    ports:
      - 9091:9091

    volumes:
      - /media/web/torrent-data:/data
      - /media/web/books-import/torrents:/data/watch
      - ./transmission/config:/config



  ##############################
  # Arrs
  ##############################
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr

    extends:
      file: ../_templates/template.yaml
      service: nolimit

    # environment:
    #   - UMASK=022

    volumes:
      - './radarr:/config'
      - '/media/movies:/movies'
      - '/media/web/downloads:/downloads'
      - '/media/web/torrent-data:/torrent-data'

    networks:
      - arrs-edge

  sonarr:
    image: ghcr.io/linuxserver/sonarr:develop
    container_name: sonarr

    extends:
      file: ../_templates/template.yaml
      service: nolimit

    volumes:
      - './sonarr:/config'
      - '/media/tv-shows-1:/tv-shows'
      - '/media/web/downloads:/downloads'
      - '/media/web/torrent-data:/torrent-data'
      - '/media/web/torrent-data/completed/sonarr:/data/completed/sonarr'
      - '/media/tv-shows-3:/tv-shows-2'

    networks:
      - arrs-edge

  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr

    extends:
      file: ../_templates/template.yaml
      service: medium

    volumes:
      - ./prowlarr:/config

    networks:
      - arrs-edge

  seerr:
    image: ghcr.io/seerr-team/seerr:latest
    init: true
    container_name: seerr

    extends:
      file: ../_templates/template.yaml
      service: medium

    volumes:
      - ./seerr:/app/config

    networks:
      - arrs-edge
      - pangolin-arrs-edge

    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3

    restart: unless-stopped

networks:
  arrs-edge:
    external: true
  pangolin-arrs-edge:
    external: true

Plex vs Jellyfin

Everyone one loves to talk about how they use jellyfin, but I suspect many more people quietly run Plex. You should probably try both, but some things to be aware:

Jellyfin:

Pros:

  • Very configurable and extensible with a massive plugin library
  • Free
  • No bloat
  • Excellent codec support

Cons:

  • No streaming tunnel. If you use cloudflare tunnel, you aren't allowed to stream media. If you use pangolin, you can create something on Oracle's free teir that should be good enough. but you need to configure and set that up. Plex just works out of the box
  • Significant security issues. I really don't wont to start a flame war, but there are issues that I find concerning such as streams being no-auth etc. In their defence, they're working through the issues. You could probably manage this with some good reverse proxy configs.
  • UI can be a bit slow on older hardware. Plex isn't great either, but in my experience, Jellyfin is worse.

Plex

Pros:

  • Has an included tunnel service for remote access which requires very little configuration
  • Everything just works
  • UI is pretty responsive. Better than AWS Prime apps on my tv, worse than netflix/youtube.

Cons:

  • Not free. However, they frequently have significant sales on their lifetime membership.
  • Spammy home view. You can disable this on each client, but its just an extra level of confusion for non techies connecting to your system.
  • Very little extensibility. They use to support plugins but those days are pretty much gone.
  • It chokes on some HDR codecs on my 5 year old tv I find, where as jellyfin doesn't

Personally, I think Plex is best if you want to access this stuff remotely and you haven't yet configured a reverse tunnel that can stream media. If you have a pangolin, or you're comfortable opening a port on your home router, or you have no need to stream remotely, then Jellyfin might be worth looking at if for no other reason than its ecosystem of plugins. I have both available remotely, but I use Plex more than I use Jellyfin.

[–] goddard_guryon@sopuli.xyz 4 points 2 weeks ago

Holy smokes this is extremely informative! I'll start by pulling in chunks of your config and learning from what it gives me. As for plex/jellyfin again, the only reason I'm (slightly) biased towards jellyfin right now is precisely because it's not as easy to set up and hence gives me more learning opportunities. But I'll keep an eye out for plex offers regardless - sometimes it's nice to have something that just works. But thanks a lot for such a thorough response!

[–] lepinkainen@lemmy.world 4 points 2 weeks ago (1 children)

I paid 79€ or something for Plex Lifetime well over a decade ago and it’s by far the best bang for buck I’ve ever got.

It’s also dead simple to share it with friends and acquaintances safely. I know how to manage VPN tunnels and all that shit. I’m not setting that up for my aunt who lives 4 hours away. We did manage to get Plex running on her TV over the phone though.

[–] mic_check_one_two@lemmy.dbzer0.com 1 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I’m not setting that up for my aunt who lives 4 hours away. We did manage to get Plex running on her TV over the phone though.

I’ve said this exact same thing in the past and got flamed for it. The “grandma factor” is a very real consideration. My grandma lives almost 5 hours away. I’m not going to walk my grandma through side-loading the Jellyfin app onto her TV, because no native app exists on its App Store. She won’t understand what a Developer Mode for her TV is, let alone how to enable it. And even if it had a native app, the moment she has to input a custom URL for my server, she’ll shut down and say it’s too hard. But she already has a Netflix account, and understands the concept behind a login page. So I can easily walk her through Plex’s sign-in.

It’s also hard to understate how bad some of the Jellyfin vulnerabilities are. They’re straight up “people can completely bypass the login page to stream media from your server” bad. Sure, it requires knowing the file path ahead of time. And that might be a level of security… Except for the fact that basically everyone uses the Trash Guides to set their *arr’s up, which means they all have the same file structure and automatic naming schemes. And the Jellyfin devs have stated that they likely won’t ever fix many of the biggest vulnerabilities, because it would require completely divesting from the Emby fork that the entire project is built on. Jellyfin is wonderful for LAN viewing. But holy shit please don’t expose it to the internet.

[–] lepinkainen@lemmy.world 1 points 2 weeks ago

I do run Jellyfin too, it's pretty handy at getting metadata for stuff locally so I have something outside of Plex's internal databases.

And IIRC I have used Jellyfin in the past to watch some more esoteric stuff that Plex (and its official clients) couldn't play.

But there's no way in hell I'm opening it to the outside world.