Merge pull request #2 from PGBlitz/v8.6

Merge
This commit is contained in:
Cody
2019-10-26 15:11:37 -04:00
committed by GitHub
95 changed files with 1455 additions and 420 deletions

View File

@@ -9,7 +9,7 @@
* 📂 [**[Click Here]**](https://goo.gl/7NR3Da) - Google G-Suite (Unlimited Hard Drive Space & Storage) * 📂 [**[Click Here]**](https://goo.gl/7NR3Da) - Google G-Suite (Unlimited Hard Drive Space & Storage)
* 📂 [**[Click Here]**](https://controlpanel.newshosting.com/signup/index.php?promo=partners&a_aid=5a65169240efd&a_bid=5ecfe99b) - Top Performance NewsHost! - Blitz Members Receive a 58% Discount * 📂 [**[Click Here]**](https://controlpanel.newshosting.com/signup/index.php?promo=partners&a_aid=5a65169240efd&a_bid=5ecfe99b) - Top Performance NewsHost! - Blitz Members Receive a 58% Discount
---- ----
### **Reference Shortcut -** http://wiki.pgblitz.com | Discord ( !wiki ) ### **Reference Shortcut -** http://wiki.pgblitz.com
---- ----
## 1. PG YouTube ## 1. PG YouTube

View File

@@ -7,11 +7,11 @@
################################################################################ ################################################################################
# Generates App List # Generates App List
ls -la /opt/coreapps/apps/ | sed -e 's/.yml//g' \ ls -la /opt/communityapps/apps/ | sed -e 's/.yml//g' |
| awk '{print $9}' | tail -n +4 > /var/plexguide/app.list awk '{print $9}' | tail -n +4 >>/var/plexguide/app.list
ls -la /opt/mycontainers/ | sed -e 's/.yml//g' \ ls -la /opt/mycontainers/ | sed -e 's/.yml//g' |
| awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list awk '{print $9}' | tail -n +4 >>/var/plexguide/app.list
# Enter Items Here to Prevent them From Showing Up on AppList # Enter Items Here to Prevent them From Showing Up on AppList
sed -i -e "/traefik/d" /var/plexguide/app.list sed -i -e "/traefik/d" /var/plexguide/app.list
sed -i -e "/image*/d" /var/plexguide/app.list sed -i -e "/image*/d" /var/plexguide/app.list

View File

@@ -38,6 +38,47 @@
register: auth register: auth
ignore_errors: True ignore_errors: True
- name: Register Program Name
shell: 'cat /tmp/program_var'
register: program
ignore_errors: True
- name: check if user cname file exists
stat:
path: /var/plexguide/{{pgrole}}.cname
register: ucname_check
- name: Register user cname
shell: 'cat /var/plexguide/{{pgrole}}.cname'
register: ucname
ignore_errors: True
when: ucname_check.stat.exists == true
- name: Register CName
set_fact:
cname: ""
- name: Set cname
set_fact:
cname: ",{{ucname.stdout}}.{{domain.stdout}}"
when: ucname_check.stat.exists == true and ucname.stdout != ""
- name: check if user port file exists
stat:
path: /var/plexguide/{{pgrole}}.port
register: ueport_check
- name: Register External Port
shell: 'cat /var/plexguide/{{pgrole}}.port'
register: ueport
ignore_errors: True
when: ueport_check.stat.exists == true
- name: Change extport
set_fact:
extport: "{{ueport.stdout}}"
when: ueport_check.stat.exists and ueport.stdout != ""
- name: Remove {{pgrole}} Container - name: Remove {{pgrole}} Container
docker_container: docker_container:
name: '{{pgrole}}' name: '{{pgrole}}'
@@ -49,7 +90,6 @@
ignore_errors: True ignore_errors: True
# APPDATA # APPDATA
- name: 'Creating appdata folder if it does not exist.' - name: 'Creating appdata folder if it does not exist.'
shell: 'mkdir -p /opt/appdata/{{pgrole}}' shell: 'mkdir -p /opt/appdata/{{pgrole}}'
@@ -69,7 +109,6 @@
shell: 'chmod -R 775 /opt/appdata/{{pgrole}}' shell: 'chmod -R 775 /opt/appdata/{{pgrole}}'
when: '"plex" not in pgrole' when: '"plex" not in pgrole'
# OVERWRITE IMAGES ############################################################# # OVERWRITE IMAGES #############################################################
- name: Check if Image Variable Exists - name: Check if Image Variable Exists
stat: stat:
@@ -92,7 +131,7 @@
- name: 'If Fact Matches - Enable TLD' - name: 'If Fact Matches - Enable TLD'
set_fact: set_fact:
tldset: '{{domain.stdout}}' tldset: ',{{domain.stdout}},www.{{domain.stdout}}'
when: 'toplevel.stdout == pgrole' when: 'toplevel.stdout == pgrole'
- debug: msg="TLDSET is now for {{toplevel.stdout}}" - debug: msg="TLDSET is now for {{toplevel.stdout}}"

View File

@@ -4,3 +4,4 @@ netdata
alltube alltube
dockergc dockergc
blitzui blitzui
watchtower

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (linuxserver/airsonic) # Title: PGBlitz (linuxserver/airsonic)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -14,7 +14,7 @@
set_fact: set_fact:
pgrole: 'airsonic' pgrole: 'airsonic'
intport: '4040' intport: '4040'
extport: '4040' extport: '4040'
image: 'linuxserver/airsonic' image: 'linuxserver/airsonic'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -45,8 +54,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -39,7 +39,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -16,8 +16,8 @@
pgrole: 'avidemux' pgrole: 'avidemux'
intport: '5800' intport: '5800'
extport: '5806' extport: '5806'
# intport2: '25565' # intport2: '25565'
# extport2: '25565' # extport2: '25565'
image: 'jlesage/avidemux' image: 'jlesage/avidemux'
- name: 'Including cron job' - name: 'Including cron job'
@@ -48,7 +48,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -35,7 +35,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -44,7 +53,7 @@
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -26,9 +26,9 @@
set_fact: set_fact:
pg_labels: pg_labels:
traefik.enable: 'true' traefik.enable: 'true'
traefik.backend: "{{pgrole}}" traefik.backend: '{{pgrole}}'
traefik.port: '80' traefik.port: '80'
traefik.frontend.rule: 'Host:bit.{{domain.stdout}},{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -30,7 +30,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -29,7 +29,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -14,7 +14,7 @@
set_fact: set_fact:
pgrole: 'calibre-web' pgrole: 'calibre-web'
intport: '8083' intport: '8083'
extport: '8083' extport: '8104'
image: 'technosoft2000/calibre-web' image: 'technosoft2000/calibre-web'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
@@ -29,7 +29,17 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -37,7 +46,7 @@
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/mnt:/mnt' - '/mnt:/mnt'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -12,15 +12,11 @@
# FACTS ####################################################################### # FACTS #######################################################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: 'deluge' pgrole: 'deluge-vpn'
intport: '8112' intport: '8112'
extport: '8112' extport: '8112'
intport2: '58846' intport2: '8118'
extport2: '58846' extport2: '8118'
intport3: '58946'
extport3: '58946'
intport4: '8118'
extport4: '8118'
image: 'binhex/arch-delugevpn' image: 'binhex/arch-delugevpn'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
@@ -30,6 +26,9 @@
- name: 'Including folders' - name: 'Including folders'
include_tasks: '/opt/communityapps/apps/_downloaders.yml' include_tasks: '/opt/communityapps/apps/_downloaders.yml'
- name: 'Including plugins'
include_tasks: '/opt/communityapps/apps/_plugins.yml'
- name: 'Checking for existing app data' - name: 'Checking for existing app data'
stat: stat:
path: /opt/appdata/{{pgrole}}/core.conf path: /opt/appdata/{{pgrole}}/core.conf
@@ -42,7 +41,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -74,8 +82,6 @@
published_ports: published_ports:
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'
- '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}'
- '{{ports.stdout}}{{extport3}}:{{intport3}}'
- '{{ports.stdout}}{{extport4}}:{{intport4}}'
volumes: '{{pg_volumes}}' volumes: '{{pg_volumes}}'
env: '{{pg_env}}' env: '{{pg_env}}'
restart_policy: unless-stopped restart_policy: unless-stopped
@@ -155,18 +161,17 @@
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf' path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
regexp: '"extract_path".*' regexp: '"extract_path".*'
line: '"extract_path": "{{path.stdout}}/downloads/deluge"' line: '"extract_path": "{{path.stdout}}/downloads/{{pgrole}}"'
state: present state: present
# FIRST TIME CONFIGURATION #################################################### # FIRST TIME CONFIGURATION ####################################################
- name: 'Configuring {{pgrole}} for first time use' - name: 'Configuring {{pgrole}} for first time use'
block: block:
- name: set enabled_plugins - name: set enabled_plugins
lineinfile: replace:
path: '/opt/appdata/{{pgrole}}/core.conf' dest: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"enabled_plugins".*' regexp: '"enabled_plugins".*'
line: '"enabled_plugins": ["Extractor", "Label"],' replace: '"enabled_plugins": ["Extractor", "Label"],'
state: present
- name: set compact_allocation - name: set compact_allocation
lineinfile: lineinfile:

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# Title: PGBlitz (Reference Title File) # Title: PGBlitz (Reference Title File)
# Author(s): Admin9705 # Authors: Admin9705, Deiteq, and many PGBlitz Contributors
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
@@ -15,10 +15,6 @@
pgrole: 'deluge' pgrole: 'deluge'
intport: '8112' intport: '8112'
extport: '8112' extport: '8112'
intport2: '58846'
extport2: '58846'
intport3: '58946'
extport3: '58946'
image: 'linuxserver/deluge' image: 'linuxserver/deluge'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
@@ -43,7 +39,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -67,8 +72,6 @@
pull: yes pull: yes
published_ports: published_ports:
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
- '{{extport3}}:{{intport3}}'
volumes: '{{pg_volumes}}' volumes: '{{pg_volumes}}'
env: '{{pg_env}}' env: '{{pg_env}}'
restart_policy: unless-stopped restart_policy: unless-stopped
@@ -94,7 +97,7 @@
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
state: present state: present
delay: 5 delay: 5
- name: Setting plugins directory - name: Setting plugins directory
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
@@ -134,38 +137,37 @@
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"move_completed".*' regexp: '"move_completed".*'
line: '"move_completed": True,' line: '"move_completed": true,'
state: present state: present
- name: Setting extractor folder - name: Setting extractor folder
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf' path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
regexp: '"use_name_folder".*' regexp: '"use_name_folder".*'
line: '"use_name_folder": True,' line: '"use_name_folder": true,'
state: present state: present
- name: Setting extractor - name: Setting extractor
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf' path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
regexp: '"extract_path".*' regexp: '"extract_path".*'
line: '"extract_path": "{{path.stdout}}/downloads/deluge"' line: '"extract_path": "{{path.stdout}}/downloads/{{pgrole}}"'
state: present state: present
# FIRST TIME CONFIGURATION #################################################### # FIRST TIME CONFIGURATION ####################################################
- name: 'Configuring {{pgrole}} for first time use' - name: 'Configuring {{pgrole}} for first time use'
block: block:
- name: set enabled_plugins - name: set enabled_plugins
lineinfile: replace:
path: '/opt/appdata/{{pgrole}}/core.conf' dest: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"enabled_plugins".*' regexp: '"enabled_plugins".*'
line: '"enabled_plugins": ["Extractor", "Label"],' replace: '"enabled_plugins": ["Extractor", "Label"],'
state: present
- name: set compact_allocation - name: set compact_allocation
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"compact_allocation".*' regexp: '"compact_allocation".*'
line: '"compact_allocation": True,' line: '"compact_allocation": true,'
state: present state: present
- name: set stop_seed_ratio - name: set stop_seed_ratio
@@ -186,14 +188,14 @@
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"remove_seed_at_ratio".*' regexp: '"remove_seed_at_ratio".*'
line: '"remove_seed_at_ratio": True,' line: '"remove_seed_at_ratio": true,'
state: present state: present
- name: set enc_prefer_rc4 - name: set enc_prefer_rc4
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"enc_prefer_rc4".*' regexp: '"enc_prefer_rc4".*'
line: '"enc_prefer_rc4": True,' line: '"enc_prefer_rc4": true,'
state: present state: present
- name: set enc_level - name: set enc_level
@@ -228,7 +230,7 @@
lineinfile: lineinfile:
path: '/opt/appdata/{{pgrole}}/core.conf' path: '/opt/appdata/{{pgrole}}/core.conf'
regexp: '"dont_count_slow_torrents".*' regexp: '"dont_count_slow_torrents".*'
line: '"dont_count_slow_torrents": True,' line: '"dont_count_slow_torrents": true,'
state: present state: present
- name: set max_active_seeding - name: set max_active_seeding

View File

@@ -19,7 +19,6 @@
extport2: '6144' extport2: '6144'
intport3: '1443/tcp' intport3: '1443/tcp'
extport3: '1443' extport3: '1443'
image: 'linuxserver/domoticz:stable' image: 'linuxserver/domoticz:stable'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
@@ -33,7 +32,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -46,8 +54,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:
@@ -58,7 +65,6 @@
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'
- '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}'
- '{{ports.stdout}}{{extport3}}:{{intport3}}' - '{{ports.stdout}}{{extport3}}:{{intport3}}'
- '{{ports.stdout}}{{extport4}}:{{intport4}}'
volumes: '{{pg_volumes}}' volumes: '{{pg_volumes}}'
env: '{{pg_env}}' env: '{{pg_env}}'
restart_policy: unless-stopped restart_policy: unless-stopped

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -9,30 +9,39 @@
- hosts: localhost - hosts: localhost
gather_facts: false gather_facts: false
tasks: tasks:
# CORE (MANDATORY) DO NOT CHANGE ########################################### # CORE (MANDATORY) DO NOT CHANGE ###########################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: "embystats" pgrole: 'embystats'
intport: "5432" intport: '5432'
extport: "9049" extport: '9049'
image: "uping/embystat:beta-linux" image: 'uping/embystat:beta-linux'
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/communityapps/apps/_core.yml'
# EXTRA FUNCTIONS REQUIRED BY THE ROLE ##################################### # EXTRA FUNCTIONS REQUIRED BY THE ROLE #####################################
##### NOTHING REQUIRED ##### NOTHING REQUIRED
# LABELS #### KEEPS BOTTOM CLEAN ########################################### # LABELS #### KEEPS BOTTOM CLEAN ###########################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (jlesage/filebot) # Title: PGBlitz (jlesage/filebot)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -30,7 +30,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -45,8 +54,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -40,7 +40,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -75,7 +84,6 @@
- '{{pgrole}}' - '{{pgrole}}'
state: started state: started
labels: '{{pg_labels}}' labels: '{{pg_labels}}'
##PG-Community ##PG-Community
##PG-Community ##PG-Community

View File

@@ -16,8 +16,8 @@
pgrole: 'firefox' pgrole: 'firefox'
intport: '5800' intport: '5800'
extport: '5810' extport: '5810'
# intport2: '25565' # intport2: '25565'
# extport2: '25565' # extport2: '25565'
image: 'jlesage/firefox' image: 'jlesage/firefox'
- name: 'Including cron job' - name: 'Including cron job'
@@ -48,7 +48,7 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}' traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true' traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true' traefik.frontend.headers.STSIncludeSubdomains: 'true'
@@ -58,7 +58,17 @@
traefik.frontend.headers.contentTypeNosniff: 'true' traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex' traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true' traefik.frontend.headers.forceSTSHeader: 'true'
#traefik.frontend.headers.frameDeny: 'true'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
#
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -41,8 +50,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -9,30 +9,39 @@
- hosts: localhost - hosts: localhost
gather_facts: false gather_facts: false
tasks: tasks:
# CORE (MANDATORY) DO NOT CHANGE ########################################### # CORE (MANDATORY) DO NOT CHANGE ###########################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: "gazee" pgrole: 'gazee'
intport: "4242" intport: '4242'
extport: "4242" extport: '4242'
image: "linuxserver/gazee" image: 'linuxserver/gazee'
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/communityapps/apps/_core.yml'
# EXTRA FUNCTIONS REQUIRED BY THE ROLE ##################################### # EXTRA FUNCTIONS REQUIRED BY THE ROLE #####################################
##### NOTHING REQUIRED ##### NOTHING REQUIRED
# LABELS #### KEEPS BOTTOM CLEAN ########################################### # LABELS #### KEEPS BOTTOM CLEAN ###########################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -15,9 +15,9 @@
pgrole: 'git' pgrole: 'git'
intport: '3000' intport: '3000'
extport: '9898' extport: '9898'
intport2: '22' ##for SSH intport2: '22' ##for SSH
extport2: '222' extport2: '222'
image: 'gitea/gitea' image: 'gitea/gitea'
# CORE (MANDATORY) ############################################################DONE#### # CORE (MANDATORY) ############################################################DONE####
@@ -31,29 +31,38 @@
##########traefik.frontend.auth.forward.address: '{{gauth}}' ##Disabled OAuth as you cant user terminal for cloning any repo ##########traefik.frontend.auth.forward.address: '{{gauth}}' ##Disabled OAuth as you cant user terminal for cloning any repo
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/data' - '/opt/appdata/{{pgrole}}:/data'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
### - '/opt/appdata/git/gitea-db:/data' ### - '/opt/appdata/git/gitea-db:/data'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
#### DB_PASSWORD: gitea
#### DB_PASSWORD: gitea
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:
name: '{{pgrole}}' name: '{{pgrole}}'
image: '{{image}}' image: '{{image}}'
pull: yes pull: yes
# links: # links:
# - "dbgitea:idk?" # - "dbgitea:idk?"
published_ports: published_ports:
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'

View File

@@ -29,7 +29,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -50,13 +59,13 @@
pg_env: pg_env:
USER_ID: '1000' USER_ID: '1000'
GROUP_ID: '1000' GROUP_ID: '1000'
AUTOMATED_CONVERSION_PRESET: "Very Fast 1080p30" AUTOMATED_CONVERSION_PRESET: 'Very Fast 1080p30'
AUTOMATED_CONVERSION_FORMAT: "mp4" AUTOMATED_CONVERSION_FORMAT: 'mp4'
AUTOMATED_CONVERSION_PRESET_2: "HQ 1080p30 Surround" AUTOMATED_CONVERSION_PRESET_2: 'HQ 1080p30 Surround'
AUTOMATED_CONVERSION_FORMAT_2: "mp4" AUTOMATED_CONVERSION_FORMAT_2: 'mp4'
AUTOMATED_CONVERSION_PRESET_3: "H.264 MKV 1080p30" AUTOMATED_CONVERSION_PRESET_3: 'H.264 MKV 1080p30'
AUTOMATED_CONVERSION_FORMAT_3: "mkv" AUTOMATED_CONVERSION_FORMAT_3: 'mkv'
# SECURE_CONNECTION: 1 # SECURE_CONNECTION: 1
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Create watch directory for {{pgrole}}' - name: 'Create watch directory for {{pgrole}}'

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -31,7 +31,7 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.https.port: '443' traefik.https.port: '443'
traefik.https.frontend.entryPoints: 'https' traefik.https.frontend.entryPoints: 'https'
traefik.https.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.https.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,7 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:home.{{domain.stdout}},{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -7,23 +7,23 @@
################################################################################ ################################################################################
# BAD INPUT # BAD INPUT
badinput () { badinput() {
echo echo
read -p '⛔️ ERROR - BAD INPUT! | PRESS [ENTER] ' typed < /dev/tty read -p '⛔️ ERROR - BAD INPUT! | PRESS [ENTER] ' typed </dev/tty
question1 question1
} }
# FUNCTION - ONE # FUNCTION - ONE
question1 () { question1() {
# Recall Program # Recall Program
image=$(cat /tmp/program_var) image=$(cat /tmp/program_var)
# Checks Image List # Checks Image List
file="/opt/communityapps/apps/image/$image" file="/opt/communityapps/apps/image/$image"
if [ ! -e "$file" ]; then exit; fi if [ ! -e "$file" ]; then exit; fi
tee <<-EOF tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌵 PG Multi Image Selector - $image 🌵 PG Multi Image Selector - $image
@@ -31,19 +31,19 @@ tee <<-EOF
EOF EOF
count=1 count=1
while read p; do while read p; do
echo "$count - $p" echo "$count - $p"
echo "$p" > /tmp/display$count echo "$p" >/tmp/display$count
count=$[count+1] count=$((count + 1))
done </opt/communityapps/apps/image/$image done </opt/communityapps/apps/image/$image
echo "" echo ""
read -p '🚀 Type Number | PRESS [ENTER]: ' typed < /dev/tty read -p '🚀 Type Number | PRESS [ENTER]: ' typed </dev/tty
if [[ "$typed" -ge "1" && "$typed" -lt "$count" ]]; then if [[ "$typed" -ge "1" && "$typed" -lt "$count" ]]; then
mkdir -p /var/plexguide/image mkdir -p /var/plexguide/image
cat "/tmp/display$typed" > "/var/plexguide/image/$image" cat "/tmp/display$typed" >"/var/plexguide/image/$image"
else badinput; fi else badinput; fi
} }
# END OF FUNCTIONS ############################################################ # END OF FUNCTIONS ############################################################

2
apps/image/radarr4k Normal file
View File

@@ -0,0 +1,2 @@
linuxserver/radarr
aront/radarr

2
apps/image/radarrhdr Normal file
View File

@@ -0,0 +1,2 @@
linuxserver/radarr
aront/radarr

3
apps/image/sonarr4k Normal file
View File

@@ -0,0 +1,3 @@
linuxserver/sonarr:preview
linuxserver/sonarr
aront/sonarr

3
apps/image/sonarrhdr Normal file
View File

@@ -0,0 +1,3 @@
linuxserver/sonarr:preview
linuxserver/sonarr
aront/sonarr

View File

@@ -13,7 +13,7 @@
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: 'jd2-openvpn' pgrole: 'jdownloader2-vpn'
intport: '5800' intport: '5800'
extport: '5802' extport: '5802'
intport2: '5902' intport2: '5902'
@@ -44,17 +44,25 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs'
- '/mnt:/mnt'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- '/opt/appdata/{{pgrole}}/vpn:/vpn:rw' - '/opt/appdata/{{pgrole}}/vpn:/vpn:rw'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'

View File

@@ -44,17 +44,25 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs'
- '/mnt:/mnt'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:

View File

@@ -29,7 +29,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -31,16 +31,25 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:

View File

@@ -9,26 +9,35 @@
- hosts: localhost - hosts: localhost
gather_facts: false gather_facts: false
tasks: tasks:
# CORE (MANDATORY) DO NOT CHANGE ########################################### # CORE (MANDATORY) DO NOT CHANGE ###########################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: "mariadb" pgrole: 'mariadb'
intport: "3306" intport: '3306'
extport: "6603" extport: '6603'
image: "mariadb:latest" image: 'mariadb:latest'
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/communityapps/apps/_core.yml'
# LABELS ################################################################ # LABELS ################################################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -65,4 +74,4 @@
- name: 'Post Deployment Notes' - name: 'Post Deployment Notes'
debug: debug:
msg: |- msg: |-
* Login Information * root:plexguide * This should be changed * * Login Information * root:plexguide * This should be changed *

View File

@@ -30,7 +30,7 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:mcmyadmin.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (jlesage/mediainfo) # Title: PGBlitz (jlesage/mediainfo)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -30,7 +30,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -46,8 +55,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -9,30 +9,39 @@
- hosts: localhost - hosts: localhost
gather_facts: false gather_facts: false
tasks: tasks:
# CORE (MANDATORY) DO NOT CHANGE ########################################### # CORE (MANDATORY) DO NOT CHANGE ###########################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: "medusa" pgrole: 'medusa'
intport: "8081" intport: '8081'
extport: "8081" extport: '8081'
image: "linuxserver/medusa" image: 'linuxserver/medusa'
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/communityapps/apps/_core.yml'
# EXTRA FUNCTIONS REQUIRED BY THE ROLE ##################################### # EXTRA FUNCTIONS REQUIRED BY THE ROLE #####################################
##### NOTHING REQUIRED ##### NOTHING REQUIRED
# LABELS #### KEEPS BOTTOM CLEAN ########################################### # LABELS #### KEEPS BOTTOM CLEAN ###########################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -33,15 +33,24 @@
stat: stat:
path: /opt/appdata/{{pgrole}}/core.conf path: /opt/appdata/{{pgrole}}/core.conf
register: confcheck register: confcheck
# LABELS ###################################################################### # LABELS ######################################################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting default Volumes' - name: 'Setting default Volumes'
set_fact: set_fact:
@@ -57,7 +66,7 @@
pg_env: pg_env:
USER_ID: '1000' USER_ID: '1000'
GROUP_ID: '1000' GROUP_ID: '1000'
# SECURE_CONNECTION: 1 # SECURE_CONNECTION: 1
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -30,7 +30,7 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.https.port: '443' traefik.https.port: '443'
traefik.https.frontend.entryPoints: 'https' traefik.https.frontend.entryPoints: 'https'
traefik.https.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.https.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -33,7 +33,7 @@
file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000' file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000'
with_items: with_items:
- '{{path.stdout}}/nzb' - '{{path.stdout}}/nzb'
# force: yes # force: yes
- name: 'Including plugins' - name: 'Including plugins'
include_tasks: '/opt/communityapps/apps/_plugins.yml' include_tasks: '/opt/communityapps/apps/_plugins.yml'
@@ -131,16 +131,26 @@
pg_labels: pg_labels:
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '/tmp:/tmp' - '/tmp:/tmp'
- '/opt/appdata/{{pgrole}}/cont-init.d:/etc/cont-init.d' - '/opt/appdata/{{pgrole}}/cont-init.d:/etc/cont-init.d'
- '/opt/appdata/{{pgrole}}/services.d:/etc/services.d/nzbget' - '/opt/appdata/{{pgrole}}/services.d:/etc/services.d/nzbget'

View File

@@ -44,14 +44,23 @@
pg_labels: pg_labels:
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' #traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/appsettings.json:/opt/{{pgrole}}/appsettings.json' - '/opt/appdata/{{pgrole}}/appsettings.json:/opt/{{pgrole}}/appsettings.json'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# Title: PGBlitz (Reference Title File) # Title: OmbiHDR
# Author(s): Admin9705 # Author(s): Admin9705; timekills mod
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
@@ -10,48 +10,58 @@
gather_facts: false gather_facts: false
tasks: tasks:
# FACTS ####################################################################### # FACTS #######################################################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: 'nzbthrottle' pgrole: 'ombiHDR'
intport: '0' intport: '3579'
extport: '0' extport: '3581'
image: 'daghaian/nzbthrottle' image: 'linuxserver/ombi'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/coreapps/apps/_core.yml'
- name: 'Checking {{pgrole}}'s json existance' # PRETASKS ####################################################################
- name: Check JSON exists
stat: stat:
path: '/opt/communityapps/apps/templates/{{pgrole}}/config.json' path: '/opt/appdata/{{pgrole}}/appsettings.json'
register: jsoncheck register: jsonfile
- name: 'Copying file for {{pgrole}}' - name: 'Download {{pgrole}} appsettings.json config file'
copy: get_url:
src: '/opt/communityapps/apps/templates/{{pgrole}}/config.json' url: https://raw.githubusercontent.com/tidusjar/Ombi/master/src/Ombi/appsettings.json
dest: '/opt/appdata/{{pgrole}}/{{pgrole}}/config.json' dest: /opt/appdata/{{pgrole}}/appsettings.json
directory_mode: yes
force: yes
owner: '1000' owner: '1000'
group: '1000' group: '1000'
mode: 0775 force: no
when: not jsoncheck.stat.exists ignore_errors: True
when: jsonfile.stat.exists == False
# LABELS ###################################################################### # LABELS ######################################################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
#traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/opt/appdata/{{pgrole}}/config.json:/{{pgrole}}/config.json:ro' - '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/appsettings.json:/opt/{{pgrole}}/appsettings.json'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
@@ -60,6 +70,7 @@
PGID: '1000' PGID: '1000'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:
name: '{{pgrole}}' name: '{{pgrole}}'

View File

@@ -28,7 +28,7 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}' traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true' traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true' traefik.frontend.headers.STSIncludeSubdomains: 'true'

View File

@@ -31,7 +31,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -13,13 +13,11 @@
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: 'qbittorrent' pgrole: 'qbittorrent-vpn'
intport: '8998' intport: '8080'
extport: '8998' extport: '8098'
intport1: '8118' intport2: '8118'
extport1: '8118' extport2: '8118'
intport2: '6881'
extport2: '6881'
dnsserver1: '1.1.1.1' dnsserver1: '1.1.1.1'
dnsserver2: '84.200.69.80' dnsserver2: '84.200.69.80'
dnsserver3: '37.235.1.174' dnsserver3: '37.235.1.174'
@@ -45,15 +43,24 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
@@ -72,9 +79,6 @@
NAME_SERVERS: '{{dnsserver1}},{{dnsserver2}},{{dnsserver3}},{{dnsserver4}}' NAME_SERVERS: '{{dnsserver1}},{{dnsserver2}},{{dnsserver3}},{{dnsserver4}}'
DEBUG: 'false' DEBUG: 'false'
WEBUI_PORT: '{{intport}}' WEBUI_PORT: '{{intport}}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Checking for existing app data' - name: 'Checking for existing app data'
@@ -89,7 +93,6 @@
pull: yes pull: yes
published_ports: published_ports:
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'
- '{{ports.stdout}}{{extport1}}:{{intport1}}'
- '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}'
volumes: '{{pg_volumes}}' volumes: '{{pg_volumes}}'
env: '{{pg_env}}' env: '{{pg_env}}'
@@ -123,6 +126,14 @@
name: '{{pgrole}}' name: '{{pgrole}}'
state: stopped state: stopped
- name: Set torrent port
ini_file:
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
section: Preferences
option: Connection\PortRangeMin
value: '7889'
state: present
- name: Set SavePath - name: Set SavePath
ini_file: ini_file:
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
@@ -131,7 +142,6 @@
value: '{{path.stdout}}/downloads/{{pgrole}}' value: '{{path.stdout}}/downloads/{{pgrole}}'
state: present state: present
- name: Set TempPathEnabled - name: Set TempPathEnabled
ini_file: ini_file:
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
@@ -142,19 +152,18 @@
- name: Get latest blocklist - name: Get latest blocklist
shell: curl -L http://john.bitsurge.net/public/biglist.p2p.gz | gzip -cdf > /opt/appdata/{{pgrole}}/qBittorrent/config/biglist.p2p shell: curl -L http://john.bitsurge.net/public/biglist.p2p.gz | gzip -cdf > /opt/appdata/{{pgrole}}/qBittorrent/config/biglist.p2p
- name: 'Checking for existing openvpn folder' - name: 'Checking for existing openvpn folder'
stat: stat:
path: '/opt/appdata/{{pgrole}}/openvpn' path: '/opt/appdata/{{pgrole}}/openvpn'
register: ovpncheck register: ovpncheck
- name: Initialize opvn - name: Initialize opvn
block: block:
- name: Create opvn folder - name: Create opvn folder
shell: mkdir /opt/appdata/{{pgrole}}/openvpn && touch mkdir /opt/appdata/{{pgrole}}/openvpn/OVPN\ files\ go\ here && chown -R {{puid}}:{{pgid}} /opt/appdata/{{pgrole}}/openvpn shell: mkdir /opt/appdata/{{pgrole}}/openvpn && touch mkdir /opt/appdata/{{pgrole}}/openvpn/OVPN\ files\ go\ here && chown -R {{puid}}:{{pgid}} /opt/appdata/{{pgrole}}/openvpn
when: not ovpncheck.stat.exists when: not ovpncheck.stat.exists
# FIRST TIME CONFIGURATION #################################################### # FIRST TIME CONFIGURATION ####################################################
- name: 'Configuring {{pgrole}} for first time use' - name: 'Configuring {{pgrole}} for first time use'
block: block:
@@ -286,7 +295,7 @@
value: false value: false
force: yes force: yes
state: present state: present
- name: Set ServerDomains - name: Set ServerDomains
ini_file: ini_file:
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
@@ -339,7 +348,7 @@
value: '/config/qBittorrent/config/biglist.p2p' value: '/config/qBittorrent/config/biglist.p2p'
force: yes force: yes
state: present state: present
- name: Set default login - name: Set default login
ini_file: ini_file:
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
@@ -348,9 +357,9 @@
value: '@ByteArray(22f616dbc8cdb4aa96105b1c8f36ea63)' value: '@ByteArray(22f616dbc8cdb4aa96105b1c8f36ea63)'
force: yes force: yes
state: present state: present
when: not confcheck.stat.exists when: not confcheck.stat.exists
- name: Restart {{pgrole}} - name: Restart {{pgrole}}
docker_container: docker_container:
name: '{{pgrole}}' name: '{{pgrole}}'
state: started state: started

View File

@@ -28,16 +28,26 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/etc/localtime:/etc/localtime:ro' - '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -28,16 +28,26 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/etc/localtime:/etc/localtime:ro' - '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -30,7 +30,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -39,6 +48,7 @@
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs:rw' - '/mnt/unionfs:/unionfs:rw'
- '/mnt:/mnt:rw' - '/mnt:/mnt:rw'
- '/opt/appdata/plexguide:/host_rcloneconf_folder:ro'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
@@ -46,8 +56,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (rdp-calibre) # Title: PGBlitz (rdp-calibre)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -30,7 +30,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -47,10 +56,9 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
WIDTH: '1280' WIDTH: '1280'
HEIGHT: '720' HEIGHT: '720'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:
@@ -59,7 +67,7 @@
pull: yes pull: yes
published_ports: published_ports:
- '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport}}:{{intport}}'
- '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}'
volumes: '{{pg_volumes}}' volumes: '{{pg_volumes}}'
env: '{{pg_env}}' env: '{{pg_env}}'
restart_policy: unless-stopped restart_policy: unless-stopped

View File

@@ -47,7 +47,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -13,7 +13,7 @@
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: 'rflood' pgrole: 'rflood-vpn'
intport: '80' intport: '80'
extport: '5896' extport: '5896'
image: 'h1f0x/rtorrent-flood-openvpn' image: 'h1f0x/rtorrent-flood-openvpn'
@@ -40,17 +40,24 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs'
- '/mnt/downloads/{{pgrole}}:/output/complete'
- '/mnt/incomplete/{{pgrole}}:/output/incomplete'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:

View File

@@ -27,11 +27,11 @@
- name: 'Including folders' - name: 'Including folders'
include_tasks: '/opt/communityapps/apps/_downloaders.yml' include_tasks: '/opt/communityapps/apps/_downloaders.yml'
- name: 'Ini Check' - name: Checking for existing app data
stat: stat:
path: /opt/appdata/{{pgrole}}/core.conf path: '/opt/appdata/{{pgrole}}/rutorrent/rtorrent/rtorrent.rc'
register: inicheck register: rccheck
# LABELS ###################################################################### # LABELS ######################################################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
@@ -40,17 +40,25 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt/unionfs:/unionfs'
- '/mnt/downloads/{{pgrole}}:/output/complete'
- '/mnt/incomplete/{{pgrole}}:/output/incomplete'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/sock:/run/php'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
@@ -76,3 +84,234 @@
privileged: yes privileged: yes
state: started state: started
labels: '{{pg_labels}}' labels: '{{pg_labels}}'
# CONFIGURATION ####################################################
- name: 'Waiting for {{pgrole}} to initialize'
wait_for:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
state: present
msg: rtorrent.rc creation failed
- name: 'Stopping {{pgrole}}'
docker_container:
name: '{{pgrole}}'
state: stopped
# This is needed for rutorrent b/c it's weird.
- name: 'Setting ownership on appdata recursivley (this can take a while!)'
shell: 'chown -R 1000:1000 /opt/appdata/{{pgrole}}'
- name: 'Setting permissions on appdata recursivley (this can take a while!)'
shell: 'chmod -R 775 /opt/appdata/{{pgrole}}'#*check_hash\s*=.*'
- name: Set download location
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*directory\s*=.*'
line: 'directory = {{path.stdout}}/downloads/{{pgrole}}'
state: present
- name: Set download location
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*directory.default.set\s*=.*'
line: 'directory.default.set = {{path.stdout}}/downloads/{{pgrole}}'
state: present
# - name: Set download completed move location
# lineinfile:
# path: "/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc"
# regexp: '#*method.insert\s*=\s*d.get_finished_dir.*'
# line: 'method.insert = d.get_finished_dir, simple, "cat={path.stdout}}/downloads/{{pgrole}}/,$d.custom1="'
# state: present
# - name: Set download data path location
# lineinfile:
# path: "/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc"
# regexp: '#*method.insert\s*=\s*d.data_path.*'
# line: 'method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"'
# state: present
# - name: Enable download completed move
# lineinfile:
# path: "/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc"
# regexp: '#*method.insert\s*=\s*d.move_to_complete,\s*simple.*'
# line: 'method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="'
# state: present
# - name: Enable download completed move event
# lineinfile:
# path: "/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc"
# regexp: '#*method.set_key\s*=\s*event.download.finished,move_complete.*'
# line: 'method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="'
# state: present
# FIRST TIME CONFIGURATION ####################################################
- name: 'Configuring {{pgrole}} for first time use'
block:
- name: Upload Rate
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*upload_rate\s*=.*'
line: 'upload_rate = 100000'
state: present
- name: Download Rate
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*download_rate\s*=.*'
line: 'download_rate = 100000'
state: present
- name: max_downloads
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*throttle.max_downloads.global.set\s*=.*'
line: 'throttle.max_downloads.global.set = 500'
state: present
- name: max_uploads
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*throttle.max_uploads.global.set\s*=.*'
line: 'throttle.max_uploads.global.set = 50'
state: present
- name: No File Allocation
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*system.file.allocate.set\s*=.*'
line: 'system.file.allocate.set = 0'
state: present
- name: min_peers
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*min_peers\s*=.*'
line: 'min_peers = 40'
state: present
- name: max_peers
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*max_peers\s*=.*'
line: 'max_peers = 1200'
state: present
- name: max_uploads
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*max_uploads\s*=.*'
line: 'max_uploads = 15'
state: present
- name: max_downloads
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*max_downloads\s*=.*'
line: 'max_downloads = 10'
state: present
- name: Upload Rate
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*upload_rate\s*=.*'
line: 'upload_rate = 30000'
state: present
- name: Download Rate
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*download_rate\s*=.*'
line: 'download_rate = 90000'
state: present
- name: Global Upload to Unlmited
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*throttle.global_up.max_rate.set_kb\s*=.*'
line: 'throttle.global_up.max_rate.set_kb = 0'
state: present
- name: DHT disable
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*dht\s*=.*'
line: '#dht = auto'
state: present
- name: DHT port
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*dht_port\s*=.*'
line: '#dht_port = 6881'
state: present
- name: check Hash
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*check_hash\s*=.*'
line: 'check_hash = no'
state: present
- name: Preload Piece to Host
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*pieces.preload.type\s*=.*'
line: 'pieces.preload.type = 2'
state: present
- name: lower DNS timeout
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*network.http.dns_cache_timeout.set\s*=.*'
line: 'network.http.dns_cache_timeout.set = 25'
state: present
- name: Network Send Buffer Size
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*network.send_buffer.size.set\s*=.*'
line: 'network.send_buffer.size.set = 12M'
state: present
- name: Network Recived Buffer Size
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*network.receive_buffer.size.set\s*=.*'
line: 'network.receive_buffer.size.set = 4M'
state: present
- name: Announce-Interval Min rescan
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*throttle.min_peers.seed.set\s*=.*'
line: 'throttle.min_peers.seed.set = 0'
state: present
- name: Announce-Interval Max rescan
lineinfile:
path: '/opt/appdata/{{pgrole}}/rtorrent/rtorrent.rc'
regexp: '#*throttle.max_peers.seed.set\s*=.*'
line: 'throttle.max_peers.seed.set = -1'
state: present
- name: Do not save uploaded Torrents
lineinfile:
path: '/opt/appdata/{{pgrole}}/rutorrent/settings/config.php'
regexp: '\$saveUploadedTorrents\s*=.*'
line: '$saveUploadedTorrents = false;'
state: present
- name: overwrite uploaded Torrents
lineinfile:
path: '/opt/appdata/{{pgrole}}/rutorrent/settings/config.php'
regexp: '\$overwriteUploadedTorrents\s*=.*'
line: '$overwriteUploadedTorrents = true;'
state: present
when: not rccheck.stat.exists
- name: Restart Docker Container
docker_container:
name: '{{pgrole}}'
state: started

View File

@@ -40,7 +40,17 @@
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex' traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -50,7 +60,6 @@
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/mnt:/mnt' - '/mnt:/mnt'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -29,16 +29,26 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/etc/localtime:/etc/localtime:ro' - '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -29,16 +29,26 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/etc/localtime:/etc/localtime:ro' - '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'
set_fact: set_fact:
pg_env: pg_env:

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (danisla/subsonic) # Title: PGBlitz (danisla/subsonic)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -43,7 +52,6 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
@@ -61,4 +69,4 @@
aliases: aliases:
- '{{pgrole}}' - '{{pgrole}}'
state: started state: started
labels: '{{pg_labels}}' labels: '{{pg_labels}}'

View File

@@ -17,7 +17,7 @@
intport: '8088' intport: '8088'
extport: '8088' extport: '8088'
intport2: '8089' intport2: '8089'
extport2: '8089' extport2: '8102'
image: 'starbix/synclounge' image: 'starbix/synclounge'
# CORE (MANDATORY) ############################################################ # CORE (MANDATORY) ############################################################

View File

@@ -40,7 +40,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -41,7 +41,17 @@
traefik.enable: 'false' traefik.enable: 'false'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
# VOLUMES ######### # VOLUMES #########
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'

View File

@@ -1,69 +0,0 @@
#!/bin/bash
#
# Title: PGBlitz (linuxserver/kodi-headless)
# Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0
################################################################################
---
- hosts: localhost
gather_facts: false
tasks:
# FACTS #######################################################################
- name: 'Set Known Facts'
set_fact:
pgrole: 'kodi-headless'
intport: '8080'
extport: '8088'
intport2: '9090'
extport2: '9099'
intport3: '9777'
extport3: '9777/udp'
image: 'linuxserver/kodi-headless:latest'
# CORE (MANDATORY) ############################################################
- name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml'
# LABELS ######################################################################
- name: 'Adding Traefik'
set_fact:
pg_labels:
traefik.enable: 'true'
traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}'
- name: 'Setting PG Volumes'
set_fact:
pg_volumes:
- '/opt/appdata/{{pgrole}}/config:/config/.kodi:rw'
- '/mnt:/mnt:rw'
- '/etc/localtime:/etc/localtime:ro'
- name: 'Setting PG ENV'
set_fact:
pg_env:
PUID: '1000'
PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}'
docker_container:
name: '{{pgrole}}'
image: '{{image}}'
pull: yes
published_ports:
- '{{extport}}:{{intport}}'
- '{{extport2}}:{{intport2}}'
- '{{extport3}}:{{intport3}}'
volumes: '{{pg_volumes}}'
env: '{{pg_env}}'
restart_policy: always
networks:
- name: plexguide
aliases:
- '{{pgrole}}'
state: started
labels: '{{pg_labels}}'

