systems:media_server:install_docker
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
systems:media_server:install_docker [2025/05/20 08:10] – [Configure qBittorrent service] peter | systems:media_server:install_docker [2025/06/05 21:10] (current) – peter | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Systems - Media Server - Install Docker ====== | ====== Systems - Media Server - Install Docker ====== | ||
- | Docker will be installed, together with some useful media-related docker containers, including: | + | Docker will be installed together with Docker-Compose. |
- | + | ||
- | * **Prowlarr** is an indexer manager, offering complete management of indexers with no per app Indexer setup required. | + | |
- | * **Sonarr** manages TV shows. | + | |
- | * **Radarr** manages Movies. | + | |
- | * **Readarr** manages Books (ebooks and audiobooks). | + | |
- | * **Bazarr** manages Subtitles. | + | |
- | * **Sabnzbd** manages NZB files. | + | |
- | * **QBitTorrent** manages Torrents. | + | |
- | * **JellyFin** Streams media. | + | |
---- | ---- | ||
Line 16: | Line 7: | ||
===== Install Docker ===== | ===== Install Docker ===== | ||
- | <code bash> | + | Follow the installation instructions at: [[Docker: |
- | sudo apt install docker.io docker-compose -y | + | |
- | </ | + | |
---- | ---- | ||
- | ===== Create a Media Directory | + | ===== Add your user to the docker group ===== |
<code bash> | <code bash> | ||
- | mkdir /media | + | sudo usermod |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== Change ownership of the Media Directory ===== | + | |
- | + | ||
- | <code bash> | + | |
- | chown -R 1000:1000 /media | + | |
</ | </ | ||
<WRAP info> | <WRAP info> | ||
- | **NOTE: | + | **NOTE: |
- | * Check the contents of **/ | + | To enable this functionality, log out and log back in; or run: <code bash> |
- | * This should show the user associated with UID 1000 and GID 1000. | + | newgrp |
- | + | ||
- | * Alternatively, check which UID and GID is associated with 1000:1000 by running: <code bash> | + | |
- | id 1000</ | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== Create an environment file ===== | + | |
- | + | ||
- | <file text docker-media.env> | + | |
- | # Main path for all MEDIA apps: | + | |
- | MEDIAPATH=/ | + | |
- | + | ||
- | # Global Variables | + | |
- | PUID=1000 | + | |
- | PGID=1000 | + | |
- | TZ=Europe/ | + | |
- | </ | + | |
- | + | ||
- | <WRAP info> | + | |
- | **NOTE: | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== Create a Docker Compose file ===== | + | |
- | + | ||
- | <file yaml docker-compose.yml> | + | |
- | services: | + | |
- | + | ||
- | # | + | |
- | # PROWLARR | + | |
- | # | + | |
- | + | ||
- | prowlarr: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: prowlarr | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Prowlarr/ | + | |
- | - ${MEDIAPATH}Prowlarr/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 9696:9696 | + | |
- | restart: unless-stopped | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | # | + | |
- | # SONARR | + | |
- | # | + | |
- | + | ||
- | sonarr: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: sonarr | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Sonarr/ | + | |
- | - ${MEDIAPATH}Sonarr/ | + | |
- | - ${MEDIAPATH}Sonarr/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 8989:8989 | + | |
- | restart: unless-stopped | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | # | + | |
- | # RADARR | + | |
- | # | + | |
- | + | ||
- | radarr: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: radarr | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Radarr/ | + | |
- | - ${MEDIAPATH}Radarr/ | + | |
- | - ${MEDIAPATH}Radarr/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 7878:7878 | + | |
- | restart: unless-stopped | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | # | + | |
- | # LIDARR | + | |
- | # | + | |
- | + | ||
- | lidarr: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: lidarr | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Lidarr/ | + | |
- | - ${MEDIAPATH}Lidarr/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 8686:8686 | + | |
- | restart: unless-stopped | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | # | + | |
- | # READARR | + | |
- | # | + | |
- | + | ||
- | readarr: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: readarr | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Readarr/ | + | |
- | - ${MEDIAPATH}Readarr/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 8787:8787 | + | |
- | restart: unless-stopped | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | + | ||
- | # | + | |
- | # HOMARR | + | |
- | # | + | |
- | + | ||
- | homarr: | + | |
- | container_name: | + | |
- | image: ghcr.io/ | + | |
- | restart: unless-stopped | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Homarr/ | + | |
- | - ${MEDIAPATH}Homarr/ | + | |
- | - ${MEDIAPATH}Homarr/ | + | |
- | ports: | + | |
- | - ' | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | + | ||
- | # | + | |
- | # JELLYFIN | + | |
- | # | + | |
- | + | ||
- | jellyfin: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | ports: | + | |
- | - ' | + | |
- | - ' | + | |
- | - ' | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}Jellyfin/ | + | |
- | - ${MEDIAPATH}Radarr/ | + | |
- | - ${MEDIAPATH}Sonarr/ | + | |
- | - ${MEDIAPATH}Lidarr/ | + | |
- | - ${MEDIAPATH}Readarr/ | + | |
- | env_file: | + | |
- | - ' | + | |
- | restart: unless-stopped | + | |
- | + | ||
- | # | + | |
- | # QBITTORRENT | + | |
- | # | + | |
- | + | ||
- | qbittorrent: | + | |
- | image: linuxserver/ | + | |
- | container_name: | + | |
- | hostname: qbittorrent | + | |
- | restart: unless-stopped | + | |
- | labels: | + | |
- | - " | + | |
- | volumes: | + | |
- | - ${MEDIAPATH}qbittorrent/ | + | |
- | - ${MEDIAPATH}Downloads:/ | + | |
- | ports: | + | |
- | - 8080:8080 | + | |
- | - 6881:6881 | + | |
- | - 6881: | + | |
- | environment: | + | |
- | - WEBUI_PORT=8080 | + | |
- | - TORRENTING_PORT=6881 | + | |
- | healthcheck: | + | |
- | start_period: | + | |
- | env_file: | + | |
- | - ' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== Change ownership of the Media directory ===== | + | |
- | + | ||
- | <code bash> | + | |
- | chown -R 1000:1000 /media | + | |
</ | </ | ||
- | <WRAP info> | ||
- | **NOTE: | ||
- | |||
- | * Use the UID (user id) and GID (group id) configured in the **docker-media.env** file. | ||
</ | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Do an initial run ===== | ||
- | |||
- | <code bash> | ||
- | sudo docker-compose up -d | ||
- | sudo docker-compose stop | ||
- | sudo docker-compose rm | ||
- | </ | ||
- | |||
- | <WRAP info> | ||
- | **NOTE: | ||
- | |||
- | * This may take a long time the first time this is run. | ||
- | |||
- | To stop and remove the docker containers: <code bash> | ||
- | sudo docker-compose stop | ||
- | sudo docker-compose rm | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Configure the various services ===== | ||
- | |||
- | ==== Configure qBittorrent service ==== | ||
- | |||
- | === Ascertain the initial temporary password === | ||
- | |||
- | qBittorrent will initially be using a temporary password only. | ||
- | |||
- | * To ascertain what this temporary password is, check the logs for the qbittorrent container. | ||
- | |||
- | <code bash> | ||
- | 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 | ||
- | ... | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | === Log into qbittorrent === | ||
- | |||
- | Visit http:// | ||
- | |||
- | ---- | ||
- | |||
- | === Set a permanent password === | ||
- | |||
- | Navigate to **Tools -> Options -> WebUI -> change the user and password** and check **bypass authentication for clients on localhost**. | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ===== Configure the Prowlarr service ===== | ||
- | |||
- | * Visit http:// | ||
- | * 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< | ||
- | * Return to the ' | ||
- | * Click the **Test** button at the bottom to make sure you get a green **tick**. | ||
- | * Click **Save**. | ||
- | |||
- | ---- | ||
- | |||
- | ===== Configure the Sonarr service ===== | ||
- | |||
- | * Visit http:// | ||
- | * 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/ | ||
- | * Therefore, set **/ | ||
- | * 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 ' | ||
- | * Navigate to **Settings -> General**, and switch to **show advanced** in top left corner. | ||
- | * Scroll down to **Backups** and choose **/ | ||
- | * This is currently ${MEDIAPATH}Sonarr/ | ||
---- | ---- | ||
Line 344: | Line 32: | ||
https:// | https:// | ||
- | https:// | ||
- | |||
- | https:// | ||
- | |||
- | https:// | ||
- | |||
- | https:// | ||
- | |||
- | http:// | ||
- | |||
- | http:// | ||
systems/media_server/install_docker.1747728620.txt.gz · Last modified: 2025/05/20 08:10 by peter