title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
Lidarr Installation |
true |
2022-03-01 16:50:51 UTC |
lidarr |
markdown |
2021-05-24 05:12:27 UTC |
Lidarr is supported natively on Windows. Lidarr can be installed on Windows as Windows Service or system tray application.
Windows versions are limited for support to those currently supported by Microsoft, others may work but this is an unsupported configuration {.is-warning}
A Windows Service runs even when the user is not logged in, but special care must be taken since Windows Services cannot access network drives (X:\ mapped drives or \\server\share UNC paths) without special configuration steps.
Additionally the Windows Service runs under the 'Local Service' account, by default this account does not have permissions to access your user's home directory unless permissions have been assigned manually. This is particularly relevant when using download clients that are configured to download to your home directory.
It's therefore advisable to install Lidarr as a system tray application if the user can remain logged in. The option to do so is provided during the installer.
You may have to run once "As Administrator" after installing in tray mode, if you get an access error -- such as Access to the path
C:\ProgramData\Lidarr\config.xml
is denied -- or you use mapped network drives. This gives Lidarr the permissions it needs. You should not need to run As Administrator every time. {.is-warning}
- Download the latest version of Lidarr for your architecture linked below.
- Run the installer
- Browse to http://localhost:8686 to start using Lidarr
- Windows x64 Installer
- Windows x32 Installer {.links-list}
It is possible to install Lidarr manually using the x64 .zip download. However in that case you must manually deal with dependencies, installation and permissions. {.is-info}
{#OSX}
Lidarr is not compatible with OSX versions < 10.15 (Catalina) due to .NET incompatibilities. {.is-warning}
- Download the MacOS App
- Open the archive and drag the Lidarr icon to your Application folder.
- Self-sign Lidarr
codesign --force --deep -s - Lidarr.app
- Browse to http://localhost:8686 to start using Lidarr
Note: Raspberry Pi OS and Raspbian are both flavors of Debian {.is-info}
For the Debian / Ubuntu / Raspbian beginners there isn't an Apt Repository or Deb package.
If you want an easy life, follow this community provided and maintained Easy Install
script for a base Debian (Raspbian / Raspberry Pi OS) / Ubuntu install.
For the official installation instructions that are 'Hands on' follow the Debian / Ubuntu Hands on Install steps further below.
Please see the *Arr Community Installation Script
You'll need to install the binaries using the below commands.
The steps below will download Lidarr and install it into
/opt
Lidarr will run under the userlidarr
and groupmedia
Lidarr's configuration files will be stored in/var/lib/lidarr
{.is-warning}
- Ensure you have the required prerequisite packages:
sudo apt install curl mediainfo sqlite3 libchromaprint-tools
Warning: Ignoring the below prerequisites will result in a failed installation and non-functional application. {.is-warning}
Installation Prerequisites The below instructions are based on the following prerequisites. Change the instructions as needed to suit your specific needs if necessary. * The user
lidarr
is created * The userlidarr
is part of the groupmedia
* Your download clients and media server run as and are a part of the groupmedia
* Your paths used by your download clients and media server are accessible (read/write) to the groupmedia
* You created the directory/var/lib/lidarr
and ensured the userlidarr
has read/write permissions for it {.is-danger}
By continuing below, you acknowledge that you have read and met the above requirements. {.is-warning}
- Download the correct binaries for your architecture.
- You can determine your architecture with
dpkg --print-architecture
- AMD64 use
arch=x64
- ARM, armf, and armh use
arch=arm
- ARM64 use
arch=arm64
- AMD64 use
- You can determine your architecture with
wget --content-disposition 'http://lidarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64'
- Uncompress the files:
tar -xvzf Lidarr*.linux*.tar.gz
- Move the files to
/opt/
sudo mv Lidarr/ /opt
This assumes you have created the user and will run as the user
lidarr
and groupmedia
. You may change this to fit your usecase. It's important to choose these correctly to avoid permission issues with your media files. We suggest you keep at least the group name identical between your download client(s) and Lidarr. {.is-danger}
- Ensure ownership of the binary directory.
sudo chown -R lidarr:media /opt/Lidarr
- Configure systemd so Lidarr can autostart at boot.
The below systemd creation script will use a data directory of
/var/lib/lidarr
. Ensure it exists or modify it as needed. For the default data directory of/home/$USER/.config/Lidarr
simply remove the-data
argument. Note: that$USER
is the User Lidarr runs as and is defined below. {.is-danger}
cat << EOF | sudo tee /etc/systemd/system/lidarr.service > /dev/null
[Unit]
Description=Lidarr Daemon
After=syslog.target network.target
[Service]
User=lidarr
Group=media
Type=simple
ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
- Reload systemd:
sudo systemctl -q daemon-reload
- Enable the Lidarr service:
sudo systemctl enable --now -q lidarr
- (Optional) Remove the tarball:
rm Lidarr*.linux*.tar.gz
Typically to access the Lidarr web GUI browse to http://{Your server IP Address}:8686
If Lidarr did not appear to start, then check the status of the service:
sudo journalctl --since today -u lidarr
To uninstall and purge:
Warning: This will destroy your application data. {.is-danger}
sudo systemctl stop lidarr
sudo rm -rf /opt/Lidarr
sudo rm -rf /var/lib/lidarr
sudo rm -rf /etc/systemd/system/lidarr.service
sudo systemctl -q daemon-reload
To uninstall and keep your application data:
sudo systemctl stop lidarr
sudo rm -rf /opt/Lidarr
sudo rm -rf /etc/systemd/system/lidarr.service
sudo systemctl -q daemon-reload
The Lidarr team only provides builds for FreeBSD. Plugins and Ports are maintained and created by the FreeBSD community.
Instructions for FreeBSD installations are also maintained by the FreeBSD community and anyone with a GitHub account may update the wiki as needed.
-
From the main screen select Jails
-
Click ADD
-
Click Advanced Jail Creation
-
Name (any name will work): Lidarr
-
Jail Type: Default (Clone Jail)
-
Release: 12.2-Release (or newer)
-
Configure Basic Properties to your liking
-
Configure Jail Properties to your liking but add
-
allow_mlock
-
allow_raw_sockets
allow_raw_sockets
is helpful for troubleshooting (e.g. ping, traceroute) but is not a requirement. {.is-info}
-
Configure Network Properties to your liking
-
Configure Custom Properties to your liking
-
Click Save
Back on the jails list find your newly created jail for lidarr
and click "Shell"
To install Lidarr
* Ensure your pkg repo is configured to get packages from
/latest
and not/quarterly
* Check/usr/local/etc/pkg/repos/FreeBSD.conf
* If that does not exist, copy over/etc/pkg/FreeBSD.conf
to that location, open it, and replacequarterly
withlatest
{.is-warning}
pkg install lidarr
Don't close the shell out yet we still have a few more things!
Now that we have it installed a few more steps are required.
Time to enable the service but before we do, a note:
The updater is disabled by default. The pkg-message
gives instructions on how to enable the updater but keep in mind: this can break things like pkg check -s
and pkg remove
for Lidarr when the built-in updater replaces files.
To enable the service:
sysrc lidarr_enable=TRUE
If you do not want to use user/group lidarr
you will need to tell the service file what user/group it should be running under
sysrc lidarr_user="USER_YOU_WANT"
sysrc lidarr_group="GROUP_YOU_WANT"
lidarr
stores its data, config, logs, and PID files in /usr/local/lidarr
by default. The service file will create this and take ownership of it IF AND ONLY IF IT DOES NOT EXIST. If you want to store these files in a different place (e.g., a dataset mounted into the jail for easier snapshots) then you will need to change it using sysrc
sysrc lidarr_data_dir="DIR_YOU_WANT"
Reminder: If you are using an existing location then you will manually need to either: change the ownership to the UID/GID lidarr
uses AND/OR add lidarr
to a GID that has write access.
Almost done, let's start the service:
service lidarr start
If everything went according to plan then lidarr should be up and running on the IP of the jail (port 8686)!
You can now safely close the shell.
-
The service appears to be running but the UI is not loading or the page is timing out
- Double check that
allow_mlock
is enabled in the jail
- Double check that
-
System.NET.Sockets.SocketException (43): Protocol not supported
- Make sure you have
VNET
turned on for your jail, ip6=inherit, or ip6=new
- Make sure you have
The service script should now work around the lack of VNET and/or IP6 thus removing the requirement for VNET or ip6=inherit {.is-info}
The Lidarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own.
These instructions provide generic guidance that should apply to any Lidarr Docker image.
There are two common problems with Docker volumes: Paths that differ between the Lidarr and download client container and paths that prevent fast moves and hard links.
The first is a problem because the download client will report a download's path as /torrents/My.Music.2018/
, but in the Lidarr container that might be at /downloads/My.Music.2018/
. The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths.
Most Docker images suggest paths like /music
and /downloads
. This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Lidarr container, like /torrents.
The best solution is to use a single, common volume inside the containers, such as /data. Your Movies would be in /data/Movies
, torrents in /data/downloads/torrents
and/or usenet downloads in /data/downloads/usenet
.
If this advice is not followed, you may have to configure a Remote Path Mapping in the Lidarr web UI (Settings › Download Clients).
Permissions and ownership of files is one of the most common problems for Lidarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes. Keep in mind that Lidarr will need read and write to the download folders as well as the final folders.
For a more detailed explanation of these issues, see The Best Docker Setup and Docker Guide wiki article. {.is-info}
To install and use these Docker images, you will need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose.
- hotio/lidarr
- lscr.io/linuxserver/lidarr {.links-list}
Sample config examples for configuring Lidarr to be accessible through a reverse proxy.
These examples assumes the default port of
8686
and that you set a baseurl oflidarr
. It also assumes your web server i.e nginx and Lidarr running on the same server accessible atlocalhost
. If not, use the host IP address or a FDQN instead for the proxy pass. {.is-info}
location /lidarr {
proxy_pass http://127.0.0.1:8686;
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 ~ /lidarr/api {
auth_request off;
proxy_pass http://127.0.0.1:9696;
}
A better way to organize your configuration files for Nginx would be to store the configuration for each site in a seperate file.
To achieve this it is required to modify nginx.conf
and add include subfolders-enabled/*.conf
in the server
context. So it will look something like this.
server {
listen 80;
server_name _;
# more configuration
include subfolders-enabled/*.conf
}
Adding this line will include all files that end with .conf
to the Nginx configuration. Make a new directory called subfolders-enabled
in the same folder as your nginx.conf
file is located. In that folder create a file with a recognizable name that ends with .conf. Add the configuration from above from the file and restart or reload Nginx. You should be able to visit Lidarr at yourdomain.tld/lidarr
. tld is short for Top Level Domain
Alternatively you can use a subdomain for lidarr. In this case you would visit lidarr.yourdomain.tld
. For this you would need to configure a A record
or CNAME record
in your DNS.
Many free DNS providers do not support this {.is-warning} By default Nginx includes the
sites-enabled
folder. You can check this innginx.conf
, if not you can add it using the include directive. And really important, it has to be inside thehttp context
. Now create a config file inside the sites-enabled folder and enter the following configuration. For this configuration it is recommended to set baseurl to '' (empty). This configuration assumes you are using the default8686
and Lidarr is accessible on the localhost (127.0.0.1). For this configuration the subdomainlidarr
is chosen (line 5). {.is-info} If you're using a non-standard http/https server port, make sure your Host header also includes it, i.e.:proxy_set_header Host $host:$server_port
{.is-warning}
server {
listen 80;
listen [::]:80;
server_name lidarr.*;
location / {
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_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8686;
}
}
Now restart Nginx and Lidarr should be available at your selected subdomain.
This should be added within an existing VirtualHost site. If you wish to use the root of a domain or subdomain, remove lidarr
from the Location
block and simply use /
as the location.
Note: Do not remove the baseurl from ProxyPass and ProxyPassReverse if you want to use /
as the location.
<Location /lidarr>
ProxyPreserveHost on
ProxyPass http://127.0.0.1:8686/lidarr connectiontimeout=5 timeout=300
ProxyPassReverse http://127.0.0.1:8686/lidarr
</Location>
ProxyPreserveHost on
prevents apache2 from redirecting to localhost when using a reverse proxy.
Or for making an entire VirtualHost for Lidarr:
ProxyPass / http://127.0.0.1:8686/lidarr/
ProxyPassReverse / http://127.0.0.1:8686/lidarr/
If you implement any additional authentication through Apache, you should exclude the following paths:
/lidarr/api/