View File

@@ -33,4 +33,4 @@
"showConfig": false, "showConfig": false,
"vim": false, "vim": false,
"columns": "name-size-date-owner-mode" "columns": "name-size-date-owner-mode"
} }

View File

@@ -3,5 +3,5 @@
"format": 1 "format": 1
}{ }{
"use_name_folder": true, "use_name_folder": true,
"extract_path": "/downloads/deluge/" "extract_path": "/mnt/downloads/{{pgrole}}/"
} }

View File

@@ -0,0 +1,55 @@
[Radarr]
host = localhost
port = 7878
web_root =
ssl = False
apikey =
[MP4]
ffmpeg = /usr/bin/ffmpeg
ffprobe = /usr/bin/ffprobe
threads = auto
output_directory =
copy_to =
move_to =
output_extension = mp4
output_format = mp4
delete_original = True
relocate_moov = True
video-codec = h264,x264
video-bitrate =
video-crf =
video-max-width =
video-profile =
h264-max-level =
use-qsv-decoder-with-encoder = True
use-hevc-qsv-decoder = False
enable_dxva2_gpu_decode = False
ios-audio = True
ios-first-track-only = False
ios-audio-filter =
ios-move-last = False
max-audio-channels =
audio-codec = ac3
audio-language =
audio-default-language =
audio-channel-bitrate =
audio-filter =
audio-copy-original = False
subtitle-codec = mov_text
subtitle-language =
subtitle-default-language =
subtitle-encoding =
fullpathguess = True
convert-mp4 = False
tagfile = True
tag-language = en
download-artwork = Poster
download-subs = False
embed-subs = True
embed-only-internal-subs = False
sub-providers = addic7ed,podnapisi,thesubdb,opensubtitles
permissions = 0777
post-process = False
pix-fmt =
aac_adtstoasc = False

