Readarr: the books and audiobooks organizer

Readarr is part of the Servarr suite: it allows to automatically organize, search and download books and audiobooks. Or at least, it should. The harsh reality at the time of writing this page is a bit less good that is seems. On the good side, Readarr feels and behaves like the other *Arr's, which would be a big plus, but on the bad side there are two main issues with Readarr:

  • Currently metadata searches are hit and miss. Upstream devs are aware and working on it, it's already improved quite a lot.
  • To supporto both e-books and audio-books (for the same books!) you need to install two instances of Readarr (like for Radarr and 4K / 1080p movies.. it's the same concept)

I will show you how to run two instances here, so that you can have the same book both in e-book and audio.book formats at the same time.

There is also another tool called LazyLibrarian, which i have also installed, but i don't like the UI and the overall feeling, but YMMV.

Installation

Readarr is easily installed and managed within Gentoo linux since there is an ebuild for it. All you need to do is unmask it (at the time of writing this it's are masked for AMD64 at least):

echo www-apps/readarr ~amd64 >> /etc/portage/package.accept_keywords/readarr

then install it:

emerge -v readarr

This step will create a dedicated readarr user but you will want to add it to the group media, that you have created before, so that the it will be able to access and manage your media collection:

usermod -a -G media readarr

Also, you want to move Readarr home folder under /data/daemons/readarr for consistency and to be protected on the RAID array, so:

usermod -m -d /data/daemons/readarr readarr

You will need only one installation of Readarr to run two instances of the service, but you need to duplicate the start script. Create the following file in /etc/init.d:

readarr-audiobooks
pidfile="/run/readarr-audiobooks.pid"
command="/opt/readarr/Readarr"
command_user="readarr:readarr"
command_args="-nobrowser -data=/deposito/Arr/readarr/.config/Readarr-Audiobooks"
command_background=true

You can, if you want, rename the /etc/init.d/readarr script to something like readarr-books but that might not play well with future upgrades, so i suggest not to rename it. The “-nobrowser” option is required to have two instances running.

Reverse-Proxy configuration

Before you proceed, you should make Readarr accessible via the reverse-proxy, so that access, configuration and usage will be simplified from the beginning. Add these two files to /etc/nginx/folders:

readarr-books.conf
# Readarr - Books
location ^~ /readarr-books {
        proxy_pass http://127.0.0.1:8787;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
}
# Allow the API External Access via NGINX
location ^~ /readarr-books/api {
        auth_basic off;
        proxy_pass http://127.0.0.1:8787;
}
readarr-audiobooks.conf
# Readarr - audiolibri
location ^~ /readarr-audiobooks {
        proxy_pass http://127.0.0.1:8788;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
}
# Allow the API External Access via NGINX
location ^~ /readarr-audiobooks/api {
        auth_basic off;
        proxy_pass http://127.0.0.1:8788;
}      

Refer to The Reverse Proxy concept for more info on how to enable these configs and reload the Reverse Proxy.

Startup

There are some configuration that must be perform before actually starting the two services. You need to briefly start and stop it to let it create the main configuration file, this is required because you need to generate a new API key:

/etc/init.d/readarr start
/etc/init.d/readarr stop
/etc/init.d/readarr-audiobooks start
/etc/init.d/readarr-audiobooks stop

Now edit the newly created xml config files:

  • /data/daemons/readarr/.config/Readarr: for the books instance
  • /data/daemons/readarr/.config/Readarr-Audiobooks: for the audiobooks instance

Only change the following lines in the Sonarr books file, do not edit anything else (unless you know what you are doing):

  <UrlBase>readarr-books</UrlBase>
    <BindAddress>127.0.0.1</BindAddress>
  <AuthenticationMethod>Forms</AuthenticationMethod>
  <AuthenticationRequired>DisabledForLocalAddresses</AuthenticationRequired>

Only change the following lines in the Sonarr audiobooks file, do not edit anything else (unless you know what you are doing):

  <UrlBase>readarr-audiobooks</UrlBase>
    <BindAddress>127.0.0.1</BindAddress>
  <AuthenticationMethod>Forms</AuthenticationMethod>
  <AuthenticationRequired>DisabledForLocalAddresses</AuthenticationRequired>
    <Port>8788</Port>

Please note in the audiobooks instance you ALSO need to edit the Port field to avoid collision with the books instance.

Add both Readars to default runlevel, for autostart on reboot, and start it manually now:

rc-update add readarr default
/etc/init.d/readarr start
rc-update add readarr-audiobooks default
/etc/init.d/readarr-audiobooks start

Readarr will now be accessible as http://192.168.0.1/readarr-books and http://192.168.0.1/readarr-audiobooks.

All set! Both Readarr instances are running.

In order for Readarr to benefit from Prowlarr automatic indexers management you need to open http://192.168.0.1/prowlarr in your browser, go to settingsapps and add Readarr (give a name like Readarr-books). From the popup window set:

Now add a second Readarr (you will need to specify a different name, like Readarr-audiobooks):

Then go to the Prowlarr indexers page and click on the synchronize all indexers icon.

Usage

Before you can actually use Readarr you need to perform some initial setup in settingsmedia management:

  • Add a new Root Folder. Use /data/Media/Books as root folder for books instance and /data/Media/Audiobooks for the audiobooks instance.

Now, in each Readarr, enable “advanced settings” and:

  • Thick “Set permissions” to on
  • Set “chmod folder” to 775 (umask will be 0002)
  • set “chmod Group” to “media”
  • save and restart the daemon (from the user icon on top-right corner)

you can fine tune and configure many other aspects of Readarr as you wish. A very common guide is The TRaSH Guides.

Please note that you will not yet be able to use Readarr fully as you have not yet installed any downloader.