- Notifications
You must be signed in to change notification settings - Fork0
Ezarr aims to make it as easy as possible to setup an entire Servarr/Jackett/BitTorrent/Usenet/PleX/Jellyfin mediacenter stack using Docker
License
patawan/ezarr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ezarr is a project built to make it EZ to deploy a Servarr mediacenter on an Ubuntu server. Thebadge above means that the shell script and docker-compose file in this repository at leastdon'tcrash. It doesn't necessarily mean it will run well on your system ;) It features:
- Sonarr is an application to manage TV shows. It is capable of keeping trackof what you'd like to watch, at what quality, in which language and more, and can find a place todownload this if connected to Prowlarr and qBittorrent. It can also reorganize the media youalready own in order to create a more uniformly formatted collection.
- Radarr is like Sonarr, but for movies.
- Lidarr is like Sonarr, but for music.
- Readarr is like Sonarr, but for books.
- Mylar3 is like Sonarr, but for comic books. This one is a bittricky to set up, so do so at your own risk. In order to connect this to your Prowlarr container,the process within Prowlarr is the same as for the other containers (add app). You'll have to addan API key within Mylar3, yourself.
- Audiobookshelf is a self-hosted audiobook and podcast server.
- Prowlarr can keep track of indexers, which are services thatkeep track of Torrent or UseNet links. One can search an indexer for certain content and find awhere to download this.Note: when adding an indexer, please do not set the "seed ratio" toless than 1. Less than 1 means that you upload less than you download. Not only is thisunfriendly towards your fellow users, but it can also get you banned from certain indexers.
- Jackett is an alternative to Prowlarr.
- qBittorrent can download torrents and provides a bunch morefeatures for management.
- SABnzbd can download nzb'sfeatures for management.
- PleX is a mediaserver. Using this, you get access to a Netflix-likeinterface across many devices like your laptop or computer, your phone, your TV and more. Forsome features, you need aPleX pass.
- Tautulli is a monitoring application for PleX which can keep track ofwhat has been watched, who watched it, when and where they watched it, and how it was watched.
- Jellyfin is an alternative for PleX. Which you'd like to use is a matterof preference, and youcould even use both, although this is probably a waste of resources.
- Overseerr is a show and movie request management and media discoverytool.
- Jellyseerr is like Overseerr, but for Jellyfin.
To make things easier, a CLI has been developed. First, clone the repository in a directory of yourchoosing. You can run it by enteringpython main.py
and the CLI will guide you through theprocess. Please take a look atimportant notes before you continue.
- To get started, clone the repository in a directory of your choosing.Note: this will be whereyour installation and media will be as well, so think about this a bit.
- Copy
.env.sample
to a real.env
by running$ cp .env.sample .env
. - Set the environment variables to your liking. Note that
ROOT_DIR
should be the directory youhave cloned this in. - Run
setup.sh
as superuser. This will set up your users, a system of directories, ensurepermissions are set correctly and sets some more environment variables for docker compose. - Take a look at the
docker-compose.yml
file. If there are services you would like to ignore(for example, running PleX and Jellyfin at the same time is a bit unusual), you can comment themout by placing#
in front of the lines. This ensures they are ignored by Docker compose. - Run
docker compose up
.
That's it! Your containers are now up and you can continue to set up the settings in them. Pleasetake a look atimportant notes before you continue.
- When linking one service to another, remember to use the container name instead of
localhost
. - Please set the settings of the -arr containers as soon as possible to the following (useadvanced):
- Media management:
- Use hardlinks instead of Copy:
true
- Root folder:
/data/media/
and then tv, movies or music depending on service
- Use hardlinks instead of Copy:
- Make sure to set a username and password for all servarr services and qBittorrent!
- Media management:
- In qBittorrent, after connecting it to the -arr services, you can indicate it should movetorrents in certain categories to certain directories, like torrents in the
radarr
categoryto/data/torrents/movies
. You should do this. Also set theDefault Save Path
to/data/torrents
. Set "Run external program on torrent completion" to true and enter this in thefield:chmod -R 775 "%F/"
. - You'll have to add indexers in Prowlarr by hand. Use Prowlarrs settings to connect it to theother -arr apps.
When you're trying to access SABnzbd the first time you'll come across the messageExternal internet access denied
. To fix this simple modify thesabnzbd.ini
and changeinet_exposure
to4
, restart the docker container for sabnzbd (docker restart sabnzbd
) and now you can access theUI of SABnzbd (note: you may get aAccess denied - Hostname verification failed
, to fix this,simply go to the IP of your server directly instead of the hostname). After accessing the UI don'tforget to set a username and password (https://sabnzbd.org/wiki/configuration/3.7/general,section Security).
For more instructions or help see alsohttps://sabnzbd.org/wiki/extra/access-denied.html on theofficial SABnzbd website.
If you'd like to update containers, you can move to the directory of yourdocker-compose.yml
fileand run(sudo) docker compose pull
. This pulls the newest versions of all images (blueprints forcontainers) listed in thedocker-compose.yml
file. Then, you can run(sudo) docker compose up -d
. This will deploy the new versions without losing uptime. Afterwards, you can run(sudo) docker image prune
to remove the old images, freeing up space.
Some settings, particularly for the Servarr suite, are set in databases. While itmight bepossible to interact with this database after creation, I'd rather not touch these. It's notthat difficult to set them yourself, and quite difficult to do it automatically. For othercontainers, configuration files are automatically generated, so these are more easily edited,but I currently don't believe this is worth the effort.
On top of the above, connecting the containers above would mean setting a password and creating anAPI key for all of them. This would lead to everyone using Ezarr having the same API key and user/password combination. Personally, I'd rather trust users to figure this out on their own ratherthan trusting them to change these passwords and keys.