this post was submitted on 16 Mar 2025
73 points (96.2% liked)

Selfhosted

46653 readers
419 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.

Resources:

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

Questions? DM the mods!

founded 2 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 36 points 1 month ago (2 children)

Real question is, why Jackett instead of Prowlarr? πŸ˜„

[–] [email protected] 17 points 1 month ago (2 children)

Dunno, man. Its been working so far. I'll check out prowlarr, thanks

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

Yeah no worries - I discovered Prowlarr from that exact same comment years ago so jumped at the opportunity to post it here πŸ˜†

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

Tbh the whole arr suite is a headache to get working well...

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

Sorry to hear that that's been your experience! :( My installation has been running for ~5 years without any problems

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

you got the hard links working?

[–] [email protected] 2 points 1 month ago

Hell no, My downloads folder in my media folder are completely different. I copy everything from downloads to media It gets renamed, possibly resampled. The torrents are left in the original folder to seed unmolested.

Every once in a while I go through my torrent list and just tell the client to destroy the torrent and files for anything that I don't care to seed anymore. Zero chance of it breaking my actual store.

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

Hard links are a built-in feature of basically every modern filesystem. The bigger question to me is, why aren't hard links working for you?

[–] [email protected] 1 points 1 month ago

Just found this. https://lemm.ee/post/58579926

Seems like I'm not so weird after all....

[–] [email protected] 1 points 1 month ago (1 children)

There needs to be an overlap in the mount points of docker jellyfish and docker sonarr, etc. I don't think I got it right. Besides, sonar ends up not moving the series inside the tv shows folder, leaving the episodes outside, in the media folder above. If I knew exactly what was going on I would fix it. Last time I dealt with it was ages ago, so perhaps I can do it now.

[–] [email protected] 1 points 1 month ago (1 children)

The over lap of docker containers needs to happen from inside the perspective of the container. If you send Radarr to pull a movie from bittorrent, they both need to "be in the same spot". If bittorrent thinks it's saving a movie to /data/torrent then Radarr also needs to see the movie at /data/torrent.

That's why so many guides use the /data/ label scheme. Its just easy to use and implement. Side note, for hard links to work, all the folders need to be on the same drive. Can't hard link between different drives.

[–] [email protected] 1 points 1 month ago

This was the crux of my confusion, but after a couple of years of Docker, it now makes more sense to me 😁

[–] [email protected] 1 points 1 month ago

Yes - but I have no idea about docker, sorry. Have it running baremetal (or rather, in a proxmox VM).

Just a hunch, but in case you "only" share the directory where Sonarr puts Episode files with Jellyfin via some mount point or whatever, and not the directory where Sonarr gets them from (where the torrent client downloads to), then I can see hardlinks breaking in unexpected ways

[–] [email protected] 2 points 1 month ago

Never had an issue. But I installed them all using my distro package manager, so no hassle with volumes and links.

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

Prowlarr, recyclarr, and trash guides.

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago)

I tried recyclearr but found configarr to be more flexible.

https://github.com/raydak-labs/configarr/

Here is my configarr config:https://github.com/raldone01/configarr_config

I believe configarr is just a superset of recyclearr.

[–] [email protected] 1 points 1 month ago

it's those pesky docker volume maps and hardlinks

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago) (1 children)

I have them all running in a docker compose, that also has gluetun as the gateway.

It's a real basic compse file, but I can share it if you like.

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

Sure, why not? I'm setting up my new server, so no better time. Thanks

[–] [email protected] 3 points 1 month ago* (last edited 1 month ago)

You might also want to check out https://yams.media/, it's pretty much an install script and configuration walkthrough that's very complete and detailed. Includes most relevant Arrs and gluetun builtin. Containerized. Choice of Emby, Plex or Jellyfin.

