diff --git a/.env.example b/.env.example index ff5f0fc..d807458 100644 --- a/.env.example +++ b/.env.example @@ -22,6 +22,7 @@ CLOUDFLARE_DNS_API_TOKEN= CLOUDFLARE_ZONE_API_TOKEN= SONARR_API_KEY= RADARR_API_KEY= +LIDARR_API_KEY= PROWLARR_API_KEY= JELLYFIN_API_KEY= HOMEPAGE_VAR_TITLE="Docker-Compose NAS" diff --git a/README.md b/README.md index 1543db9..c3a4acf 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ I am running it in Ubuntu Server 22.04; I also tested this setup on a [Synology |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|--------------| | [Sonarr](https://sonarr.tv) | PVR for newsgroup and bittorrent users | [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr) | /sonarr | | [Radarr](https://radarr.video) | Movie collection manager for Usenet and BitTorrent users | [linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr) | /radarr | +| [Lidarr](https://lidarr.audio) | Music collection manager for Usenet and BitTorrent users | [linuxserver/lidarr](https://hub.docker.com/r/linuxserver/lidarr) | /lidarr | | [Prowlarr](https://github.com/Prowlarr/Prowlarr) | Indexer aggregator for Sonarr and Radarr | [linuxserver/prowlarr:latest](https://hub.docker.com/r/linuxserver/prowlarr) | /prowlarr | | [PIA WireGuard VPN](https://github.com/thrnz/docker-wireguard-pia) | Encapsulate qBittorrent traffic in [PIA](https://www.privateinternetaccess.com/) using [WireGuard](https://www.wireguard.com/) with port forwarding. | [thrnz/docker-wireguard-pia](https://hub.docker.com/r/thrnz/docker-wireguard-pia) | | | [qBittorrent](https://www.qbittorrent.org) | Bittorrent client with a complete web UI
Uses VPN network
Using Libtorrent 1.x | [linuxserver/qbittorrent:libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent | @@ -106,6 +107,7 @@ If you want to show Jellyfin information in the homepage, create it in Jellyfin | `CLOUDFLARE_ZONE_API_TOKEN` | API token with `Zone:Read` permission | | | `SONARR_API_KEY` | Sonarr API key to show information in the homepage | | | `RADARR_API_KEY` | Radarr API key to show information in the homepage | | +| `LIDARR_API_KEY` | Lidarr API key to show information in the homepage | | | `PROWLARR_API_KEY` | Prowlarr API key to show information in the homepage | | | `JELLYFIN_API_KEY` | Jellyfin API key to show information in the homepage | | | `HOMEPAGE_VAR_TITLE` | Title of the homepage | `Docker-Compose NAS` | @@ -133,11 +135,11 @@ The location of the server it will connect to is set by `LOC=ca`, defaulting to You need to fill the credentials in the `PIA_*` environment variable, otherwise the VPN container will exit and qBittorrent will not start. -## Sonarr & Radarr +## Sonarr, Radarr & Lidarr ### File Structure -Sonarr and Radarr must be configured to support hardlinks, to allow instant moves and prevent using twice the storage +Sonarr, Radarr, and Lidarr must be configured to support hardlinks, to allow instant moves and prevent using twice the storage (Bittorrent downloads and final file). The trick is to use a single volume shared by the Bittorrent client and the *arrs. Subfolders are used to separate the TV shows from the movies. @@ -153,11 +155,13 @@ data └── media = shared folder for Sonarr and Radarr files ├── movies = Radarr └── tv = Sonarr + └── music = Lidarr ``` Go to Settings > Management. In Sonarr, set the Root folder to `/data/media/tv`. -In Radar, set the Root folder to `/data/media/movies`. +In Radarr, set the Root folder to `/data/media/movies`. +In Lidarr, set the Root folder to `/data/media/music`. ### Download Client @@ -169,7 +173,7 @@ place in the VPN container, the hostname for qBittorrent is the hostname of the The indexers are configured through Prowlarr. They synchronize automatically to Radarr and Sonarr. Radarr and Sonarr may then be added via Settings > Apps. The Prowlarr server is `http://prowlarr:9696/prowlarr`, the Radarr server -is `http://radarr:7878/radarr` and Sonarr `http://sonarr:8989/sonarr`: +is `http://radarr:7878/radarr` Sonarr `http://sonarr:8989/sonarr`, and Lidarr `http://lidarr:8686/lidarr`: Their API keys can be found in Settings > Security > API Key. diff --git a/docker-compose.yml b/docker-compose.yml index 968015d..77733f9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -81,6 +81,32 @@ services: - homepage.widget.type=radarr - homepage.widget.url=http://radarr:7878/radarr - homepage.widget.key=${RADARR_API_KEY} + lidarr: + image: lscr.io/linuxserver/lidarr + container_name: lidarr + environment: + - PUID=${USER_ID} + - PGID=${GROUP_ID} + - TZ=${TIMEZONE} + volumes: + - ./lidarr:/config + - ${DATA_ROOT}:/data + restart: always + labels: + - traefik.enable=true + - traefik.http.routers.lidarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/lidarr`)) + - traefik.http.routers.lidarr.tls=true + - traefik.http.routers.lidarr.tls.certresolver=myresolver + - traefik.http.services.lidarr.loadbalancer.server.port=8686 + - homepage.group=Media + - homepage.name=Lidarr + - homepage.icon=lidarr.png + - homepage.href=/lidarr + - homepage.description=Music management + - homepage.weight=2 + - homepage.widget.type=lidarr + - homepage.widget.url=http://lidarr:8686/lidarr + - homepage.widget.key=${LIDARR_API_KEY} prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr diff --git a/update-config.sh b/update-config.sh index 5fae86e..1d3ec3c 100755 --- a/update-config.sh +++ b/update-config.sh @@ -18,6 +18,14 @@ done sed -i.bak "s/<\/UrlBase>/\/sonarr<\/UrlBase>/" ./sonarr/config.xml && rm ./sonarr/config.xml.bak sed -i.bak 's/^SONARR_API_KEY=.*/SONARR_API_KEY='"$(sed -n 's/.*\(.*\)<\/ApiKey>.*/\1/p' ./sonarr/config.xml)"'/' .env && rm .env.bak +echo "Updating Lidarr configuration..." +until [ -f ./lidarr/config.xml ] +do + sleep 5 +done +sed -i.bak "s/<\/UrlBase>/\/lidarr<\/UrlBase>/" ./lidarr/config.xml && rm ./lidarr/config.xml.bak +sed -i.bak 's/^LIDARR_API_KEY=.*/LIDARR_API_KEY='"$(sed -n 's/.*\(.*\)<\/ApiKey>.*/\1/p' ./lidarr/config.xml)"'/' .env && rm .env.bak + echo "Updating Prowlarr configuration..." until [ -f ./prowlarr/config.xml ] do