• Stars
    star
    122
  • Rank 291,353 (Top 6 %)
  • Language Makefile
  • License
    MIT License
  • Created almost 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

docker-based plex & usenet media server using custom subdomains with tls

Docker Plex & Usenet Media Server

docker-based plex & usenet media server using custom subdomains over https

Motivation

  • host each service as a subdomain of a personal domain with letsencrypt
  • run public maintained images with no modifications
  • require minimal configuration and setup

Features

  • Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.
  • NZBGet is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources.
  • Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
  • Radarr - A fork of Sonarr to work with movies ร  la Couchpotato.
  • NZBHydra2 is a meta search application for NZB indexers, the "spiritual successor" to NZBmegasearcH, and an evolution of the original application NZBHydra.
  • Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
  • Ombi is a self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves.
  • Netdata - Troubleshoot slowdowns and anomalies in your infrastructure with thousands of metrics, interactive visualizations, and insightful health alarms.
  • Duplicati - Free backup software to store encrypted backups online.
  • Traefik is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy.

Requirements

  • dedicated server or PC with plenty of storage
  • docker and docker-compose
  • (optional) personal domain with configurable sub-domains (eg. plex.example.com)

Direct Configuration

Copy env.sample to .env and populate all fields in the COMMON section.

Make sure to leave ACME_EMAIL blank for direct configuration.

Secure Configuration

Copy env.sample to .env and populate all fields in the COMMON and SECURE sections.

Make sure to set ACME_EMAIL for secure configuration.

Deployment

Pull and deploy containers with docker-compose.

make deploy

Authorization

There are currently two methods of authentication enabled, and I recommend using them both if the secure configuration is in use. If it's not exposed to the Internet you can remove one or both of these middlewares from docker-compose.secure.yml.

ipallowlist

This is our first layer of security, and probably the most important.

If you are using mediaserver locally and are not exposing any ports to the Internet, you can skip this section or set IPALLOWLIST=0.0.0.0/0,::/0 in your .env file.

To avoid unauthorized users from even seeing our login pages, we should set the IPALLOWLIST to only IP ranges that we want to explictly allow access.

Access from any other IP will result in "403 Forbidden" giving you some peice of mind!

This functionality can be enabled/disabled per service in docker-compose.secure.yml with the ipallowlist middleware.

By default Plex, Jellyfin, Ombi, and NZBHydra2 will allow all traffic.

basicauth

This functionality can be enabled/disabled per service in docker-compose.secure.yml with the basicauth middleware.

Users can be added to basic auth in 2 ways. If both methods are used they are merged and the htpasswd file takes priority.

  1. Add users in your .env file with the BASICAUTH_USERS variable.

  2. Add users via htpasswd file in the traefik service.

The first user added requires htpasswd -c in order to create the password file. Subsequent users should only use htpasswd to avoid overwriting the file.

docker-compose exec traefik apk add --no-cache apache2-utils
docker-compose exec traefik htpasswd -c /etc/traefik/.htpasswd <user1>
docker-compose exec traefik htpasswd /etc/traefik/.htpasswd <user2>

By default only Duplicati and Netdata have basic http auth enabled.

For the remaining services I suggest enabling the built-in authentication via the app. This avoids the need to add manual exceptions for API access where required and simplifies our proxy rules.

For Sonarr, Radarr, Prowlar you can enable authentication under Settings->General->Security.

For Nzbget the default credentials are nzbget:tegbzn6789 and can be changed under Settings->Security.

For NZBHydra2 you can add users under Config->Authorization.

Author

Kyle Harding https://klutchell.dev

Buy me a beer

Acknowledgments

I didn't create any of these docker images myself, so credit goes to the maintainers, and the original software creators.

More Repositories

1

balena-pihole

Pi-hole is a Linux network-level advertisement and Internet tracker blocking application.
Shell
299
star
2

unbound-docker

unofficial unbound multiarch docker image
Dockerfile
106
star
3

dnscrypt-proxy-docker

dnscrypt-proxy multiarch docker image
Dockerfile
91
star
4

balena-nextcloud

Nextcloud is a safe home for all your data
Shell
48
star
5

balena-adguard

AdGuard Home is a network-wide software for blocking ads & tracking
Shell
43
star
6

unbound

this repo has moved
Dockerfile
38
star
7

balena-wireguard

wireguard stack for balenacloud
Shell
22
star
8

balena-bookstack

bookstack stack for balenaCloud
Dockerfile
19
star
9

balena-homeassistant

homeassistant stack for balenaCloud
Dockerfile
17
star
10

balena-frigate

A complete and local NVR designed for Home Assistant with AI object detection
Dockerfile
12
star
11

hue-bridge-backup

Backup and restore Philips Hue bridge configuration in raw JSON
JavaScript
11
star
12

balena-traefik

traefik stack for balenaCloud to proxy https domains to internal services
Shell
11
star
13

balena-mediaserver

mediaserver stack for balenaCloud
Dockerfile
8
star
14

balena-backup

non-interactive backup utility for balenaCloud managed devices
Shell
8
star
15

balena-zoneminder

ZoneMinder is a full-featured, open source, state-of-the-art video surveillance software system.
Python
7
star
16

balena-pihole-unbound

raspberrypi3 balenaCloud stack with Pi-hole, PADD, & unbound
Shell
6
star
17

nextcloud

docker-compose nextcloud stack with mariadb and traefik
Shell
6
star
18

balenablocks-duplicati

balenablocks/duplicati
6
star
19

balena-tailscale

Run a Tailscale subnet router on balena!
Shell
5
star
20

balena-nginx-proxy-manager

Nginx Proxy Manager stack for balenaCloud
Dockerfile
4
star
21

balena-pihole-aarch64

aarch64 balenaCloud stack for Pi-holeยฎ https://pi-hole.net/
Dockerfile
4
star
22

balena-serge

Run an LLM on your edge device with balena.io
3
star
23

balena-timemachine

Run a Samba server compatible with MacOS Time Machine
3
star
24

balena-homelab

3
star
25

cloudflared

unofficial cloudflared multiarch docker image
Dockerfile
3
star
26

docker-ethminer-cpp

added miner support to ethereum/client-cpp docker image
Shell
2
star
27

docker-caddy

caddy docker images
Makefile
1
star
28

docker-megatools

ubuntu base image with megatools installed from package repository
1
star
29

ssh-docker

docker images with ssh daemon
Makefile
1
star
30

balena-gitea

A painless self-hosted Git service
1
star
31

balena-restic

Rest easy knowing that your application data volumes are automatically and securely backed up to local or cloud storage!
TypeScript
1
star
32

docker-rar

small container to run rar compression utility on files in current working directory
1
star
33

megasnapshot

Utilities to run rsnapshot and megatools docker images to create and upload backups to a mega.nz cloud drive
Shell
1
star
34

balena-syncthing

Shell
1
star
35

compose-motionserver

docker-based motioneye server for rasbian
Nginx
1
star
36

balena-cli-docker

Unofficial Docker images with the balena CLI and Docker-in-Docker
Dockerfile
1
star
37

renovate-config

Shared renovate configuration and GitHub Action
1
star
38

balena-shinobi

shinobi stack for balenaCloud
Dockerfile
1
star