From c426222053b23a2af593c4cdf4e7e910589a1dbc Mon Sep 17 00:00:00 2001 From: zware Date: Sun, 21 Aug 2022 21:52:00 -0500 Subject: [PATCH] Add files Add docker-compose to be used to run the media containers Add TODO in readme to attempt to keep me on track --- README.md | 12 ++- condensed-media-server.yml | 174 +++++++++++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 condensed-media-server.yml diff --git a/README.md b/README.md index 9156b88..9159762 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ # media-server -Ansible repo used to setup a server to be used as a media collection and processing server. \ No newline at end of file +Ansible repo used to setup a server to be used as a media collection and processing server. + +External packages used: +https://github.com/geerlingguy/ansible-role-docker +https://github.com/geerlingguy/ansible-role-pip + + +# TODO +1. deploy env var and condensed docker-compose file +2. run docker-compose and start containers +3. add ansible galaxy requirements and maybe a python requirements to the repo? \ No newline at end of file diff --git a/condensed-media-server.yml b/condensed-media-server.yml new file mode 100644 index 0000000..4d55949 --- /dev/null +++ b/condensed-media-server.yml @@ -0,0 +1,174 @@ +--- +version: '2' +# Media Server +services: +#Grabber, manage TV shows + x-function: &function + networks: + - traefik_proxy1 + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik_proxy1" + - "traefik.frontend.headers.SSLRedirect=true" + - "traefik.frontend.headers.STSSeconds=315360000" + - "traefik.frontend.headers.browserXSSFilter=true" + - "traefik.frontend.headers.contentTypeNosniff=true" + - "traefik.frontend.headers.forceSTSHeader=true" + - "traefik.frontend.headers.SSLHost=example.com" + - "traefik.frontend.headers.STSIncludeSubdomains=true" + - "traefik.frontend.headers.STSPreload=true" + - "traefik.frontend.headers.frameDeny=true" + restart: always + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + + sonarr: + <<: *function + image: linuxserver/sonarr:latest + container_name: sonarr + volumes: + - /opt/appdata/sonarr:/config + - /mnt/storage/tv:/tv + - /downloads/:/downloads + - /downloads/complete/tv_import:/tv_import + ports: + - 27021:8989 + labels: + - "traefik.backend=sonarr" + - "traefik.port=8989" + - "traefik.frontend.rule=Host:sonarr.${DOMAINNAME}" + - "docker.group=external" + +#Indexer, Used by managers to query sites for content + jackett: + <<: *function + image: linuxserver/jackett:latest + container_name: jackett + volumes: + - /opt/appdata/jackett:/config + - /downloads:/downloads + ports: + - 9117:9117 + labels: + - "traefik.backend=jackett" + - "traefik.frontend.rule=Host:jackett.${DOMAINNAME}" + - "traefik.port=9117" + - "docker.group=internal" +#Reverse Proxy, Used to route applications to domain + traefik: + <<: *function + hostname: traefik + image: traefik:v1.7 + container_name: traefik + domainname: ${DOMAINNAME} + networks: + - default + - traefik_proxy1 + ports: + - "80:80" + - "443:443" + - "8080:8080" + labels: + - "traefik.enable=true" + - "traefik.backend=traefik" + - "traefik.frontend.rule=Host:traefik.${DOMAINNAME}" + - "traefik.port=80" + - "traefik.frontend.auth.basic.users=${HTTP_USERNAME}:${HTTP_PASSWORD}" + - "docker.group=internal" + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /home/dockeruser/traefik:/etc/traefik + - /opt/appdata/shared:/shared + - /opt/appdata/traefik:/var/log + - /opt/appdata/traefik/tmp:/tmp +#Downloader, pull in content from torrents & hide traffic behind VPN + arch-deluge: + <<: *function + image: binhex/arch-delugevpn:latest + container_name: arch-deluge + ports: + - 8112:8112 + - 8118:8118 + - 58846:58846 + - 58946:58946 + cap_add: + - NET_ADMIN + volumes: + - /opt/appdata/arch-deluge:/config + - /downloads:/downloads + - /mnt/storage:/mnt/storage + - /opt/appdata/shared:/shared + - /opt/appdata/arch-deluge/data:/data + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + - VPN_ENABLED=yes + - VPN_USER=${VPN_USER} + - VPN_PASS=${VPN_PASS} + - VPN_PROV=custom + - STRICT_PORT_FORWARD=yes + - ENABLE_PRIVOXY=yes + - LAN_NETWORK=192.168.0.100/24 + - NAME_SERVERS=103.86.96.100, 103.86.99.100 + - DELUGE_DAEMON_LOG_LEVEL=error + - DELUGE_WEB_LOG_LEVEL=error + - DEBUG=true + - UMASK=000 + labels: + - "traefik.backend=arch-deluge" + - "traefik.frontend.rule=Host:deluge.${DOMAINNAME}" + - "traefik.port=8112" + - "docker.group=external" + privileged: true +#updated version of plex requests + ombi: + <<: *function + image: linuxserver/ombi + container_name: ombi + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + - BASE_URL=/ombi #optional + volumes: + - /opt/appdata/ombi:/config + - /opt/appdata/shared:/shared + networks: + - traefik_proxy1 + labels: + - "traefik.backend=ombi" + - "traefik.frontend.rule=Host:requests.${DOMAINNAME}" # + - "traefik.port=3579" + - "traefik.docker.network=traefik_proxy1" + - "docker.group=external" + ports: + - 3579:3579 +#NZBGet - usenet downloader + nzbget: + <<: *function + image: linuxserver/nzbget:latest + container_name: nzbget + volumes: + - /opt/appdata/nzbget/config:/config + - /opt/appdata/nzbget/data:/data + - /downloads:/downloads + - /opt/appdata/shared:/shared + ports: + - 27020:6789 + networks: + - traefik_proxy1 + labels: + - "traefik.backend=nzbget" + - "traefik.frontend.rule=Host:nzbget.${DOMAINNAME}" # + - "traefik.port=6789" + - "docker.group=external" +#Networks, Needed for Traefik +networks: + traefik_proxy1: + external: true + default: + driver: bridge +