Linux Media Delivery System Stack based on Docker for Raspberry Pi
Project goal is to simplify LMDS deployment and maintenance on Raspberry Pi. This repository will allow you to dynamically choose needed containers and automate their deployment.
What is currently a part of the LMDS Stack:
- Portainer - GUI Docker Manager :9000
- Sonarr : 8989
- Radarr : 7878
- Lidarr : 8686
- Bazarr : 6767
- Jackett : 9117
- Deluge - Torrent Client : 8112
- qBittorrent - Torrent Client : 15080
- Transmission - Torrent Client : 9091
- NZBGet - Usenet groups client : 6789
- SABnzbd - Usenet groups client : 8080
- JellyFin - Media manager OpenSource : 8096
- Emby - Media manager like Plex : 8096
- Plex - Media manager : 32400/web
- EmbyStat - Statistics for Emby : 6555
- TVheadend - TV streaming server : 9981
- Ngnix - Web Server - for future use clear instance for now: 80
- Pi-Hole - Private DNS sinkhole : 8089 WebPass: greenfrog
Numbers after ":" identify a port that particular container will respond on, i.e. Portainer default port is :9000, point your browser it to your server IP adding :9000 at the end i.e. http://192.168.100.100:9000 you will see Portainer login page.
YouTube: https://youtu.be/oLxsSQIqOMw
Blog link: http://greenfrognest.com/lmdsondocker.php
Before you start using LMDS, set your Raspberry Pi IP address to be static, it will make some things easier later on. Static IP address is not absolutely necessary just to try the project and find out if you like it, but i.e. if you would like to properly utilize pihole in your network - you will have to point your router to your RPi IP for DNS resolution.
- install git using a command:
sudo apt-get install git
- Clone the repository with:
git clone https://github.com/GreenFrogSB/LMDS.git ~/LMDS
Do not change name of the folder on your local system it should stay as is for the script to work properly
- Enter the directory and run:
cd ~/LMDS
./deploy.sh
First "Install docker" this might take a while. Process will install latest Docker and Docker-compose for ARM. When installation is completed you will be prompted to reboot, please do so before continuing.
Next "Build LMDS Stack", select docker containers that you would like to pull and deploy. You do not have to select them all, select only the one you will use. Selecting only the one you need will reduce RAM consumption on your Pi what might be a problem on RPi 3, not so much on RPi 4 I guess. I do not have RPi 4 so I was only able to test it on my old RPi 3B SBC
You might like to install Portainer among all the other containers - Portainer is a graphical interface that lets you manage Docker engine - very useful tool if you don’t want to use Docker CLI.
This small section contains few useful commands in case your Portainer is not started and you would like to get something done without the GUI.
There are three scripts that can be used in case you would like to disable swapping to your SD card. You might want to do it in order to extend life of your SD card. SD cards were not designed for intensive IO tasks, therefore using them like normal HDDs is not ideal. Swap file is used to offload your RAM in case of OS need to dump it somewhere. Swap will be quite often modify, what might wear out your SD card in a long run. In other hand if your OS is swapping a lot of data it means his RAM size is generally to small - this might be a case on RPi3 where we have only 1GB of RAM.
Each time you run ./deploy.sh
script will check GitHub repository for any updates and download them if available. You can also manually check for update using this option without running ./deploy.sh
script. Updates will not modify your configuration or any private files except the ones that are part of the LMDS logic. Some new functions might be added or new containers etc.