View File

@@ -0,0 +1,5 @@
#!/bin/bash
if [ -d "$radarr_moviefile_sourcefolder" ] && [ "$(basename $radarr_moviefile_sourcefolder)" = "deluge_extracted" ] ; then
/bin/rm -rf $radarr_moviefile_sourcefolder
fi

View File

@@ -0,0 +1,55 @@
[Radarr]
host = localhost
port = 7878
web_root =
ssl = False
apikey =
[MP4]
ffmpeg = /usr/bin/ffmpeg
ffprobe = /usr/bin/ffprobe
threads = auto
output_directory =
copy_to =
move_to =
output_extension = mp4
output_format = mp4
delete_original = True
relocate_moov = True
video-codec = h264,x264
video-bitrate =
video-crf =
video-max-width =
video-profile =
h264-max-level =
use-qsv-decoder-with-encoder = True
use-hevc-qsv-decoder = False
enable_dxva2_gpu_decode = False
ios-audio = True
ios-first-track-only = False
ios-audio-filter =
ios-move-last = False
max-audio-channels =
audio-codec = ac3
audio-language =
audio-default-language =
audio-channel-bitrate =
audio-filter =
audio-copy-original = False
subtitle-codec = mov_text
subtitle-language =
subtitle-default-language =
subtitle-encoding =
fullpathguess = True
convert-mp4 = False
tagfile = True
tag-language = en
download-artwork = Poster
download-subs = False
embed-subs = True
embed-only-internal-subs = False
sub-providers = addic7ed,podnapisi,thesubdb,opensubtitles
permissions = 0777
post-process = False
pix-fmt =
aac_adtstoasc = False

