my setup for the -arr software family
Disclaimer: I, in no way, advocate for piracy. It is only legal to obtain copies of media that you already own.
I wanted to set up the *-arr software stack (sonarr, radarr, etc), but all of the resources I found online were for setting it up only on one computer.
Part 1: Gathering Requirements
Firstly, I had to consider storage cost. Cloud storage isn't cheap, and any files I download would be rarely accessed by me. It would make the most sense to rent a minimally powerful storage node, since its only job would be to read and write from disk.
Secondly, I had to consider what effect transcoding would have on server performance. The server doing the streaming of media needs to be sufficiently powerful for real-time transcoding, or else the watching experience will not be enjoyable due to buffering issues.
Finally, I had to consider overall resiliency. I would be using a lot of data, if I was downloading and uploading a bunch of stuff. While not explicitly illegal, I am aware that peer-to-peer file sharing (torrenting, specifically) might violate a cloud provider's "fair use" bandwith policy, and result in the termination or non-renewal of the associated account. Rather than opt for (expensive) data redundancy, I that I would simply use Samba to mount a remote drive to the node responsible for torrenting.
After sleeping on it for a few days, I drafted the final list of requirements. It ended up looking like this:
- everything needs to run in a container
- services should be addressable via path, only subdomain is not acceptable
- media files need to be stored on their own node
- torrent clients should be able to be deployed without any manual intervention
- there should be zero buffering time when streaming