commit 606d9df100aa1c1e956eb7335a0c6a6640ee80fc Author: luctia Date: Tue Jun 28 22:42:42 2022 +0200 Init diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..f7ea9d2 --- /dev/null +++ b/.env.sample @@ -0,0 +1,3 @@ +TIMEZONE=Europe/Amsterdam +PLEX_CLAIM= +ROOT_DIR=/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..856669b --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# EZARR +Ezarr is a project built to make it EZ to deploy a Servarr mediacenter, featuring: +- Sonarr +- Radarr +- Lidarr +- Prowlarr +- qBittorrent +- PleX + +## Using +1. To get started, clone the repository in a directory of your choosing. +2. Copy `.env.sample` to a real `.env`: `$ cp .env.sample .env`. +3. Set the environment variables to your liking. +4. Run `setup.sh` as superuser. This will set up your users, a system of directories, ensure + permissions are set correctly and sets some more environment variables for docker compose. +5. Run `docker compose up` + +That's it! Your containers are now up and you can continue to set up the settings in them. Take +note of the following: +- 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 (use + advanced): + - Media management: + - Use hardlinks instead of Copy: `true` + - Root folder: `/data/media/` and then tv, movies or music depending on service +- In qBittorrent, after connecting it to the -arr services, you can indicate it should move + torrents in certain categories to certain directories, like torrents in the `radarr` category + to `/data/torrents/movies`. You should do this. +- You'll have to add indexers in Prowlarr by hand. Use Prowlarrs settings to connect it to the + other -arr apps. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2c58a73 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,98 @@ +--- +version: "3.1" +services: + plex: + image: lscr.io/linuxserver/plex:latest + container_name: plex + network_mode: host + environment: + - PUID=1000 + - PGID=1000 + - VERSION=docker + - PLEX_CLAIM=${PLEX_CLAIM} + volumes: + - ${ROOT_DIR}/docker/plex-config:/config + - ${ROOT_DIR}/data/media/tv:/tv + - ${ROOT_DIR}/data/media/movies:/movies + - ${ROOT_DIR}/data/media/music:/music + restart: unless-stopped + +# +# SERVARR +# + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=${RADARR_UID} + - PGID=${MEDIACENTER_GID} + - UMASK=002 + - TZ=${TIMEZONE} + volumes: + - ${ROOT_DIR}/docker/radarr-config:/config + - ${ROOT_DIR}/data:/data + ports: + - 7878:7878 + restart: unless-stopped + + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + environment: + - PUID=${SONARR_UID} + - PGID=${MEDIACENTER_GID} + - UMASK=002 + - TZ=${TIMEZONE} + volumes: + - ${ROOT_DIR}/docker/sonarr-config:/config + - ${ROOT_DIR}/data:/data + ports: + - 8989:8989 + restart: unless-stopped + + lidarr: + image: lscr.io/linuxserver/lidarr:latest + container_name: lidarr + environment: + - PUID=${LIDARR_UID} + - PGID=${MEDIACENTER_GID} + - UMASK=002 + - TZ=${TIMEZONE} + volumes: + - ${ROOT_DIR}/docker/lidarr-config:/config + - ${ROOT_DIR}/data:/data + ports: + - 8686:8686 + restart: unless-stopped + + prowlarr: + image: lscr.io/linuxserver/prowlarr:develop + container_name: prowlarr + environment: + - PUID=${PROWLARR_UID} + - PGID=${MEDIACENTER_GID} + - UMASK=002 + - TZ=${TIMEZONE} + volumes: + - ${ROOT_DIR}/docker/prowlarr-config:/config + ports: + - 9696:9696 + restart: unless-stopped + + qbittorrent: + image: lscr.io/linuxserver/qbittorrent:latest + container_name: qbittorrent + environment: + - PUID=${QBIT_UID} + - PGID=${MEDIACENTER_GID} + - UMASK=002 + - TZ=${TIMEZONE} + - WEBUI_PORT=8080 + volumes: + - ${ROOT_DIR}/docker/qbittorrent-config:/config + - ${ROOT_DIR}/data/torrents:/data/torrents + ports: + - 8080:8080 + - 6881:6881 + - 6881:6881/udp + restart: unless-stopped diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..15efa25 --- /dev/null +++ b/setup.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# Make users and group +sudo useradd sonarr +sudo useradd radarr +sudo useradd lidarr +sudo useradd prowlarr +sudo useradd qbittorrent +sudo groupadd mediacenter +sudo usermod -a -G mediacenter sonarr +sudo usermod -a -G mediacenter radarr +sudo usermod -a -G mediacenter lidarr +sudo usermod -a -G mediacenter prowlarr +sudo usermod -a -G mediacenter qbittorrent + +# Make directories +sudo mkdir docker data +sudo mkdir docker/sonarr-config docker/radarr-config docker/lidarr-config docker/prowlarr-config docker/qbittorrent-config +sudo mkdir data/torrents data/media +sudo mkdir data/torrents/tv data/torrents/movies data/torrents/music data/media/tv data/media/movies data/media/music + +# Set permissions +sudo chmod -R 775 data/ +sudo chown -R 1000:mediacenter data/ +sudo chown -R sonarr:mediacenter docker/sonarr-config +sudo chown -R radarr:mediacenter docker/radarr-config +sudo chown -R lidarr:mediacenter docker/lidarr-config +sudo chown -R prowlarr:mediacenter docker/prowlarr-config +sudo chown -R qbittorrent:mediacenter docker/qbittorrent-config + +sonarr_id=$(sudo cat /etc/passwd | grep sonarr | cut -c 10-13) +radarr_id=$(sudo cat /etc/passwd | grep radarr | cut -c 10-13) +lidarr_id=$(sudo cat /etc/passwd | grep lidarr | cut -c 10-13) +prowlarr_id=$(sudo cat /etc/passwd | grep prowlarr | cut -c 12-15) +qbit_id=$(sudo cat /etc/passwd | grep qbittorrent | cut -c 15-18) + +echo "SONARR_UID=${sonarr_id}" >> .env +echo "RADARR_UID=${radarr_id}" >> .env +echo "LIDARR_UID=${lidarr_id}" >> .env +echo "PROWLARR_UID=${prowlarr_id}" >> .env +echo "QBIT_UID=${qbit_id}" >> .env