Provides a suite of apps, already configured to work together, to automate downloads and manage your Plex Cloud media library:
- Couch Potato
- NZBGet
- Sick Rage
- Transmission
Click the Deploy to Docker Cloud button above to create a new stack on Docker Cloud.
Provide or update values for all the required environment variables.
Save and start the stack.
Navigate to the
Endpointssection of the stack and take note of the address for the service endpoint. Something like:plex-cloud-suite.{stack-name}.{sha}.svc.dockerapp.ioConfigure wildcard or individual subdomain CNAME records that point to the service endpoint noted above, for
couchpotato,nzbget,plex,sickrage, andtransmissionon your domain.
Note that on Docker Cloud, persistent data (personal configuration, media library metadata) is stored on the node. If services are redeployed to a different node, this data will be lost.
Get the code and change directory:
$ git clone https://github.com/mrmachine/plex-cloud-suite.git $ cd plex-cloud-suiteSave
docker-compose.override.sample.ymlasdocker-compose.override.ymland provide or update values for all the required environment variables.Configure wildcard or individual subdomain DNS records that point to your IP address, for
couchpotato,nzbget,plex,sickrage, andtransmissionon your domain.
The following environment variables must be provided:
BASIC_AUTH_USERNAMEandBASIC_AUTH_PASSWORD-- All services except Plex Media Server (which implements its own authentication) will be protected by basic auth using these credentials.DOMAINandEMAIL-- The domain on which the individual app subdomains are configured, and an email address where certificate expiration notices should be sent.RCLONE_CONF-- Runrclone configto generate anrclone.conffile for your preferred cloud storage provider. Add the contents of the file to yourdocker-cloud.ymlordocker-compose.ymlfile.
Create a free account at https://logentries.com.
Create two manual TCP (token) logs (named
docker-logentriesanddocker-logspout) in a log set namedplex-cloud-suite.Add the
docker-logentriestoken to thecommandfor thelogentriesservice.Add the
docker-logspouttoken to theSYSLOG_STRUCTURED_DATAenvironment variable for thelogspoutservice.Add your account key to the
LOGENTRIES_ACCOUNT_KEYenvironment variable for theplex-cloud-suiteservice.
All services can only be accessed remotely over HTTPS. SSL certificates will be created and renewed automatically for app subdomains under the domain given in the DOMAIN environment variable.
The /mnt/remote/storage directory is where your Dropbox, Google Drive or OneDrive cloud storage will be mounted via Rclone.
The /mnt/storage directory is a UnionFS mount spanning /mnt/local/storage and /mnt/remote/storage.
Couch Potato and Sick Rage will move downloaded files to the Movies and TV Shows directories in local storage, via the UnionFS mount, during post processing.
An rclone move command runs in a loop, moving files older than 1 minute from local to remote storage.
All the apps are configured to work together, and some of their default settings have been tweaked according to my own personal preferences. Notably:
- Couch Potato
- Enable dark theme
- Enable debug logging
- Rename and move downloaded files to
/mnt/storage/Movies- File name format:
<thename> (<year>) <quality><cd>.<ext> - Folder name format:
<thename> (<year>)
- File name format:
- Enable NZBGet, Plex Media Server, and Transmission integration
- Enable DogNZB, GeekNZB, NZBs.org and Pass The Popcorn searchers
- Disable public torrent trackers
- Enable library management
- Enable Pushover notifications
- Prefer NZBs over torrents
- Require 2160P, 1080P, or DVD-Rip quality
- Automation requirements: Sci-Fi, rated over 8.0, released after 1979
- NZBGet
- Enable
nzbToMediaintegration - Disable authentication (rely on nginx basic authentication)
- Enable loggable output
- Server 1 config: 10 connections, encrypted, port 443
- Server 2 config: level 1, 10 connections, encrypted, port 443
- Pause download queue on par check, unpack and script execution.
- Enable
- Sick Rage
- Enable BTN, DogNZB, GeekNZB, and NZBs.org providers
- Enable failed download handling (via
nzbToMedia) - Enable auto-update
- Enable debug logging
- Flatten folders by default
- Rename and move downloaded files to
/mnt/storage/TV Shows- File naming pattern:
%Sx%0E %EN %QN
- File naming pattern:
- Allow 1080P HDTV or SD DVD quality, prefer 1080P WEB-DL
- Transmission
- Remove movie torrents and data after a seed ratio of 2.0
- Remove TV show torrents and data after 240 hours (10 days) seed time
Check the etc/*.tmpl.* files to see exactly what has been changed from their original defaults.
You will need to further configure them with your own personal preferences. For example:
- Torrent tracker credentials
- Usenet indexer/provider credentials
- Wanted movies and TV shows
Completed torrents and data will be removed from Transmission when ratio or seeding time requirements have been satisfied. Configure the rules with the REQUIREMENTS environment variable:
#{category:ratio:hours};... REQUIREMENTS="Movies:2.0:;TV Shows::240" By default, movies will be removed after a seed ratio of 2.0 and TV shows will be removed after a seed time of 240 hours (10 days).