Install Docker and Docker-compose quickly

Posted on September 14, 2021 at 19:49 by GreenFrog

What is LMDS - Docker Edition?

Linux Media Delivery System - LMDS is an ultimate bundle of services like: sonarr, jackett, radarr, deluge, nzbget and many others, managed by one easy to use deployment script based on docker and docker-compose. LMDS can automatically organize your existing library of tv shows, movies and music while tracking all new releases of such in the future.

LMDS can run any container you like, it is just a matter of adding that custom container definitions in to the compose file, which is created after initial deployment. You can also use Portainer to help you menage containers using Web UI. Portainer container is a part of scripted installation what makes it all quick and easy to deploy.

System is based on standard Raspbian image, that can be downloaded from

LMDS script can also run on Ubuntu Server installed on a regular x86 hardware. In case you do not have a Raspberry Pi or dedicated Linux system just create a VM using Virtual Box or VMware Workstation Player. Use latest Ubuntu Server image, build a Linux VM and test the script on your laptop.

Deploy LMDS

Before you start using LMDS, set your Server 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 to find out if you like it or not, but in production would be better to have a static IP on the server.

install Git:

sudo apt-get install git

Clone LMDS repository:

git clone ~/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
  • First Install Docker & Docker-compose
  • Second Build LMDS Stack by selecting containers to deploy.
  • Configure containers you deploy by pointing your browser at the LMDS IP address, followed by the port number of the container.
  • Explore other options in the menu and visit FAQ for more advanced instructions.

Raspberry Pi Logo

LMDS containers and their ports:

  • Portainer - Web UI Docker Manager :9000
  • Sonarr - Content Manager (TV Shows) :8989
  • Radarr - Content Manager (Movies) :7878
  • Lidarr - Content Manager (Music) :8686
  • Bazarr - Subtitles Manager :6767
  • Jackett - Torrent Socket :9117
  • Prowlarr - Jackett alternative (dev) :9696
  • Deluge - Torrent Client :8112
  • qBittorrent - Torrent Client :15080
  • Transmission - Torrent Client :9091
  • NZBGet - Usenet Client :6789
  • SABznbd - Usenet Client :8080
  • JellyFin - Media Manager OpenSource :8096
  • Emby - Media Manager :8096
  • Plex - Media Manager :32400/web
  • EmbyStat - Statistics for Emby :6555
  • TVheadend - TV streaming server :9981
  • Pi-Hole - Private DNS sinkhole :8089 WebPass: greenfrog
  • NPMP - NGINX + PHP + MariaDB + phpMyAdmin :80
  • VPN-Client - OpenVPN Client/Gateway
  • Traefik 2 - Reverse Proxy

Numbers after ":" identify a port that particular container will respond on, i.e. Portainer default port is :9000, point your browser at LMDS server IP:PORT in order to see Portainer login page.



All the Docker containers are being created by docker-compose.yml file – this file is updated each time you lunch script where all depend from selection you make in the menu. This docker-compose file can be found inside LMDS folder after first successful deployment. You can edit it manually if you know what you are doing or keep lunching script and selecting/deselecting containers there.

After deployment is completed all the containers settings are stored in persistent volumes inside ~/LMDS/volumes/ folder, keep this folder safe - all configuration you make for the containers using Web GUI are stored there. If you want to factory reset a container, stop it, delete container instance and then delete relevant folder from within ~/LMDS/volumes/, then deploy container again. This will recreate folder you just deleted but with default container settings as if that container never existed before.

Containers can be deleted and recreated or modified; you can do this by editing docker-compose file and running docker-compose up -d. You can also do some changes to the containers using Portainer GUI if this is more convenient.

Get yourself familiar with docker-compose.yml file. This file will tell you which folders/volumes are mapped to which container, this knowledge will allow you to better understand where data should be kept and from where containers can read them. Knowing above you could map your remote storage to particular folder and then present it to the container rather than storing all media files on RPi SD card.

For more details, please check FAQ section on this site.

Help me make LMDS better

With your support anything is possible