MultiMedia Server

multimedia 1920 x 1080 wallpaper 38kjwhq0zgsptd56

A docker server that crawls torrent sites for tv shows and movies that you add. The server will look every now and then if the show or movie is released and if so start to download it to your hard drive.
You can then use Jellyfin to watch the shows or movies. Just like Netflix.

Prerequisites

  1. A server or machine with Docker and Portainer installed.

  2. Portainer access (via web UI).

  3. Basic understanding of Docker and file paths.


Step 1: Install Docker and Portainer

If Docker and Portainer are not already installed, follow these steps:

  1. Install Docker:

     
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    sudo usermod -aG docker $USER
  2. Install Portainer:

     
    docker volume create portainer_data
    docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
  3. Access Portainer by navigating to http://<your-server-ip>:9000 in your browser and set up an admin account.


Step 2: Create a Stack in Portainer

  1. Log in to Portainer and go to Stacks.

  2. Click Add Stack.

  3. Give your stack a name (e.g., media-stack).

  4. Paste the following Docker Compose YAML configuration into the Web editor:

 
version: '3.8'

services:
  transmission:
    image: linuxserver/transmission
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - /path/to/transmission/config:/config
      - /path/to/downloads:/downloads
      - /path/to/watch:/watch
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped

  sonarr:
    image: linuxserver/sonarr
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - /path/to/sonarr/config:/config
      - /path/to/tvshows:/tv
      - /path/to/downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  radarr:
    image: linuxserver/radarr
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - /path/to/radarr/config:/config
      - /path/to/movies:/movies
      - /path/to/downloads:/downloads
    ports:
      - 7878:7878
    restart: unless-stopped

  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - /path/to/jellyfin/config:/config
      - /path/to/media:/media
    ports:
      - 8096:8096
      - 8920:8920
    restart: unless-stopped

Step 3: Configure the Stack

  1. Replace /path/to/... with the actual paths on your server where you want to store configuration files, media, and downloads.

    • Example: /mnt/media/config/transmission/mnt/media/downloads, etc.

  2. Set PUID and PGID to the user and group IDs of your system (run id $USER to find these).

  3. Set TZ to your timezone (e.g., America/New_York).


Step 4: Deploy the Stack

  1. Scroll down and click Deploy the stack.

  2. Portainer will pull the Docker images and start the containers.


Step 5: Access the Services

Once the stack is deployed, you can access the services via their respective ports:

  • Transmissionhttp://<your-server-ip>:9091

  • Sonarrhttp://<your-server-ip>:8989

  • Radarrhttp://<your-server-ip>:7878

  • Jellyfinhttp://<your-server-ip>:8096


Step 6: Configure the Applications

  1. Transmission:

    • Set up download directories and configure the web interface.

  2. Sonarr:

    • Add your TV show library and configure download clients (point to Transmission).

  3. Radarr:

    • Add your movie library and configure download clients (point to Transmission).

  4. Jellyfin:

    • Set up your media library and configure users.


That’s it! There some more option to configure the server for best performance. Comment if you need help or use the forum.

Similar Posts

Leave a Reply