View File

@@ -0,0 +1,5 @@
#!/bin/bash
if [ -d "$radarr_moviefile_sourcefolder" ] && [ "$(basename $radarr_moviefile_sourcefolder)" = "deluge_extracted" ] ; then
/bin/rm -rf $radarr_moviefile_sourcefolder
fi

View File

@@ -0,0 +1,55 @@
[Sonarr]
host = localhost
port = 8989
web_root =
ssl = False
apikey =
[MP4]
ffmpeg = /usr/bin/ffmpeg
ffprobe = /usr/bin/ffprobe
threads = auto
output_directory =
copy_to =
move_to =
output_extension = mp4
output_format = mp4
delete_original = True
relocate_moov = True
video-codec = h264,x264
video-bitrate =
video-crf =
video-max-width =
video-profile =
h264-max-level =
use-qsv-decoder-with-encoder = True
use-hevc-qsv-decoder = False
enable_dxva2_gpu_decode = False
ios-audio = True
ios-first-track-only = False
ios-audio-filter =
ios-move-last = False
max-audio-channels =
audio-codec = ac3
audio-language =
audio-default-language =
audio-channel-bitrate =
audio-filter =
audio-copy-original = False
subtitle-codec = mov_text
subtitle-language =
subtitle-default-language =
subtitle-encoding =
fullpathguess = True
convert-mp4 = False
tagfile = True
tag-language = en
download-artwork = Poster
download-subs = False
embed-subs = True
embed-only-internal-subs = False
sub-providers = addic7ed,podnapisi,thesubdb,opensubtitles
permissions = 0777
post-process = False
pix-fmt =
aac_adtstoasc = False

