Docker will be installed, together with some useful media-related docker containers, including:
sudo apt install docker.io docker-compose -y
mkdir /media
chown -R 1000:1000 /media
NOTE: The 1000:1000 is usually the first user created on the system.
id 1000
# Main path for all MEDIA apps: MEDIAPATH=/media/ # Global Variables PUID=1000 PGID=1000 TZ=Europe/London
NOTE: Ensure the UID and GID point to the same user as before.
services: # # PROWLARR # prowlarr: image: linuxserver/prowlarr:latest container_name: prowlarr hostname: prowlarr volumes: - ${MEDIAPATH}Prowlarr/config:/config - ${MEDIAPATH}Prowlarr/backup:/data/Backup - ${MEDIAPATH}Downloads:/downloads ports: - 9696:9696 restart: unless-stopped env_file: - 'docker-media.env' # # SONARR # sonarr: image: linuxserver/sonarr:latest container_name: sonarr hostname: sonarr volumes: - ${MEDIAPATH}Sonarr/config:/config - ${MEDIAPATH}Sonarr/backup:/data/Backup - ${MEDIAPATH}Sonarr/tvshows:/data/tvshows - ${MEDIAPATH}Downloads:/downloads ports: - 8989:8989 restart: unless-stopped env_file: - 'docker-media.env' # # RADARR # radarr: image: linuxserver/radarr:latest container_name: radarr hostname: radarr volumes: - ${MEDIAPATH}Radarr/config:/config - ${MEDIAPATH}Radarr/movies:/data/movies - ${MEDIAPATH}Radarr/backup:/data/Backup - ${MEDIAPATH}Downloads:/downloads ports: - 7878:7878 restart: unless-stopped env_file: - 'docker-media.env' # # LIDARR # lidarr: image: linuxserver/lidarr:latest container_name: lidarr hostname: lidarr volumes: - ${MEDIAPATH}Lidarr/config:/config - ${MEDIAPATH}Lidarr/music:/data/musicfolder - ${MEDIAPATH}Downloads:/downloads ports: - 8686:8686 restart: unless-stopped env_file: - 'docker-media.env' # # READARR # readarr: image: linuxserver/readarr:develop container_name: readarr hostname: readarr volumes: - ${MEDIAPATH}Readarr/config:/config - ${MEDIAPATH}Readarr/books:/data/books - ${MEDIAPATH}Downloads:/downloads ports: - 8787:8787 restart: unless-stopped env_file: - 'docker-media.env' # # HOMARR # homarr: container_name: homarr image: ghcr.io/ajnart/homarr:latest restart: unless-stopped volumes: - ${MEDIAPATH}Homarr/configs:/app/data/configs - ${MEDIAPATH}Homarr/icons:/app/public/icons - ${MEDIAPATH}Homarr/data:/data ports: - '7575:7575' env_file: - 'docker-media.env' # # BAZARR # bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr network_mode: "service:gluetun" volumes: - ${MEDIAPATH}bazarr/config:/config - ${MEDIAPATH}radarr/movies:/movies #optional - ${MEDIAPATH}sonarr/tvseries:/tv #optional restart: unless-stopped env_file: - 'docker-media.env' # # JELLYFIN # jellyfin: image: linuxserver/jellyfin container_name: jellyfin ports: - '8096:8096/tcp' # Jellyfin web interface - '7359:7359/udp' # Network discovery - '1900:1900/udp' # DLNA port volumes: - ${MEDIAPATH}Jellyfin/config:/config - ${MEDIAPATH}Radarr/movies:/data/Movies - ${MEDIAPATH}Sonarr/tvshows:/data/TVShows - ${MEDIAPATH}Lidarr/music:/data/Music - ${MEDIAPATH}Readarr/books:/data/Books env_file: - 'docker-media.env' restart: unless-stopped # # QBITTORRENT # qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent hostname: qbittorrent restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=false" volumes: - ${MEDIAPATH}qbittorrent/config:/config - ${MEDIAPATH}Downloads:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp environment: - WEBUI_PORT=8080 - TORRENTING_PORT=6881 healthcheck: start_period: 15s env_file: - 'docker-media.env'
chown -R 1000:1000 /media
NOTE: This is the directory specified in the docker-media.env file.
sudo docker-compose up -d
NOTE: Ensure the command is run within the directory that contains the docker-compose and environment files.
To stop and remove the docker containers:
sudo docker-compose stop sudo docker-compose rm
qBittorrent will initially be using a temporary password only.
sudo docker logs qbittorrent
returns:
... The WebUI administrator username is: admin The WebUI administrator password was not set. A temporary password is provided for this session: blahblah ...
Visit http://localhost:8080 and log on using the details provided in the container logs.
Navigate to Tools → Options → WebUI → change the user and password and check bypass authentication for clients on localhost.
ip address
/data/Movies /data/TVShows /data/Music /data/Books
NOTE: These locations should match the right side of the config in the Jellyfin volume configuration.
If the volume configuration looks like this:
volumes: - ${MEDIAPATH}Radarr/movies:/data/Movies - ${MEDIAPATH}Sonarr/tvshows:/data/TVShows - ${MEDIAPATH}Lidarr/music:/data/Music - ${MEDIAPATH}Readarr/books:/data/Books
then on the container match the right side from the colon, e.g. /data/Movies, /data/TVShows etc.
All docker contains are configured.
Add any media, such as Movies in radarr or TV Shows in sonarr etc., and click search all or search monitored, which will trigger the download process.