systems:media_server:install_docker
Table of Contents
Systems - Media Server - Install Docker
Install Docker
sudo apt install docker.io docker-compose -y
Create a Media Directory
mkdir /media
Change ownership of the Media Directory
chown -R 1000:1000 /media
NOTE: The 1000:1000 is usually the first user.
- Check the contents of /etc/passwd and /etc/group files.
- This should show the user associated with UID 1000 and GID 1000.
- Alternatively, check which UID and GID is associated with 1000:1000 by running:
id 1000
Create an environment file
- docker-media.env
# 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.
Create a Docker Compose file
- docker-compose.yml
services: # # PROWLER # 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' # # 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'
Change ownership of the Media directory
chown -R 1000:1000 /media
NOTE: This is the directory specified in the docker-media.env file.
- Use the UID (user id) and GID (group id) configured in the docker-media.env file.
Do an initial run
sudo docker-compose up -d sudo docker-compose stop sudo docker-compose rm
NOTE: Ensure the command is run within the directory that contains the docker-compose and environment files.
- This may take a long time the first time this is run.
To stop and remove the docker containers:
sudo docker-compose stop sudo docker-compose rm
Configure the various services
Configure qBittorrent service
qBittorrent will initially be using a temporary password only.
Check the logs for the qbittorrent container.
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: ...
Log into qbittorrent
Visit http://localhost:8080 and log on using details provided in container logs.
Navigate to Tools → Options → WebUI → change the user and password and check bypass authentication for clients on localhost.
Configure the Prowlarr service
- Visit http://localhost:9696.
- Navigate to Settings → Download Clients → + symbol → Add download client.
- Choose qBittorrent.
- Enter the port number matching the WebUI in docker-compose for qBittorrent (default is 8080) and username and password that you configured for qBittorrent in previous step.
- Host - This may need to be changed from localhost to the IP address of the host machine.
- Check what the IP Address is on the host system with <code bash>ip address<code>
- Return to the 'qbittorrent' URL.
- Click the Test button at the bottom to make sure you get a green tick.
- Click Save.
Configure the Sonarr service
- Visit http://localhost:8989.
- Navigate to Settings → Media Management → Add Root Folder, and set the root folder to what it is on the right side of the colon in the volume config line for Sonarr.
- In the docker-compose file its {MEDIAPATH}Sonarr/tvshows:/data/tvshows
- Therefore, set /data/tvshows as the root directory.
- Navigate to Settings → Download Clients, and click the + symbol.
- Choose qBittorrent and repeat the steps from Prowlarr.
- Navigate to Settings → General, and scroll down to the API key.
- Copy this key, and then go to Prowlarr → Settings → Apps, and click the + - Sonarr, and paste the API key.
- The host might also have to be changed from localhost to IP address of the Host.
- Click the Test button below to see if a green 'tick' is shown.
- Navigate to Settings → General, and switch to show advanced in top left corner.
- Scroll down to Backups and choose /data/Backup (or whatever location is in the docker compose file for Sonarr backups.
- This is currently ${MEDIAPATH}Sonarr/backup:/data/Backup hence we set /data/Backup, as that is on the right side of the colon.
systems/media_server/install_docker.txt · Last modified: 2025/05/20 00:49 by peter