Set up media services on Homelab

๐Ÿ“† ยท ๐Ÿ‘€

Media services

Using the services like jellyfin โ†—๏ธ, qbittorrent โ†—๏ธ, radarr โ†—๏ธ, sonarr โ†—๏ธ, bazarr โ†—๏ธ, prowlarr โ†—๏ธ and watchtower โ†—๏ธ.

All docker images are brought in from linuxserver โ†—๏ธ

Docker Compose file

version: '3'
services:
# jellyfin is used to serve your media to the client devices
jellyfin:
image: lscr.io/linuxserver/jellyfin
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- VERSION=docker
volumes:
- /media/sukuna/content/movies:/data/movies
- /media/sukuna/content/tv:/data/tvshows
- ./config/jellyfin:/config
ports:
- 8096:8096
restart: unless-stopped
# qBittorrent is used to download torrents
qbittorrent:
image: lscr.io/linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- WEB_UI_PORT=8080
volumes:
- /media/sukuna/content/downloads:/downloads
- ./config/qbittorrent:/config
restart: always
ports:
- 8080:8080
networks:
default:
ipv4_address: 10.5.0.5
# Radarr is used to query, add downloads to the download queue and index Movies
radarr:
image: ghcr.io/linuxserver/radarr
container_name: radarr
environment:
- PUID=1000
- PGID=1000
volumes:
- /media/sukuna/content/movies:/movies
- /media/sukuna/content/downloads:/downloads
- ./config/radarr:/config
ports:
- 7878:7878
restart: unless-stopped
# Sonarr is used to query, add downloads to the download queue and index TV shows
sonarr:
image: ghcr.io/linuxserver/sonarr
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
volumes:
- /media/sukuna/content/tv:/tv
- /media/sukuna/content/downloads:/downloads
- ./config/sonarr:/config
ports:
- 8989:8989
restart: unless-stopped
# Bazarr is used to download and categorize subtitles
bazarr:
image: ghcr.io/linuxserver/bazarr
container_name: bazarr
environment:
- PUID=1000
- PGID=1000
volumes:
- /media/sukuna/content/movies:/movies
- /media/sukuna/content/tv:/tv
- ./config/bazarr:/config
ports:
- 6767:6767
restart: unless-stopped
# Prowlarr is our torrent indexer/searcher. Sonarr/Radarr use Prowlarr as a
# source
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
volumes:
- ./config/prowlarr:/config
ports:
- 9696:9696
restart: unless-stopped
# Watchtower is going to keep our instances updated
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
networks:
default:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1