View File

@@ -0,0 +1,55 @@
[Sonarr]
host = localhost
port = 8989
web_root =
ssl = False
apikey =
[MP4]
ffmpeg = /usr/bin/ffmpeg
ffprobe = /usr/bin/ffprobe
threads = auto
output_directory =
copy_to =
move_to =
output_extension = mp4
output_format = mp4
delete_original = True
relocate_moov = True
video-codec = h264,x264
video-bitrate =
video-crf =
video-max-width =
video-profile =
h264-max-level =
use-qsv-decoder-with-encoder = True
use-hevc-qsv-decoder = False
enable_dxva2_gpu_decode = False
ios-audio = True
ios-first-track-only = False
ios-audio-filter =
ios-move-last = False
max-audio-channels =
audio-codec = ac3
audio-language =
audio-default-language =
audio-channel-bitrate =
audio-filter =
audio-copy-original = False
subtitle-codec = mov_text
subtitle-language =
subtitle-default-language =
subtitle-encoding =
fullpathguess = True
convert-mp4 = False
tagfile = True
tag-language = en
download-artwork = Poster
download-subs = False
embed-subs = True
embed-only-internal-subs = False
sub-providers = addic7ed,podnapisi,thesubdb,opensubtitles
permissions = 0777
post-process = False
pix-fmt =
aac_adtstoasc = False

