PVR (Automation) Clients
Information
These clients are for gathering content and watching for new releases of content. They will scrape the internet once configured and grab new items for you.
Sonarr
- Just Sonarr Commands
- Sonarr is a TV Show PVR and automation utility
Type | Command |
---|---|
Start | docker compose up sonarr -d |
Shutdown | docker compose down sonarr |

- Once started, Sonarr should be hit from this url:
- It is mobile responsive but if you want an app for all of this, you can add Sonarr as a client in this App on Android: nzb360.
- This is cross platform, but achieves a similar result: LunaSea
URL | |
---|---|
SSL (if you enable it) | https://localhost:9898 |
Non-SSL | http://localhost:8989 |
Image | linuxserver/sonarr |
Sonarr Example Docker Compose
services:
############ Media PVR Management - TV SHOWS############
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: ${SONARR_CONTAINER_NAME}
env_file:
- ./.env
- ../../.env
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TIMEZONE}
volumes:
- ${DEFAULT_CONTAINER_DATA_LOCATION}/Sonarr:/config
- ${LOCAL_TV_PATH}:/tv # optional but needed to map external data
- ${LOCAL_DOWNLOADS_PATH:-./.local/downloads}:/downloads # optional but needed to map external data
labels:
- "traefik.enable=true"
- "traefik.http.routers.${SONARR_CONTAINER_NAME}.rule=Host(`${SONARR_CONTAINER_NAME}.${PROJECT_HOSTNAME}`)"
- "traefik.http.routers.${SONARR_CONTAINER_NAME}.entrypoints=https"
- "traefik.http.routers.${SONARR_CONTAINER_NAME}.tls=true"
- "traefik.http.services.${SONARR_CONTAINER_NAME}.loadbalancer.server.port=${SONARR_HOST_PORT}"
## Middlewares
- ${SONARR_AUTHENTIK_MIDDLEWARE:-}
ports:
- ${SONARR_HOST_PORT}:8989
- ${SONARR_HOST_PORT_SSL}:9898 # ssl port if you enable it
restart: unless-stopped
depends_on:
- prowlarr
networks:
- homelab
profiles:
- all
- sonarr
Sonarr Example .env
file
SONARR_CONTAINER_NAME="sonarr"
SONARR_HOST_PORT="8989"
SONARR_HOST_PORT_SSL="9898"
Radarr
- Just Radarr Commands
- Radarr is a Movie PVR and automation utility
- It is mobile responsive but if you want an app for all of this, you can add Radarr as a client in this App on Android: nzb360.
- This is cross platform, but achieves a similar result: LunaSea
Type | Command |
---|---|
Start | docker compose up radarr -d |
Shutdown | docker compose down radarr |

- Once started, Radarr should be hit from this url:
URL | |
---|---|
Non-SSL | http://localhost:7878 |
Image | linuxserver/radarr |
Radarr Example Docker Compose
services:
############ Media PVR Management - MOVIES ############
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: ${RADARR_CONTAINER_NAME}
env_file:
- ./.env
- ../../.env
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TIMEZONE}
volumes:
- ${DEFAULT_CONTAINER_DATA_LOCATION}/Radarr:/config
- ${LOCAL_MOVIES_PATH}:/movies # optional but needed to map external data
- ${LOCAL_DOWNLOADS_PATH:-./.local/downloads}:/downloads # optional but needed to map external data
ports:
- ${RADARR_HOST_PORT}:7878
labels:
- "traefik.enable=true"
- "traefik.http.routers.${RADARR_CONTAINER_NAME}.rule=Host(`${RADARR_CONTAINER_NAME}.${PROJECT_HOSTNAME}`)"
- "traefik.http.routers.${RADARR_CONTAINER_NAME}.entrypoints=https"
- "traefik.http.routers.${RADARR_CONTAINER_NAME}.tls=true"
- "traefik.http.services.${RADARR_CONTAINER_NAME}.loadbalancer.server.port=7878"
## Middlewares
- ${RADARR_AUTHENTIK_MIDDLEWARE:-}
restart: unless-stopped
networks:
- homelab
profiles:
- all
- radarr
Radarr Example .env
file
RADARR_HOST_PORT="7878"
RADARR_CONTAINER_NAME="radarr"
Lidarr
- Just Lidarr Commands
- Lidarr is a Music Grabber and automation utility
- It is mobile responsive but if you want an app for all of this, you can add Lidarr as a client in this App on Android: nzb360.
- This is cross platform, but achieves a similar result: LunaSea
Type | Command |
---|---|
Start | docker compose up lidarr -d |
Shutdown | docker compose down lidarr |

- Once started, Lidarr should be hit from this url:
URL | |
---|---|
Non-SSL | http://localhost:8686 |
Image | linuxserver/lidarr |
Lidarr Example Docker Compose
services:
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: ${LIDARR_CONTAINER_NAME:-lidarr}
env_file:
- ./.env
- ../../.env
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TIMEZONE}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${LIDARR_CONTAINER_NAME}.rule=Host(`${LIDARR_CONTAINER_NAME}.${PROJECT_HOSTNAME}`)"
- "traefik.http.routers.${LIDARR_CONTAINER_NAME}.entrypoints=https"
- "traefik.http.routers.${LIDARR_CONTAINER_NAME}.tls=true"
- "traefik.http.services.${LIDARR_CONTAINER_NAME}.loadbalancer.server.port=${LIDARR_HOST_PORT}"
## Middlewares
- ${LIDARR_AUTHENTIK_MIDDLEWARE:-}
volumes:
- ${DEFAULT_CONTAINER_DATA_LOCATION}/Lidarr:/config
- ${LOCAL_MUSIC_PATH:-./.local/music}:/music #optional
- ${LOCAL_DOWNLOADS_PATH:-./.local/downloads}:/downloads #optional
ports:
- ${LIDARR_HOST_PORT:-8686}:8686
restart: unless-stopped
networks:
- homelab
depends_on:
- prowlarr
profiles:
- lidarr
- all
Lidarr Example .env
file
LIDARR_CONTAINER_NAME="lidarr"
LIDARR_HOST_PORT="8686"