I am almost done building my first self hosted streambox through Docker. That’s a total of 16 instances, each fulfilling 1 specific role.
As I’m new to the *arr world, could you please help me understand why it is standard to deploy multiple *arr services for each media type (ex: readarr1 for books + readarr2 for audiobooks) instead of using 1 that does multiple media types?
Thank you.
In the software world, based on personal experience and the UNIX philosophy, software should aim to do one thing and do it really well.
Then there are also the bloat complaints (why should I download a whole stack of arr services when I only care for movies)
The most unfortunate one however can be them mixing. If my child looks up Star Wars but instead the suite ends up downloading a Star Wars porn parody… that’s just… bad
Star Whores is a masterpiece, don’t disparage it
It’s got nothing on Super Hornio Bros, though.
I do wish I didn’t need to run a second Radarr instance to have both 1080p and 4K media.
Not everyone has to, though. I use one instance for a wide variety of resolutions, depending on the show and consumption model; including 360,480,720,1080, 2160 (HDR/10-bit). But I run Plex on a box with quicksync that is doing my transcoding for me.
So why have you chosen to run different instances?
It’s not as relevant today as it used to be, that’s for sure. Originally it was to limit transcoding of 4K content (which used to be a lot harder), and also to avoid the HDR tone mapping issues with 4K content during transcoding, both of which are largely resolved with newer hardware and Plex software updates.
The only reason I keep them separated now is because most of the folks I share with can’t direct stream 4K content anyway, and so I only share out the 1080p libraries in Plex. It keeps bandwidth usage down and limits having to go to hardware transcoding, which can reduce quality and introduces startup delays. The library I use locally indexes both the 1080p and 4K content, so Plex will always prefer the 4K if it’s there.
If diskspace ever became an issue, I’d probably consider merging the libraries again.
And everyone thinks they can make a better one
Sure but they also seem to share quite a bit of GUI code at least. Couldn’t all of these just be plugins for a core *arr service?
I think the goal of the original project (I think it was Sonarr?) was just to cover TV shows. The others had forked and the rest is history. It was never aimed to be a multi platform thing.
Good idea! You have one hobby more now.
That’s because of the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
When I was an up and coming Unix admin, the senior admin told me it was all about “little tools for little jobs”, and the OS lets you string them together into whatever solution or outcome you need.
That was nearly 30 years ago. Still holds true today.
*arr apps don’t do one thing.
- They cook their own authentication system.
- They manage trackers, indexers, etc.
- They download files automatically.
- They track upcoming releases.
- They rename files automatically.
*arr apps don’t do one thing well.
- They require extensive configuration due to insensible defaults.
- They require manual intervention from time to time even with a good configuration.
- They can’t even fulfill their purpose. Bazarr shits the bed with anime.
*arr apps don’t handle text streams.
But I think the Unix philosophy is flawed anyways. It’s like the metaverse: When a metaverse succeeds, they attribute that success to the metaverse as a concept. When a metaverse fails, they attribute the failure to that metaverse, not the metaverse as a concept. Now substitute metaverse with unix utility and the metaverse as a concept with the unix philosophy.
You’re taking it too literally, and missing much of the nuance between philosophy of design and actual implementation details.
The movies app manages movies. That’s its one thing. No need to overcomplicate it. Unix ‘find’ for instance, finds files. That’s its one thing. ‘find’ also lets you filter the results, but that doesn’t change its purpose of finding files.
The fact that *arr apps don’t do things, or are bad at things, has nothing to do with the Unix philosophy. Were these apps combined into a monolith, the same issues would need to be addressed.
There is no right or wrong in a design philosophy. It’s all trade offs. I don’t know anyone who says Unix (or the metaverse) is successful because of a design philosophy. What matters is what you deliver.
There is literally not one singular(!) arr that does what you’re claiming, at least that I’m aware of. The indexing is done by a different thing than the tracking and the downloading.
That’s why you end up with 16 of them like OP after all…
Yeah, sonarr and radarr support some indexers but I ended up just setting up Jackett. They both use those indexers to search, but in different ways. They also don’t do the file downloading, your separate download client does that. They do both track future releases and rename files, but the way that works conceptually for movies and TV shows is pretty different since Movies are singular pieces of media while shows are broken up into seasons and episodes. They work with different data structures and so have to parse and present in different ways.
That will be one big bloated software extremely painful to maintain.
deleted by creator
“There is always a relevant XKCD”
The simpler services are, the less likely to break down. Google SRE guidance
And easier to maintain with different dev groups
People have tried and failed to make the “one arr to rule them all” but the current stack is pretty lightweight, stable and mature so it is better to just install them all in containers then have some kind of frontend and request system in front of them for users and admins.
I use Organizr as a frontend (keeps them all together in one interface and optionally handles SSO across all of them) then I have Overseerr for users to add media without having to give them access to the arrs directly.
Because no one creates one that will work on many media types.
The source information and structure of the media types can be quite different, you can’t just add books to sonarr for example. It’s often better with niche tools that to one thing well than some huge bloated software that does everything poorly.
Maybe one day someone will create what you are asking for.
Because it makes more sense to have software do one thing good and not many things bad. There are many examples of this, iTunes is a classic but also Jellyfin, I like that they’re focussing on video because that is very complex in itself. To also do comics, podcasts, audiobooks, comics, books etc. meana much more complexity, things that can influence and trip each other, diversion of work etc. Yes, would be very cool to have one app that can play everything perfectly but that’s almost impossible. To do one thing good isn’t.
iTunes is a double edged sword in that regard, given that while it initially innovated as a digital music distribution storefront, as more and more features were added to it, it started juggling too many tasks at once instead of continuing to innovate with just one.
I’ve had the same question for a while now. My best guess is that they’re trying to create separate services that individually are the best at what they do UI/UX-wise. It may be very difficult to create an all-in-one platform for each type of media as a cohesive experience.
It could also be done for modularity. Having the services split up means the user doesn’t have to deal with media types they don’t care about and could just install the services for which they do.
That being said, it would be nice if there was an all-in-one platform that allowed you to easily opt into the media types you wanted as like plugins or something instead of you having to set up multiple different app containers in your server.
I added overseer on top of my *arr stack. I can just request whatever from there and it just passes it to the correct instance. I also preferr to set up an instance for a specific target. Makes it easier if the services are separated. To change the minimum bitrate or something.
Yes, I understand that you can just add more services to integrate your other services together. I just think that it would be far more convenient to have a single service that does all of that in a smart way. Each service could instead be its own plugin that you could opt into. Each plugin would have its own dedicated UI/UX for handling that media type.
Basically it should have a design similar to that of Plex or Jellyfin (which handle multiple media types in a smart, cohesive way). Of course, that would take a lot of coordination and funding, but man it would be such a better overall experience for the vast majority of people.
I just want audiobooks and they’re very difficult to find a large library of
Given how many audiobooks Audiobookbay seems to be missing it would certainly be helpful to have a complementary source given that even private torrent trackers and usenet aren’t much better for that than public torrent trackers it seems…
Check your local library and Libby
I think they could make it more modular. Obviously there is a ton of commonality between these apps
Monopoly bad
All the *arrs are in the same Github repo.
because it isn’t a very good idea to keep a huge illegal library in one place, maybe
Arrs are not for doing that but organizing it.
You can legally rip your own shit and keep it on the server.