View File

@@ -29,7 +29,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -29,14 +29,24 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}'
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- '/opt/appdata/plex/database/Library/Application Support/Plex Media Server/Plug-in Support/Databases:/plex:ro' - '/opt/appdata/plex/database/Library/Application Support/Plex Media Server/Plug-in Support/Databases:/plex:ro'
- name: 'Setting PG ENV' - name: 'Setting PG ENV'

View File

@@ -27,12 +27,12 @@
- name: Checking for existing rss folder - name: Checking for existing rss folder
stat: stat:
path: "/opt/appdata/{{pgrole}}/rss" path: '/opt/appdata/{{pgrole}}/rss'
register: rsscheck register: rsscheck
- name: Checking for existing rss config - name: Checking for existing rss config
stat: stat:
path: "/opt/appdata/{{pgrole}}/rss/transmission-rss.conf" path: '/opt/appdata/{{pgrole}}/rss/transmission-rss.conf'
register: cfgcheck register: cfgcheck
# LABELS ###################################################################### # LABELS ######################################################################
@@ -42,15 +42,24 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
- '/etc/localtime:/etc/localtime:ro' - '/etc/localtime:/etc/localtime:ro'
- '/opt/appdata/{{pgrole}}:/config'
- '{{path.stdout}}:{{path.stdout}}' - '{{path.stdout}}:{{path.stdout}}'
- '/mnt:/mnt' - '/mnt:/mnt'
- '/opt/appdata/{{pgrole}}:/config'
- name: 'Setting {{pgrole2}} Volumes' - name: 'Setting {{pgrole2}} Volumes'
set_fact: set_fact:
@@ -120,13 +129,13 @@
- name: 'RSS feed configuration - Folder' - name: 'RSS feed configuration - Folder'
block: block:
- name: 'Creating RSS folder' - name: 'Creating RSS folder'
shell: "mkdir /opt/appdata/{{pgrole}}/rss" shell: 'mkdir /opt/appdata/{{pgrole}}/rss'
when: not rsscheck.stat.exists when: not rsscheck.stat.exists
- name: 'RSS feed configuration - Config' - name: 'RSS feed configuration - Config'
block: block:
- name: 'Creating configuration file' - name: 'Creating configuration file'
shell: "touch /opt/appdata/{{pgrole}}/rss/transmission-rss.conf && chown -R 1000:1000 /opt/appdata/{{pgrole}}/rss/ && echo see https://git.io/fhAm2 to configure > /opt/appdata/{{pgrole}}/rss/transmission-rss.conf" shell: 'touch /opt/appdata/{{pgrole}}/rss/transmission-rss.conf && chown -R 1000:1000 /opt/appdata/{{pgrole}}/rss/ && echo see https://git.io/fhAm2 to configure > /opt/appdata/{{pgrole}}/rss/transmission-rss.conf'
when: not cfgcheck.stat.exists when: not cfgcheck.stat.exists
- name: 'Deploying {{pgrole2}}' - name: 'Deploying {{pgrole2}}'
@@ -143,7 +152,7 @@
- name: 'Wait for {{pgrole}} to initialize' - name: 'Wait for {{pgrole}} to initialize'
wait_for: timeout=30 wait_for: timeout=30
- name: 'Stopping {{pgrole}}. Go configure ENV values.' - name: 'Stopping {{pgrole}}. Go configure ENV values.'
docker_container: docker_container:
name: '{{pgrole}}' name: '{{pgrole}}'