[–] [email protected] 3 points 1 month ago* (last edited 1 month ago)
services:
  gluetun:
    image: qmcgaw/gluetun
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    environment:
      - DNS_ADDRESS=
      - PUID=1000
      - PGID=1000
      - SERVER_CITIES=
      - FIREWALL_VPN_INPUT_PORTS=
      - TZ=Etc/UTC
      # Provider readmes: https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers
      - VPN_SERVICE_PROVIDER=
      #- VPN_TYPE=openvpn
      #- OPENVPN_CUSTOM_CONFIG=/config/custom.conf
      #- VPN_TYPE=wireguard
      #- WIREGUARD_PRIVATE_KEY=
      #- WIREGUARD_ADDRESSES=
    ports:
      - 6767:6767       # bazaar
      - 7878:7878       # radaar
      - 8118:8118       # privoxy
      - 8191:8191       # flaresolverr
      - 8787:8787       # readaar
      - 8989:8989       # sonaar
      - 9091:9091       # transmission
      - 9696:9696       # prowlarr
      # You can add an forwarded listening ports your VPN provider might have here as well.
    volumes:
      - /data/gluetun:/config
  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    container_name: bazarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /data/bazarr:/config
      - /share/downloads/movies:/share/downloads/movies
      - /share/downloads/tv:/share/downloads/tv
    restart: unless-stopped
    network_mode: service:gluetun
  flaresolverr:
    # DockerHub mirror flaresolverr/flaresolverr:latest
    image: ghcr.io/flaresolverr/flaresolverr:latest
    container_name: flaresolverr
    environment:
      - LOG_LEVEL=info
      - LOG_HTML=false
      - CAPTCHA_SOLVER=none
      - TZ=Etc/UTC
    restart: unless-stopped
    network_mode: service:gluetun
  privoxy:
    image: caligari/privoxy:latest
    container_name: privoxy
    restart: unless-stopped
    network_mode: service:gluetun
  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /data/prowlarr:/config
    restart: unless-stopped
    network_mode: service:gluetun
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /data/radarr:/config
      - /share/downloads/movies:/share/downloads/movies
    restart: unless-stopped
    network_mode: service:gluetun
  readarr:
    image: lscr.io/linuxserver/readarr:develop
    container_name: readarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /data/readarr:/config
      - /share/downloads/books:/share/downloads/books
    restart: unless-stopped
    network_mode: service:gluetun
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /data/sonarr:/config
      - /share/downloads/tv:/share/downloads/tv
    restart: unless-stopped
    network_mode: service:gluetun
  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - TRANSMISSION_WEB_HOME= #optional
      - USER= #optional
      - PASS= #optional
      - WHITELIST= #optional
      - PEERPORT= #optional
      - HOST_WHITELIST= #optional
    volumes:
      - /data/transmission:/config
      - /share/downloads/movies:/share/downloads/movies
      - /share/downloads/books:/share/downloads/books
      - /share/downloads/tv:/share/downloads/tv
    restart: unless-stopped
    network_mode: service:gluetun
  watchtower:
    container_name: watchtower
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    network_mode: service:gluetun
[–] [email protected] 1 points 1 month ago

What’s not working for you?

For me after a decade using -arr the only thing I’ve had significant issues with has been trying to use the Tailscale integration on Unraid 7 to tunnel the dockers through an exit node which is… not at all the fault of -arr containers lol

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

I'm not the OP, but it's a headache even with trash guides

[–] [email protected] 0 points 1 month ago

I've had the opposite experience. It all "just worked". Try running unraid. It makes a lot of it so much easier.

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

Prowlarr's "guide" for docker implementation is scary

[–] [email protected] 1 points 1 month ago (1 children)
[–] [email protected] 1 points 1 month ago* (last edited 1 month ago) (1 children)

Nah, man. Check this out: https://prowlarr.com/#downloads-v3-other

Neither option makes me feel confident.

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

I am a bit confused tbh πŸ˜…

The link you send links to docker projects, the link I sent is the second one of those. Seems pretty straightforward?

But to be fair, I have never used docker for any of this. In my nix config, it's literally just:

    services.prowlarr.enable = true;
    services.prowlarr.openFirewall = true;

There's not really anything you need to configure host-side. Prowlarr needs to be able to communicate with sonarr and radarr (same as jackett), but otherwise it's basically stateless.

[–] [email protected] 2 points 1 month ago

You might be right. Last time I checked I was still a bit "green" with this. It's been two years and I think it makes more sense now πŸ˜‰

[–] [email protected] 1 points 1 month ago

The main issue is that for the prowler developers it seems like none of the docker options is ideal....

[–] [email protected] -1 points 1 month ago

It's* been working

[–] [email protected] 1 points 1 month ago

If i remember correctly, jackett allows you to add trackers that prowlarr doesn't have natively. Then you add jackett to prowlarr to distribute to the rest of your containers.

[–] [email protected] 19 points 1 month ago* (last edited 1 month ago) (1 children)

Looking at linuxserver/jackett on Docker Hub, it seems it indeed update everyday.

[–] [email protected] 3 points 1 month ago (2 children)

I'm not receiving daily updates from my gotify server, where watchtower reports the updates. But I guess it makes sense if it has some sort of automated build process. I've added the environment variable not to be updated by watchtower and I will keep an eye on it.

[–] [email protected] 8 points 1 month ago (1 children)

You can also tell watchtower to cleanup images after update so you don't end up with all of those old ones.

[–] [email protected] 1 points 1 month ago

Interesting

[–] [email protected] 7 points 1 month ago

If you're just pulling "latest" then docker will fetch the latest when it starts. You can pin to a version tag if you want to keep it stable.

[–] [email protected] 16 points 1 month ago* (last edited 1 month ago) (1 children)
[–] [email protected] 0 points 1 month ago (1 children)

Goodbye stopped containers.

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

IIRC, a normal prune doesn't get rid of those, only the --all prune does that. The normal one only erases images that aren't associated with any container.

[–] [email protected] 1 points 1 month ago* (last edited 1 month ago)

docker container prune for containers only also.

[–] [email protected] 11 points 1 month ago* (last edited 1 month ago) (1 children)

Presumably because it updates daily

[–] [email protected] 4 points 1 month ago

I thought so but my watchtower says "no".

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

I believe Linux Server builds images every day for most of their containers, even though there has been no code changes.

[–] bjorney 20 points 1 month ago

If the code doesn't change, the resulting docker image will have the same hash, and a new image won't be created

https://github.com/jackett/jackett/releases

Jackett is literally just releasing a new version every day

[–] [email protected] 2 points 1 month ago

bro downloaded the mudroom closet and has a whole stack of jacketts

[–] [email protected] 2 points 1 month ago

Laughs in nix

[–] [email protected] 2 points 1 month ago

Do you have Kinsing? I just dealt with it this past week.