Skip to content

Automated Media Server via Docker on Raspberry Pi

Notifications You must be signed in to change notification settings

Hareet/dockerpi-ams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Docker Pi - AMS

An Automated Media Server via Docker on Rapsberry Pi.

Scenario

With Raspberry Pi releasing a version of their hardware with 4GB of RAM, it is possible to setup a lightweight fully automated media server running a set of docker containers.

You're in a conversation with a friend, and he mentions something new to watch. You can pull out your cellphone, browse to a personal website, search the name and queue it to download on your dockerpi-ams. Once the download is finished, you will be able to playback most formats to 1 client, and potentially transcode the format for 1 stream.

Hardware

Tools

Method

Setup MicroSD and External Storage

  • Install Hypriot Flash tool

  • Change the contents of the cloud_config.yaml found in this directory with the following attributes:

    • users.name, users.plain_text_password
    • write_files.content.ssid, write_files.content.psk (password)
    • Note: This will enable your RPI to automatically connect to your WiFi upon boot. You will be able to ssh from there.
  • Open a terminal

    • Discover the mount point of your SD card. In OSX, run:
    • diskutil -l
    • Note: Replace the value after the -d parameter below with your own. There is a potential to flash one of your hard disks if you are not correct.
    • flash -d /dev/disk3 --userdata cloud_config.yaml https://github.com/hypriot/image-builder-rpi/releases/download/v1.11.1/hypriotos-rpi-v1.11.1.img.zip
  • Insert SD card into Pi and boot up.

  • Check ssh:

    • ssh ams@dockerpi.local
  • Mount External Storage:

    • lsblk to list where all devices are
    • sudo mount -t hfsplus -o force,rw /dev/sda3 /srv
  • Optional : Setup External Storage to AutoMount on boot

    • Once you have SSH into your dockerpi box, run: blkid
    • Note Copy the UUID of your External Storage
    • sudo vi /etc/fstab
    • Inside the editor, add a new line entry: UUID=<your_value> /srv hfsplus force,rw,nofail,x-systemd.device-timeout=1,noatime 0 0
  • All setup of containers (below) happens from SSH to your dockerpi-ams.

Setup Containers

Transmission Setup

  • Create directory structure and change to it: -/srv/plexMediaServer/config/combustion
  • Download Combustion:
    • rm -f release.zip && wget https://github.com/Secretmapper/combustion/archive/release.zip && unzip release.zip;
  • Note Export the above directory where combustion was installed as a variable to the transmission container:
$ docker create \
    --name=transmission \
    --network=rpi \
    -e PUID=1000 \
    -e PGID=1000 \
    -e TZ=Denver/America \
    -e TRANSMISSION_WEB_HOME=/config/combustion/combustion-release \
    -p 9091:9091 \
    -p 51413:51413 \
    -p 51413:51413/udp
    -v /srv/plexMediaServer/config:/config \
    -v /srv/plexMediaServer/Downloads:/downloads \
    -v /srv/plexMediaServer/config/torrents:/watch \
    --restart unless-stopped \
    linuxserver/transmission
  • Start the container:
    • docker start transmission
  • Edit transmission settings to add login and filebot ping script
    • sudo vi /srv/plexMediaServer/config/settings.json
    • Change the following values and uncomment:
      • rpc-username:
      • rpc-password: <plaintext_entry>
      • script-call-after: "/config/transmission/transmission-postprocess.sh"
      • rpc-host-whitelist:"t.dnsname.com"

Jackett Setup

$ docker create \
    --name=jackett \
    --network=rpi \
    -e PUID=1000 \
    -e PGID=1000 \
    -e TZ=Denver/America \
    -p 9117:9117 \
    -v /srv/plexMediaServer/config:/config \
    -v /srv/plexMediaServer/Downloads:/downloads \
    -- restart unless-stopped \
    linuxserver/jackett

Radarr Setup

$ docker create \
    --name=radarr \
    --network=rpi \
    -e PUID=1000 \
    -e PGID=1000 \
    -e TZ=Denver/America \
    -p 7878:7878 \
    -v /srv/plexMediaServer/config/radarr:/config \
    -v /srv/plexMediaServer/Movies:/movies \
    -v /srv/plexMediaServer/Downloads:/downloads \
    restart unless-stopped \
    linuxserver/darr

Detailed instructions and rest of container setup to come.

About

Automated Media Server via Docker on Raspberry Pi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published