Simple docker-compose file to setup a basic media center including library management, torrenting and streaming.
Featured in my blog post on Hashtag-Innovation
This stack include everything needed to download torrent over VPN, manage movies and series libraries and stream your content over your network and beyond.
It setup a common network for all containers and expose ports to host for easy access.
These image are use:
- Haugene/transmission-openvpn
- Linuxserver.io/Radarr
- Linuxserver.io/Sonarr
- Linuxserver.io/Jackett
- Linuxserver.io/Calibre
- Linuxserver.io/Calibre-Web
- Linuxserver.io/Readarr
- Flaresolverr/Flaresolverr
- Plexinc/pms-docker
See each specific repository to get more configuration options that you can include in the envrionment variables.
Tested on:
- Docker Engine 20.10
- Docker-compose 1.29.2
Method: Portainer Stack (Recommended)
- Check your docker and docker-compose version
$ docker-compose -v && docker -vSee above for required version and update if needed.
Links to official documentation
Or... you may give a try with your package manager.
e.g. for Ubuntu
$ apt update
$ apt install docker-ce docker-ce-cli containerd.io docker-compose- Install Portainer or Portainer Agent. If it's your first or single docker server, you must have Portainer first. Agent alone is not enough
-
Enter your Portainer Web and select your environmnent
-
Click on stack, then add stack
-
Select Use a git repository
-
Name your stack
-
Set the Repository URL to https://github.com/poaudet/media-stack.git
-
Download the .env-sample and rename it to .env
-
Back to Portainer, click Load variables from .env file and select to file you just rename
-
Edit variables to suit your needs
-
Deploy stack!
Method: CLI
- Check your docker and docker-compose version
$ docker-compose -v && docker -vSee above for required version and update if needed.
Links to official documentation
Or... you may give a try with your package manager.
e.g. for Ubuntu
$ apt update
$ apt install docker-ce docker-ce-cli containerd.io docker-compose- Clone this repository on your host
$ git clone https://github.com/poaudet/media-stack.git-
Edit the file .env-sample for your needs and save it to .env in the same folder of docker-compose.yml
-
Edit the .env file for any specific configurations.
-
Run the image
$ docker-compose up -d- Test if everything is up and running
$ docker psYou should get the list of your running container, including six new ones!
$ curl -I host:portWhere host maybe localhost if you keep the port expose in the docker-compose.yml. Port should be the one of the service you are checking.
You should get this as your first line
HTTP/1.1 301 Moved Permanently
#Or HTTP/1.1 200 Moved Permanently
...
You can also use the helper script connection_check.sh
$ sh connection_check.sh [ip address of the host/localhost if omitted]You should get this:
Testing on localhost...
Connection successfull to Jackett
Connection successfull to Flaresolverr
Connection successfull to Radarr
Connection successfull to Sonarr
Connection successfull to Plex
Connection successfull to Torrent
...
- Enjoy! :)
Everything is running!
You may now access your app through either localhost:port or your container ip address:port
Like http://localhost:9117 for Jackett (or http://172.18.0.2:9117 for the container ip address)
Don't hesitate to open a thread or contact me!
- Mail: poaudet
- Blog: Hashtag-Innovation
- 0.1
- Initial Release
This project is licensed under the GPL-3.0 License - see the LICENSE for details
README based on this