View File

@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -18,7 +18,7 @@
intport2: '10001/udp' intport2: '10001/udp'
extport2: '10001' extport2: '10001'
intport3: '8080/tcp' intport3: '8080/tcp'
extport3: '8088' extport3: '8103'
intport4: '8081/tcp' intport4: '8081/tcp'
extport4: '8081' extport4: '8081'
intport5: '8443/tcp' intport5: '8443/tcp'
@@ -35,23 +35,22 @@
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.enable: 'true' traefik.enable: 'true'
traefik.tags: 'frontend' traefik.tags: 'frontend'
traefik.frontend.passHostHeader: 'true' traefik.frontend.passHostHeader: 'true'
traefik.backend: '{{pgrole}}' traefik.backend: '{{pgrole}}'
traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.admin.port: '{{intport5}}' traefik.admin.port: '{{intport5}}'
traefik.admin.protocol: 'https' traefik.admin.protocol: 'https'
traefik.frontend.headers.SSLRedirect: 'true' traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSSeconds: '315360000' traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true' traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true' traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.forceSTSHeader: 'true' traefik.frontend.headers.forceSTSHeader: 'true'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}' traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.STSIncludeSubdomains: 'true' traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true' traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.frameDeny: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
pg_volumes: pg_volumes:
@@ -63,8 +62,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -32,7 +32,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -3,7 +3,7 @@
# Title: PGBlitz (consol/ubuntu-xfce-vnc) # Title: PGBlitz (consol/ubuntu-xfce-vnc)
# Author(s): MrDoob # Author(s): MrDoob
# URL: https://pgblitz.com - http://github.pgblitz.com # URL: https://pgblitz.com - http://github.pgblitz.com
# GNU: General Public License v3.0 # GNU: General Public License v3.0
################################################################################ ################################################################################
--- ---
- hosts: localhost - hosts: localhost
@@ -28,7 +28,16 @@
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:
@@ -44,8 +53,7 @@
pg_env: pg_env:
PUID: '1000' PUID: '1000'
PGID: '1000' PGID: '1000'
TZ: '${TZ}'
# MAIN DEPLOYMENT ############################################################# # MAIN DEPLOYMENT #############################################################
- name: 'Deploying {{pgrole}}' - name: 'Deploying {{pgrole}}'
docker_container: docker_container:

