Full mediacenter server based on Docker containers
This is project aims to deploy all services needed to configure a seedbox (based on Linux Debian 8) as a full mediacenter.
All the services run into Docker containers
- Muximux is used to provide a single web interface to all services
- Plex server is used for the mediacenter
- Sonarr and Radarr are used to get TV Shows and Movies into Plex
- Transmission is used as a torrent downloader for Sonarr and Radarr
- RuTorrent is used to manually downloading torrents
- Jackett is used to configure Indexers for Sonarr/Radarr
- FlexGet is used to periodically clean Transmission queues
- PlexPy is used for monitoring Plex server and Notifications (ie. on Slack channels)
- Glances is used for monitoring the server
- Fail2Ban is used to prevent DOS attacks
Requires :
- Server running Debian (tested on 8 and 9)
- Ansible 2.4 or newer (on server for running locally or on remote client)
- Git (on server for running locally or on remote client)
The project uses an Ansible playbook to automate the installation of the services.
The Ansible playbook can be used to install the services on a local server or a on remote client.
To install Git :
$ apt-get install git
To install Ansible :
Add the following line to /etc/apt/sources.list:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Then run these commands:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt-get update
$ sudo apt-get install ansible
To download Git project
$ git clone https://github.com/rmanus/seedbox.git
Edit groups_vars/all
Adjust the following parameters :
userpasswd Generate the string using $ mkpasswd --method=sha-512
timezone
server_ip This is the public ip address of the mediaserver
flexget_passwd Required to connect to flexget WebUI
plex_claim The claim token for the server to obtain a real server token.
If not provided, server is will not be automatically logged in.
If server is already logged in, this parameter is ignored.
You can obtain a claim token to login your server to your plex
account by visiting https://www.plex.tv/claim
Execute Ansible playbook (on local server)
$ sudo ansible-playbook -i "localhost," -c local site.yml
Execute Ansible playbook from remote client
Edit /etc/ansible/hosts and add public IP @ or FQDN of the server
$ ansible-playbook --become-method=su --user=<ssh username to connect to server> -K site.yml
Connect to WebUI
http://<public_ip_address>
This project depends on the following docker images