An Automated Media Server via Docker on Rapsberry Pi.
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.
- HypriotOS
- Fastest way to get Docker up and running on any Raspberry Pi.
- Private Torrent Tracker (PTP, etc)
- Radarr
- Jackett
- Transmission
- [Custom Filebot for RPI](Dockerfile link)
- Plex
- LetsEncrypt
-
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:
-
Mount External Storage:
lsblk
to list where all devices aresudo 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
- Once you have SSH into your dockerpi box, run:
-
All setup of containers (below) happens from SSH to your dockerpi-ams.
- 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"
$ 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
$ 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.