View File

@@ -30,7 +30,16 @@
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -9,30 +9,39 @@
- hosts: localhost - hosts: localhost
gather_facts: false gather_facts: false
tasks: tasks:
# CORE (MANDATORY) DO NOT CHANGE ########################################### # CORE (MANDATORY) DO NOT CHANGE ###########################################
- name: 'Set Known Facts' - name: 'Set Known Facts'
set_fact: set_fact:
pgrole: "zammad" pgrole: 'zammad'
intport: "80" intport: '80'
extport: "8777" extport: '8777'
image: "zammad/zammad" image: 'zammad/zammad'
- name: 'Including cron job' - name: 'Including cron job'
include_tasks: '/opt/communityapps/apps/_core.yml' include_tasks: '/opt/communityapps/apps/_core.yml'
# EXTRA FUNCTIONS REQUIRED BY THE ROLE ##################################### # EXTRA FUNCTIONS REQUIRED BY THE ROLE #####################################
##### NOTHING REQUIRED ##### NOTHING REQUIRED
# LABELS #### KEEPS BOTTOM CLEAN ########################################### # LABELS #### KEEPS BOTTOM CLEAN ###########################################
- name: 'Adding Traefik' - name: 'Adding Traefik'
set_fact: set_fact:
pg_labels: pg_labels:
traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.auth.forward.address: '{{gauth}}'
traefik.enable: 'true' traefik.enable: 'true'
traefik.port: '{{intport}}' traefik.port: '{{intport}}'
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
traefik.frontend.headers.SSLRedirect: 'true'
traefik.frontend.headers.STSIncludeSubdomains: 'true'
traefik.frontend.headers.STSPreload: 'true'
traefik.frontend.headers.STSSeconds: '315360000'
traefik.frontend.headers.browserXSSFilter: 'true'
traefik.frontend.headers.contentTypeNosniff: 'true'
traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
traefik.frontend.headers.forceSTSHeader: 'true'
- name: 'Setting PG Volumes' - name: 'Setting PG Volumes'
set_fact: set_fact:

View File

@@ -1 +0,0 @@