this post was submitted on 18 Jun 2026
87 points (93.9% liked)

Selfhosted

59999 readers
525 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.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

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

  5. Submission headline should match the article title.

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

If anyone else is having issues setting these up, message me and I will zip the whole build to you and walk you through setup.

UPDATE:

So I've made some major progress but still have a persistent issue. Radarr, sonarr, and lidarr are set to rename files, rename folders, and move them to the root directory. Even after importing the media the do not do that. I have both the boxes for renaming ticked, I have hard links turned off, they all have permissions for all the directories involved, and they have the media available in the program. If anyone knows how to fix this I'd love the help. I literally did all of this because I don't want to manually rename 1600 files into a consistent scheme and Radarr apparently doesn't want to either.

I used yams.media to do the full install. It was incredibly easy to use for most of the installation and setup. The Mullvad wireguard setup was a pain. The VPN part of yams specifically says to follow the instructions to the letter but the link it gives is a 404. The mullvad.md it was supposed to take me to was just "TLDR" and two code boxes with no explanation. I managed to bungle my way through with some knowledge from past attempts and the yams VPN test says I'm in Switzerland and my client is ready to go.

Yams wouldn't let me set the directories I needed (it wants one directory for everything and I'm sorting them into different mounted drives) but it was actually remarkably easy to copy the yams config folders into my preferred directory and the yaml file directly into portainer to create a portainer stack running everything I needed. I even learned how to use the env and "advanced env input" in portainer to correct all the variable sections instead of writing all of them myself. All in all, it was exactly what I was wanting to do when I posted the TLDR.

~~Tl;dr: I understand docker is supposed to help get things running on different systems easily, can someone give me a copy of their working Arr stack?~~

Frustrated venting I'm past being new to this server thing having run mine for over a year so I guess I can officially say I'm just bad at it. I've been working on getting Sonarr, Radarr, and, lidarr running since 4 in the afternoon, discounting dinner that's 6 hours of constantly failing to get these to work. This is my 5th time trying since I learned about it in April.

I've given up on the automatic downloads, I've given up on the request system, I'm even done with the torrenting, I'll just do that on my phone. All I want is something that format my 5TB of media to Title (date) instead of MOVIE_TITLE_ALL_UNDERSCORE, or TB_1000, or movie.videoformat.year.special.deluxe.username.host.visit.my.site.please. I was sold on this idea that self hosting was a relatively easy thing that anyone can get into and while I have a good understanding of how a config.yml is supposed to look and work, and I've got a decent understanding of ssh and sftp between two computers, but trying to grt any one of these things to run is soul crushing. I literally work in the foster system and my worst cases do not give me the stress this does. I just want to get it fixed so I can watch Pokemon with my family and offer it to people who will never bother to log on.

~~Edit: OMFG I moved them back into individual folders and they work now. 6 hours of videos and tutorials and not a single thing saying they absolutely have to be in their own folders or it won't work.~~ edit unclear, brain stuck in toaster

Edit 2: turns out, Radarr can't find movies at /movies/movie.mkv and needs /movies/folder/movie.mkv. Now Radarr can import movies but all other problems persist.

you are viewing a single comment's thread
view the rest of the comments
[–] lka1988@lemmy.dbzer0.com 3 points 1 day ago* (last edited 1 day ago)

Here's mine. I have separate stacks for media players (Plex, JF) and downloaders (sabnzbd, qbittorrent), so I added their networks to the config. I also chose to mount the volumes directly in the YAML instead of the VM's fstab, I found it plays a bit nicer that way. None of this is exposed to the internet. And I need to reconfigure the *seerrs, since Jellyseerr and Overseerr merged into one project...

volumes:
  movies:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Movies
  tvshows:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/TV_Shows
  music:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Music
  torrents:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Torrents
  prerolls:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Plex_prerolls
  books:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Books
  downloads:
    driver_opts:
      type: nfs
      o: addr=192.168.1.175,nolock,soft,nfsvers=4
      device: :/Downloads
services:
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/sonarr_config:/config
      - tvshows:/TV_Shows
      - torrents:/Torrents
      - downloads:/Downloads
    ports:
      - 8989:8989
    networks:
      - plex_default
      - downloaders_default
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/radarr_config:/config
      - movies:/Movies
      - torrents:/Torrents
      - downloads:/Downloads
    ports:
      - 7878:7878
    networks:
      - plex_default
      - downloaders_default
  lidarr:
    image: lscr.io/linuxserver/lidarr:latest
    container_name: lidarr
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/lidarr_config:/config
      - music:/Music
      - torrents:/Torrents
      - downloads:/Downloads
    ports:
      - 8686:8686
    networks:
      - plex_default
      - downloaders_default
  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    container_name: bazarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/bazarr_config:/config
      - movies:/Movies
      - tvshows:/TV_Shows
    ports:
      - 6767:6767
    restart: unless-stopped
    networks:
      - downloaders_default
      - plex_default
  overseerr:
    image: lscr.io/linuxserver/overseerr:latest
    container_name: overseerr
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/overseerr_config:/config
    ports:
      - 5055:5055
    networks:
      - plex_default
      - downloaders_default
  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=debug
      - TZ=Etc/UTC
      - PORT=5055
    ports:
      - 5056:5055
    volumes:
      - /var/lib/docker/volumes/jellyseerr_config:/app/config
    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
  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /var/lib/docker/volumes/prowlarr_config:/config
    ports:
      - 9696:9696
    networks:
      - plex_default
      - downloaders_default
networks:
  plex_default:
    external: true
  downloaders_default:
    external: true