Setup arr stack
·2 mins
Table of Contents
The stack #
- radarr - Movie collection manager
- sonarr - TV shows manager
- bazarr - Subtitles manager
- qbittorrent - BitTorrent client
- prowlarr - Indexer manager
- plex - Media server
- overseerr - Request management and media discovery
- tailscale - Remote server management
Install Prerequisites #
Linux distro #
Install any linux distro you’re comfortable with. Ubuntu Server is a good choice.
Docker and compose #
Follow the steps here to install docker and docker compose.
Run containers #
Docker compose #
Create a docker-compose.yml file with the following contents.
version: "3.7"
services:
radarr:
container_name: radarr
image: cr.hotio.dev/hotio/radarr:latest
restart: unless-stopped
logging:
driver: json-file
ports:
- 7878:7878
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- /etc/localtime:/etc/localtime:ro
- ./docker/appdata/radarr:/config
- ./data:/data
sonarr:
container_name: sonarr
image: cr.hotio.dev/hotio/sonarr:latest
restart: unless-stopped
logging:
driver: json-file
ports:
- 8989:8989
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- /etc/localtime:/etc/localtime:ro
- ./docker/appdata/sonarr:/config
- ./data:/data
bazarr:
container_name: bazarr
image: cr.hotio.dev/hotio/bazarr:latest
restart: unless-stopped
logging:
driver: json-file
ports:
- 6767:6767
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- /etc/localtime:/etc/localtime:ro
- ./docker/appdata/bazarr:/config
- ./data/media:/data/media
qbittorrent:
container_name: qbittorrent
image: cr.hotio.dev/hotio/qbittorrent
restart: unless-stopped
logging:
driver: json-file
ports:
- 8080:8080
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- ./docker/appdata/qbittorrent:/config
- ./data/torrents:/data/torrents
prowlarr:
container_name: prowlarr
image: cr.hotio.dev/hotio/prowlarr
restart: unless-stopped
logging:
driver: json-file
ports:
- 9696:9696
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- ./docker/appdata/prowlarr:/config
plex:
container_name: plex
image: cr.hotio.dev/hotio/plex
network_mode: host
restart: unless-stopped
logging:
driver: json-file
ports:
- 32400:32400
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
- PLEX_CLAIM
- ADVERTISE_IP
- ALLOWED_NETWORKS
- PLEX_PASS=no
volumes:
- ./docker/appdata/plex:/config
- ./data/media:/data/media
overseerr:
container_name: overseerr
image: cr.hotio.dev/hotio/overseerr
restart: unless-stopped
logging:
driver: json-file
ports:
- 5055:5055
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- ./docker/appdata/overseerr:/config
tailscale:
hostname: tailscale
cap_add:
- NET_ADMIN
- NET_RAW
container_name: tailscale
environment:
TS_AUTHKEY: ${TS_KEY}
TS_STATE_DIR: /var/lib
image: tailscale/tailscale
network_mode: host
volumes:
- ./docker/appdata/tailscale:/var/lib
- /dev/net/tun:/dev/net/tun
restart: unless-stopped
Run the following command to spin up the containers
docker compose up -d
At this point, all containers should be up and running but we have still not configured them.
Directory structure #
It might be useful to know the directory structure that is being used.
.
|-- data
| |-- media
| | |-- movies <-- your movies
| | `-- tv <-- your tv shows
| `-- torrents
`-- docker
`-- appdata
|-- bazarr
|-- overseerr
|-- plex
|-- prowlarr
|-- qbittorrent
|-- radarr
|-- sonarr
`-- tailscale