mirror of
https://github.com/mtan93/Apps-Community.git
synced 2026-03-08 05:31:59 +00:00
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}}"
|
||||||
|
|||||||
@@ -4,3 +4,4 @@ netdata
|
|||||||
alltube
|
alltube
|
||||||
dockergc
|
dockergc
|
||||||
blitzui
|
blitzui
|
||||||
|
watchtower
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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}}'
|
||||||
|
|||||||
@@ -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}}'
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
2
apps/image/radarr4k
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
linuxserver/radarr
|
||||||
|
aront/radarr
|
||||||
2
apps/image/radarrhdr
Normal file
2
apps/image/radarrhdr
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
linuxserver/radarr
|
||||||
|
aront/radarr
|
||||||
3
apps/image/sonarr4k
Normal file
3
apps/image/sonarr4k
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
linuxserver/sonarr:preview
|
||||||
|
linuxserver/sonarr
|
||||||
|
aront/sonarr
|
||||||
3
apps/image/sonarrhdr
Normal file
3
apps/image/sonarrhdr
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
linuxserver/sonarr:preview
|
||||||
|
linuxserver/sonarr
|
||||||
|
aront/sonarr
|
||||||
@@ -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'
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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 *
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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 #############################################################
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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}}'
|
||||||
@@ -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'
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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}}'
|
||||||
|
|||||||
@@ -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) ############################################################
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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}}'
|
|
||||||
@@ -33,4 +33,4 @@
|
|||||||
"showConfig": false,
|
"showConfig": false,
|
||||||
"vim": false,
|
"vim": false,
|
||||||
"columns": "name-size-date-owner-mode"
|
"columns": "name-size-date-owner-mode"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}}/"
|
||||||
}
|
}
|
||||||
|
|||||||
55
apps/templates/radarr4k/mp4_automator/autoProcess.ini
Normal file
55
apps/templates/radarr4k/mp4_automator/autoProcess.ini
Normal 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
|
||||||
5
apps/templates/radarr4k/scripts/cleanup-radarr.sh
Normal file
5
apps/templates/radarr4k/scripts/cleanup-radarr.sh
Normal 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
|
||||||
55
apps/templates/radarrhdr/mp4_automator/autoProcess.ini
Normal file
55
apps/templates/radarrhdr/mp4_automator/autoProcess.ini
Normal 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
|
||||||
5
apps/templates/radarrhdr/scripts/cleanup-radarr.sh
Normal file
5
apps/templates/radarrhdr/scripts/cleanup-radarr.sh
Normal 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
|
||||||
55
apps/templates/sonarr4k/mp4_automator/autoProcess.ini
Normal file
55
apps/templates/sonarr4k/mp4_automator/autoProcess.ini
Normal 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
|
||||||
55
apps/templates/sonarrhdr/mp4_automator/autoProcess.ini
Normal file
55
apps/templates/sonarrhdr/mp4_automator/autoProcess.ini
Normal 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
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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}}'
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user