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://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
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
################################################################################
|
||||
|
||||
# Generates App List
|
||||
ls -la /opt/coreapps/apps/ | sed -e 's/.yml//g' \
|
||||
| awk '{print $9}' | tail -n +4 > /var/plexguide/app.list
|
||||
ls -la /opt/communityapps/apps/ | sed -e 's/.yml//g' |
|
||||
awk '{print $9}' | tail -n +4 >>/var/plexguide/app.list
|
||||
|
||||
ls -la /opt/mycontainers/ | sed -e 's/.yml//g' \
|
||||
| awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list
|
||||
ls -la /opt/mycontainers/ | sed -e 's/.yml//g' |
|
||||
awk '{print $9}' | tail -n +4 >>/var/plexguide/app.list
|
||||
# Enter Items Here to Prevent them From Showing Up on AppList
|
||||
sed -i -e "/traefik/d" /var/plexguide/app.list
|
||||
sed -i -e "/image*/d" /var/plexguide/app.list
|
||||
|
||||
@@ -38,6 +38,47 @@
|
||||
register: auth
|
||||
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
|
||||
docker_container:
|
||||
name: '{{pgrole}}'
|
||||
@@ -49,7 +90,6 @@
|
||||
ignore_errors: True
|
||||
|
||||
# APPDATA
|
||||
|
||||
- name: 'Creating appdata folder if it does not exist.'
|
||||
shell: 'mkdir -p /opt/appdata/{{pgrole}}'
|
||||
|
||||
@@ -69,7 +109,6 @@
|
||||
shell: 'chmod -R 775 /opt/appdata/{{pgrole}}'
|
||||
when: '"plex" not in pgrole'
|
||||
|
||||
|
||||
# OVERWRITE IMAGES #############################################################
|
||||
- name: Check if Image Variable Exists
|
||||
stat:
|
||||
@@ -92,7 +131,7 @@
|
||||
|
||||
- name: 'If Fact Matches - Enable TLD'
|
||||
set_fact:
|
||||
tldset: '{{domain.stdout}}'
|
||||
tldset: ',{{domain.stdout}},www.{{domain.stdout}}'
|
||||
when: 'toplevel.stdout == pgrole'
|
||||
|
||||
- debug: msg="TLDSET is now for {{toplevel.stdout}}"
|
||||
|
||||
@@ -4,3 +4,4 @@ netdata
|
||||
alltube
|
||||
dockergc
|
||||
blitzui
|
||||
watchtower
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (linuxserver/airsonic)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -14,7 +14,7 @@
|
||||
set_fact:
|
||||
pgrole: 'airsonic'
|
||||
intport: '4040'
|
||||
extport: '4040'
|
||||
extport: '4040'
|
||||
image: 'linuxserver/airsonic'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -45,8 +54,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -39,7 +39,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
pgrole: 'avidemux'
|
||||
intport: '5800'
|
||||
extport: '5806'
|
||||
# intport2: '25565'
|
||||
# extport2: '25565'
|
||||
# intport2: '25565'
|
||||
# extport2: '25565'
|
||||
image: 'jlesage/avidemux'
|
||||
|
||||
- name: 'Including cron job'
|
||||
@@ -48,7 +48,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -35,7 +35,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -44,7 +53,7 @@
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.enable: 'true'
|
||||
traefik.backend: "{{pgrole}}"
|
||||
traefik.backend: '{{pgrole}}'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -29,7 +29,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
set_fact:
|
||||
pgrole: 'calibre-web'
|
||||
intport: '8083'
|
||||
extport: '8083'
|
||||
extport: '8104'
|
||||
image: 'technosoft2000/calibre-web'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
@@ -29,7 +29,17 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -37,7 +46,7 @@
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/mnt:/mnt'
|
||||
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -12,15 +12,11 @@
|
||||
# FACTS #######################################################################
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: 'deluge'
|
||||
pgrole: 'deluge-vpn'
|
||||
intport: '8112'
|
||||
extport: '8112'
|
||||
intport2: '58846'
|
||||
extport2: '58846'
|
||||
intport3: '58946'
|
||||
extport3: '58946'
|
||||
intport4: '8118'
|
||||
extport4: '8118'
|
||||
intport2: '8118'
|
||||
extport2: '8118'
|
||||
image: 'binhex/arch-delugevpn'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
@@ -30,6 +26,9 @@
|
||||
- name: 'Including folders'
|
||||
include_tasks: '/opt/communityapps/apps/_downloaders.yml'
|
||||
|
||||
- name: 'Including plugins'
|
||||
include_tasks: '/opt/communityapps/apps/_plugins.yml'
|
||||
|
||||
- name: 'Checking for existing app data'
|
||||
stat:
|
||||
path: /opt/appdata/{{pgrole}}/core.conf
|
||||
@@ -42,7 +41,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -74,8 +82,6 @@
|
||||
published_ports:
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
- '{{ports.stdout}}{{extport3}}:{{intport3}}'
|
||||
- '{{ports.stdout}}{{extport4}}:{{intport4}}'
|
||||
volumes: '{{pg_volumes}}'
|
||||
env: '{{pg_env}}'
|
||||
restart_policy: unless-stopped
|
||||
@@ -155,18 +161,17 @@
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
|
||||
regexp: '"extract_path".*'
|
||||
line: '"extract_path": "{{path.stdout}}/downloads/deluge"'
|
||||
line: '"extract_path": "{{path.stdout}}/downloads/{{pgrole}}"'
|
||||
state: present
|
||||
|
||||
# FIRST TIME CONFIGURATION ####################################################
|
||||
- name: 'Configuring {{pgrole}} for first time use'
|
||||
block:
|
||||
- name: set enabled_plugins
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
replace:
|
||||
dest: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"enabled_plugins".*'
|
||||
line: '"enabled_plugins": ["Extractor", "Label"],'
|
||||
state: present
|
||||
replace: '"enabled_plugins": ["Extractor", "Label"],'
|
||||
|
||||
- name: set compact_allocation
|
||||
lineinfile:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Title: PGBlitz (Reference Title File)
|
||||
# Author(s): Admin9705
|
||||
# Authors: Admin9705, Deiteq, and many PGBlitz Contributors
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
@@ -15,10 +15,6 @@
|
||||
pgrole: 'deluge'
|
||||
intport: '8112'
|
||||
extport: '8112'
|
||||
intport2: '58846'
|
||||
extport2: '58846'
|
||||
intport3: '58946'
|
||||
extport3: '58946'
|
||||
image: 'linuxserver/deluge'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
@@ -43,7 +39,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -67,8 +72,6 @@
|
||||
pull: yes
|
||||
published_ports:
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
- '{{extport3}}:{{intport3}}'
|
||||
volumes: '{{pg_volumes}}'
|
||||
env: '{{pg_env}}'
|
||||
restart_policy: unless-stopped
|
||||
@@ -94,7 +97,7 @@
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
state: present
|
||||
delay: 5
|
||||
|
||||
|
||||
- name: Setting plugins directory
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
@@ -134,38 +137,37 @@
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"move_completed".*'
|
||||
line: '"move_completed": True,'
|
||||
line: '"move_completed": true,'
|
||||
state: present
|
||||
|
||||
- name: Setting extractor folder
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
|
||||
regexp: '"use_name_folder".*'
|
||||
line: '"use_name_folder": True,'
|
||||
line: '"use_name_folder": true,'
|
||||
state: present
|
||||
|
||||
- name: Setting extractor
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/plugins/extractor.conf'
|
||||
regexp: '"extract_path".*'
|
||||
line: '"extract_path": "{{path.stdout}}/downloads/deluge"'
|
||||
line: '"extract_path": "{{path.stdout}}/downloads/{{pgrole}}"'
|
||||
state: present
|
||||
|
||||
# FIRST TIME CONFIGURATION ####################################################
|
||||
- name: 'Configuring {{pgrole}} for first time use'
|
||||
block:
|
||||
- name: set enabled_plugins
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
replace:
|
||||
dest: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"enabled_plugins".*'
|
||||
line: '"enabled_plugins": ["Extractor", "Label"],'
|
||||
state: present
|
||||
replace: '"enabled_plugins": ["Extractor", "Label"],'
|
||||
|
||||
- name: set compact_allocation
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"compact_allocation".*'
|
||||
line: '"compact_allocation": True,'
|
||||
line: '"compact_allocation": true,'
|
||||
state: present
|
||||
|
||||
- name: set stop_seed_ratio
|
||||
@@ -186,14 +188,14 @@
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"remove_seed_at_ratio".*'
|
||||
line: '"remove_seed_at_ratio": True,'
|
||||
line: '"remove_seed_at_ratio": true,'
|
||||
state: present
|
||||
|
||||
- name: set enc_prefer_rc4
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"enc_prefer_rc4".*'
|
||||
line: '"enc_prefer_rc4": True,'
|
||||
line: '"enc_prefer_rc4": true,'
|
||||
state: present
|
||||
|
||||
- name: set enc_level
|
||||
@@ -228,7 +230,7 @@
|
||||
lineinfile:
|
||||
path: '/opt/appdata/{{pgrole}}/core.conf'
|
||||
regexp: '"dont_count_slow_torrents".*'
|
||||
line: '"dont_count_slow_torrents": True,'
|
||||
line: '"dont_count_slow_torrents": true,'
|
||||
state: present
|
||||
|
||||
- name: set max_active_seeding
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
extport2: '6144'
|
||||
intport3: '1443/tcp'
|
||||
extport3: '1443'
|
||||
|
||||
image: 'linuxserver/domoticz:stable'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
@@ -33,7 +32,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -46,8 +54,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
@@ -58,7 +65,6 @@
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
- '{{ports.stdout}}{{extport3}}:{{intport3}}'
|
||||
- '{{ports.stdout}}{{extport4}}:{{intport4}}'
|
||||
volumes: '{{pg_volumes}}'
|
||||
env: '{{pg_env}}'
|
||||
restart_policy: unless-stopped
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -9,30 +9,39 @@
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: "embystats"
|
||||
intport: "5432"
|
||||
extport: "9049"
|
||||
image: "uping/embystat:beta-linux"
|
||||
pgrole: 'embystats'
|
||||
intport: '5432'
|
||||
extport: '9049'
|
||||
image: 'uping/embystat:beta-linux'
|
||||
|
||||
- name: 'Including cron job'
|
||||
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'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (jlesage/filebot)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -45,8 +54,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -40,7 +40,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -75,7 +84,6 @@
|
||||
- '{{pgrole}}'
|
||||
state: started
|
||||
labels: '{{pg_labels}}'
|
||||
|
||||
##PG-Community
|
||||
|
||||
##PG-Community
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
pgrole: 'firefox'
|
||||
intport: '5800'
|
||||
extport: '5810'
|
||||
# intport2: '25565'
|
||||
# extport2: '25565'
|
||||
# intport2: '25565'
|
||||
# extport2: '25565'
|
||||
image: 'jlesage/firefox'
|
||||
|
||||
- name: 'Including cron job'
|
||||
@@ -48,7 +48,7 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
@@ -58,7 +58,17 @@
|
||||
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.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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -41,8 +50,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -9,30 +9,39 @@
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: "gazee"
|
||||
intport: "4242"
|
||||
extport: "4242"
|
||||
image: "linuxserver/gazee"
|
||||
pgrole: 'gazee'
|
||||
intport: '4242'
|
||||
extport: '4242'
|
||||
image: 'linuxserver/gazee'
|
||||
|
||||
- name: 'Including cron job'
|
||||
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'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
pgrole: 'git'
|
||||
intport: '3000'
|
||||
extport: '9898'
|
||||
intport2: '22' ##for SSH
|
||||
intport2: '22' ##for SSH
|
||||
extport2: '222'
|
||||
|
||||
|
||||
image: 'gitea/gitea'
|
||||
|
||||
# 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.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/data'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
### - '/opt/appdata/git/gitea-db:/data'
|
||||
### - '/opt/appdata/git/gitea-db:/data'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
#### DB_PASSWORD: gitea
|
||||
|
||||
#### DB_PASSWORD: gitea
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
name: '{{pgrole}}'
|
||||
image: '{{image}}'
|
||||
pull: yes
|
||||
# links:
|
||||
# links:
|
||||
# - "dbgitea:idk?"
|
||||
published_ports:
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
|
||||
@@ -29,7 +29,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -50,13 +59,13 @@
|
||||
pg_env:
|
||||
USER_ID: '1000'
|
||||
GROUP_ID: '1000'
|
||||
AUTOMATED_CONVERSION_PRESET: "Very Fast 1080p30"
|
||||
AUTOMATED_CONVERSION_FORMAT: "mp4"
|
||||
AUTOMATED_CONVERSION_PRESET_2: "HQ 1080p30 Surround"
|
||||
AUTOMATED_CONVERSION_FORMAT_2: "mp4"
|
||||
AUTOMATED_CONVERSION_PRESET_3: "H.264 MKV 1080p30"
|
||||
AUTOMATED_CONVERSION_FORMAT_3: "mkv"
|
||||
# SECURE_CONNECTION: 1
|
||||
AUTOMATED_CONVERSION_PRESET: 'Very Fast 1080p30'
|
||||
AUTOMATED_CONVERSION_FORMAT: 'mp4'
|
||||
AUTOMATED_CONVERSION_PRESET_2: 'HQ 1080p30 Surround'
|
||||
AUTOMATED_CONVERSION_FORMAT_2: 'mp4'
|
||||
AUTOMATED_CONVERSION_PRESET_3: 'H.264 MKV 1080p30'
|
||||
AUTOMATED_CONVERSION_FORMAT_3: 'mkv'
|
||||
# SECURE_CONNECTION: 1
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Create watch directory for {{pgrole}}'
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
traefik.enable: 'true'
|
||||
traefik.https.port: '443'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -7,23 +7,23 @@
|
||||
################################################################################
|
||||
|
||||
# BAD INPUT
|
||||
badinput () {
|
||||
echo
|
||||
read -p '⛔️ ERROR - BAD INPUT! | PRESS [ENTER] ' typed < /dev/tty
|
||||
question1
|
||||
badinput() {
|
||||
echo
|
||||
read -p '⛔️ ERROR - BAD INPUT! | PRESS [ENTER] ' typed </dev/tty
|
||||
question1
|
||||
}
|
||||
|
||||
# FUNCTION - ONE
|
||||
question1 () {
|
||||
question1() {
|
||||
|
||||
# Recall Program
|
||||
image=$(cat /tmp/program_var)
|
||||
# Recall Program
|
||||
image=$(cat /tmp/program_var)
|
||||
|
||||
# Checks Image List
|
||||
file="/opt/communityapps/apps/image/$image"
|
||||
if [ ! -e "$file" ]; then exit; fi
|
||||
# Checks Image List
|
||||
file="/opt/communityapps/apps/image/$image"
|
||||
if [ ! -e "$file" ]; then exit; fi
|
||||
|
||||
tee <<-EOF
|
||||
tee <<-EOF
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🌵 PG Multi Image Selector - $image
|
||||
@@ -31,19 +31,19 @@ tee <<-EOF
|
||||
|
||||
EOF
|
||||
|
||||
count=1
|
||||
while read p; do
|
||||
echo "$count - $p"
|
||||
echo "$p" > /tmp/display$count
|
||||
count=$[count+1]
|
||||
done </opt/communityapps/apps/image/$image
|
||||
echo ""
|
||||
read -p '🚀 Type Number | PRESS [ENTER]: ' typed < /dev/tty
|
||||
count=1
|
||||
while read p; do
|
||||
echo "$count - $p"
|
||||
echo "$p" >/tmp/display$count
|
||||
count=$((count + 1))
|
||||
done </opt/communityapps/apps/image/$image
|
||||
echo ""
|
||||
read -p '🚀 Type Number | PRESS [ENTER]: ' typed </dev/tty
|
||||
|
||||
if [[ "$typed" -ge "1" && "$typed" -lt "$count" ]]; then
|
||||
mkdir -p /var/plexguide/image
|
||||
cat "/tmp/display$typed" > "/var/plexguide/image/$image"
|
||||
else badinput; fi
|
||||
mkdir -p /var/plexguide/image
|
||||
cat "/tmp/display$typed" >"/var/plexguide/image/$image"
|
||||
else badinput; fi
|
||||
}
|
||||
|
||||
# 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'
|
||||
set_fact:
|
||||
pgrole: 'jd2-openvpn'
|
||||
pgrole: 'jdownloader2-vpn'
|
||||
intport: '5800'
|
||||
extport: '5802'
|
||||
intport2: '5902'
|
||||
@@ -44,17 +44,25 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
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'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
|
||||
- '/opt/appdata/{{pgrole}}/vpn:/vpn:rw'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
@@ -44,17 +44,25 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
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'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
|
||||
@@ -29,7 +29,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -31,16 +31,25 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt/unionfs:/unionfs'
|
||||
- '{{path.stdout}}/downloads/{{pgrole}}/:/output:rw'
|
||||
- '/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'
|
||||
set_fact:
|
||||
|
||||
@@ -9,26 +9,35 @@
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: "mariadb"
|
||||
intport: "3306"
|
||||
extport: "6603"
|
||||
image: "mariadb:latest"
|
||||
pgrole: 'mariadb'
|
||||
intport: '3306'
|
||||
extport: '6603'
|
||||
image: 'mariadb:latest'
|
||||
|
||||
- name: 'Including cron job'
|
||||
include_tasks: '/opt/communityapps/apps/_core.yml'
|
||||
|
||||
# LABELS ################################################################
|
||||
# LABELS ################################################################
|
||||
- name: 'Adding Traefik'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -65,4 +74,4 @@
|
||||
- name: 'Post Deployment Notes'
|
||||
debug:
|
||||
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.enable: 'true'
|
||||
traefik.port: '{{intport}}'
|
||||
traefik.frontend.rule: 'Host:mcmyadmin.{{domain.stdout}},{{tldset}}'
|
||||
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
|
||||
|
||||
- name: 'Setting PG Volumes'
|
||||
set_fact:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (jlesage/mediainfo)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -46,8 +55,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -9,30 +9,39 @@
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: "medusa"
|
||||
intport: "8081"
|
||||
extport: "8081"
|
||||
image: "linuxserver/medusa"
|
||||
pgrole: 'medusa'
|
||||
intport: '8081'
|
||||
extport: '8081'
|
||||
image: 'linuxserver/medusa'
|
||||
|
||||
- name: 'Including cron job'
|
||||
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'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -33,15 +33,24 @@
|
||||
stat:
|
||||
path: /opt/appdata/{{pgrole}}/core.conf
|
||||
register: confcheck
|
||||
|
||||
# LABELS ######################################################################
|
||||
|
||||
# LABELS ######################################################################
|
||||
- name: 'Adding Traefik'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -57,7 +66,7 @@
|
||||
pg_env:
|
||||
USER_ID: '1000'
|
||||
GROUP_ID: '1000'
|
||||
# SECURE_CONNECTION: 1
|
||||
# SECURE_CONNECTION: 1
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
traefik.enable: 'true'
|
||||
traefik.https.port: '443'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000'
|
||||
with_items:
|
||||
- '{{path.stdout}}/nzb'
|
||||
# force: yes
|
||||
# force: yes
|
||||
|
||||
- name: 'Including plugins'
|
||||
include_tasks: '/opt/communityapps/apps/_plugins.yml'
|
||||
@@ -131,16 +131,26 @@
|
||||
pg_labels:
|
||||
traefik.enable: 'true'
|
||||
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}}'
|
||||
|
||||
- name: 'Setting PG Volumes'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/tmp:/tmp'
|
||||
- '/opt/appdata/{{pgrole}}/cont-init.d:/etc/cont-init.d'
|
||||
- '/opt/appdata/{{pgrole}}/services.d:/etc/services.d/nzbget'
|
||||
|
||||
@@ -44,14 +44,23 @@
|
||||
pg_labels:
|
||||
traefik.enable: 'true'
|
||||
traefik.port: '{{intport}}'
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}'
|
||||
#traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/appsettings.json:/opt/{{pgrole}}/appsettings.json'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Title: PGBlitz (Reference Title File)
|
||||
# Author(s): Admin9705
|
||||
# Title: OmbiHDR
|
||||
# Author(s): Admin9705; timekills mod
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
@@ -10,48 +10,58 @@
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# FACTS #######################################################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: 'nzbthrottle'
|
||||
intport: '0'
|
||||
extport: '0'
|
||||
image: 'daghaian/nzbthrottle'
|
||||
pgrole: 'ombiHDR'
|
||||
intport: '3579'
|
||||
extport: '3581'
|
||||
image: 'linuxserver/ombi'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
- 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:
|
||||
path: '/opt/communityapps/apps/templates/{{pgrole}}/config.json'
|
||||
register: jsoncheck
|
||||
path: '/opt/appdata/{{pgrole}}/appsettings.json'
|
||||
register: jsonfile
|
||||
|
||||
- name: 'Copying file for {{pgrole}}'
|
||||
copy:
|
||||
src: '/opt/communityapps/apps/templates/{{pgrole}}/config.json'
|
||||
dest: '/opt/appdata/{{pgrole}}/{{pgrole}}/config.json'
|
||||
directory_mode: yes
|
||||
force: yes
|
||||
- name: 'Download {{pgrole}} appsettings.json config file'
|
||||
get_url:
|
||||
url: https://raw.githubusercontent.com/tidusjar/Ombi/master/src/Ombi/appsettings.json
|
||||
dest: /opt/appdata/{{pgrole}}/appsettings.json
|
||||
owner: '1000'
|
||||
group: '1000'
|
||||
mode: 0775
|
||||
when: not jsoncheck.stat.exists
|
||||
force: no
|
||||
ignore_errors: True
|
||||
when: jsonfile.stat.exists == False
|
||||
|
||||
# LABELS ######################################################################
|
||||
- name: 'Adding Traefik'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
traefik.port: '{{intport}}'
|
||||
|
||||
traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}'
|
||||
#traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/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'
|
||||
set_fact:
|
||||
@@ -60,6 +70,7 @@
|
||||
PGID: '1000'
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
name: '{{pgrole}}'
|
||||
@@ -28,7 +28,7 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
|
||||
@@ -31,7 +31,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -13,13 +13,11 @@
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: 'qbittorrent'
|
||||
intport: '8998'
|
||||
extport: '8998'
|
||||
intport1: '8118'
|
||||
extport1: '8118'
|
||||
intport2: '6881'
|
||||
extport2: '6881'
|
||||
pgrole: 'qbittorrent-vpn'
|
||||
intport: '8080'
|
||||
extport: '8098'
|
||||
intport2: '8118'
|
||||
extport2: '8118'
|
||||
dnsserver1: '1.1.1.1'
|
||||
dnsserver2: '84.200.69.80'
|
||||
dnsserver3: '37.235.1.174'
|
||||
@@ -45,15 +43,24 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
@@ -72,9 +79,6 @@
|
||||
NAME_SERVERS: '{{dnsserver1}},{{dnsserver2}},{{dnsserver3}},{{dnsserver4}}'
|
||||
DEBUG: 'false'
|
||||
WEBUI_PORT: '{{intport}}'
|
||||
|
||||
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Checking for existing app data'
|
||||
@@ -89,7 +93,6 @@
|
||||
pull: yes
|
||||
published_ports:
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
- '{{ports.stdout}}{{extport1}}:{{intport1}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
volumes: '{{pg_volumes}}'
|
||||
env: '{{pg_env}}'
|
||||
@@ -123,6 +126,14 @@
|
||||
name: '{{pgrole}}'
|
||||
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
|
||||
ini_file:
|
||||
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
|
||||
@@ -131,7 +142,6 @@
|
||||
value: '{{path.stdout}}/downloads/{{pgrole}}'
|
||||
state: present
|
||||
|
||||
|
||||
- name: Set TempPathEnabled
|
||||
ini_file:
|
||||
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
|
||||
@@ -142,19 +152,18 @@
|
||||
|
||||
- name: Get latest blocklist
|
||||
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'
|
||||
stat:
|
||||
path: '/opt/appdata/{{pgrole}}/openvpn'
|
||||
register: ovpncheck
|
||||
|
||||
- name: Initialize opvn
|
||||
- name: Initialize opvn
|
||||
block:
|
||||
- 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
|
||||
when: not ovpncheck.stat.exists
|
||||
|
||||
|
||||
# FIRST TIME CONFIGURATION ####################################################
|
||||
- name: 'Configuring {{pgrole}} for first time use'
|
||||
block:
|
||||
@@ -286,7 +295,7 @@
|
||||
value: false
|
||||
force: yes
|
||||
state: present
|
||||
|
||||
|
||||
- name: Set ServerDomains
|
||||
ini_file:
|
||||
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
|
||||
@@ -339,7 +348,7 @@
|
||||
value: '/config/qBittorrent/config/biglist.p2p'
|
||||
force: yes
|
||||
state: present
|
||||
|
||||
|
||||
- name: Set default login
|
||||
ini_file:
|
||||
path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf'
|
||||
@@ -348,9 +357,9 @@
|
||||
value: '@ByteArray(22f616dbc8cdb4aa96105b1c8f36ea63)'
|
||||
force: yes
|
||||
state: present
|
||||
|
||||
|
||||
when: not confcheck.stat.exists
|
||||
- name: Restart {{pgrole}}
|
||||
docker_container:
|
||||
name: '{{pgrole}}'
|
||||
state: started
|
||||
state: started
|
||||
|
||||
@@ -28,16 +28,26 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -28,16 +28,26 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -39,6 +48,7 @@
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt/unionfs:/unionfs:rw'
|
||||
- '/mnt:/mnt:rw'
|
||||
- '/opt/appdata/plexguide:/host_rcloneconf_folder:ro'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
@@ -46,8 +56,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (rdp-calibre)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -47,10 +56,9 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
WIDTH: '1280'
|
||||
HEIGHT: '720'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
@@ -59,7 +67,7 @@
|
||||
pull: yes
|
||||
published_ports:
|
||||
- '{{ports.stdout}}{{extport}}:{{intport}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
- '{{ports.stdout}}{{extport2}}:{{intport2}}'
|
||||
volumes: '{{pg_volumes}}'
|
||||
env: '{{pg_env}}'
|
||||
restart_policy: unless-stopped
|
||||
|
||||
@@ -47,7 +47,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: 'rflood'
|
||||
pgrole: 'rflood-vpn'
|
||||
intport: '80'
|
||||
extport: '5896'
|
||||
image: 'h1f0x/rtorrent-flood-openvpn'
|
||||
@@ -40,17 +40,24 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
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'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
|
||||
- name: 'Including folders'
|
||||
include_tasks: '/opt/communityapps/apps/_downloaders.yml'
|
||||
|
||||
- name: 'Ini Check'
|
||||
|
||||
- name: Checking for existing app data
|
||||
stat:
|
||||
path: /opt/appdata/{{pgrole}}/core.conf
|
||||
register: inicheck
|
||||
path: '/opt/appdata/{{pgrole}}/rutorrent/rtorrent/rtorrent.rc'
|
||||
register: rccheck
|
||||
|
||||
# LABELS ######################################################################
|
||||
- name: 'Adding Traefik'
|
||||
@@ -40,17 +40,25 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
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'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/sock:/run/php'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
@@ -76,3 +84,234 @@
|
||||
privileged: yes
|
||||
state: started
|
||||
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.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'
|
||||
set_fact:
|
||||
@@ -50,7 +60,6 @@
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/mnt:/mnt'
|
||||
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -29,16 +29,26 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -29,16 +29,26 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
set_fact:
|
||||
pg_env:
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (danisla/subsonic)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -43,7 +52,6 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
@@ -61,4 +69,4 @@
|
||||
aliases:
|
||||
- '{{pgrole}}'
|
||||
state: started
|
||||
labels: '{{pg_labels}}'
|
||||
labels: '{{pg_labels}}'
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
intport: '8088'
|
||||
extport: '8088'
|
||||
intport2: '8089'
|
||||
extport2: '8089'
|
||||
extport2: '8102'
|
||||
image: 'starbix/synclounge'
|
||||
|
||||
# CORE (MANDATORY) ############################################################
|
||||
|
||||
@@ -40,7 +40,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -41,7 +41,17 @@
|
||||
traefik.enable: 'false'
|
||||
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'
|
||||
|
||||
# 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,
|
||||
"vim": false,
|
||||
"columns": "name-size-date-owner-mode"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
"format": 1
|
||||
}{
|
||||
"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.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'
|
||||
set_fact:
|
||||
|
||||
@@ -29,14 +29,24 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/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'
|
||||
|
||||
- name: 'Setting PG ENV'
|
||||
|
||||
@@ -27,12 +27,12 @@
|
||||
|
||||
- name: Checking for existing rss folder
|
||||
stat:
|
||||
path: "/opt/appdata/{{pgrole}}/rss"
|
||||
path: '/opt/appdata/{{pgrole}}/rss'
|
||||
register: rsscheck
|
||||
|
||||
- name: Checking for existing rss config
|
||||
stat:
|
||||
path: "/opt/appdata/{{pgrole}}/rss/transmission-rss.conf"
|
||||
path: '/opt/appdata/{{pgrole}}/rss/transmission-rss.conf'
|
||||
register: cfgcheck
|
||||
|
||||
# LABELS ######################################################################
|
||||
@@ -42,15 +42,24 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
- '{{path.stdout}}:{{path.stdout}}'
|
||||
- '/mnt:/mnt'
|
||||
- '/opt/appdata/{{pgrole}}:/config'
|
||||
|
||||
- name: 'Setting {{pgrole2}} Volumes'
|
||||
set_fact:
|
||||
@@ -120,13 +129,13 @@
|
||||
- name: 'RSS feed configuration - Folder'
|
||||
block:
|
||||
- name: 'Creating RSS folder'
|
||||
shell: "mkdir /opt/appdata/{{pgrole}}/rss"
|
||||
shell: 'mkdir /opt/appdata/{{pgrole}}/rss'
|
||||
when: not rsscheck.stat.exists
|
||||
|
||||
- name: 'RSS feed configuration - Config'
|
||||
block:
|
||||
- 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
|
||||
|
||||
- name: 'Deploying {{pgrole2}}'
|
||||
@@ -143,7 +152,7 @@
|
||||
|
||||
- name: 'Wait for {{pgrole}} to initialize'
|
||||
wait_for: timeout=30
|
||||
|
||||
|
||||
- name: 'Stopping {{pgrole}}. Go configure ENV values.'
|
||||
docker_container:
|
||||
name: '{{pgrole}}'
|
||||
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
intport2: '10001/udp'
|
||||
extport2: '10001'
|
||||
intport3: '8080/tcp'
|
||||
extport3: '8088'
|
||||
extport3: '8103'
|
||||
intport4: '8081/tcp'
|
||||
extport4: '8081'
|
||||
intport5: '8443/tcp'
|
||||
@@ -35,23 +35,22 @@
|
||||
- name: 'Adding Traefik'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.enable: 'true'
|
||||
traefik.tags: 'frontend'
|
||||
traefik.frontend.passHostHeader: 'true'
|
||||
traefik.backend: '{{pgrole}}'
|
||||
traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}'
|
||||
traefik.admin.port: '{{intport5}}'
|
||||
traefik.admin.protocol: 'https'
|
||||
traefik.frontend.headers.SSLRedirect: 'true'
|
||||
traefik.frontend.headers.STSSeconds: '315360000'
|
||||
traefik.frontend.headers.browserXSSFilter: 'true'
|
||||
traefik.frontend.headers.contentTypeNosniff: 'true'
|
||||
traefik.frontend.headers.forceSTSHeader: 'true'
|
||||
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
|
||||
traefik.frontend.headers.STSIncludeSubdomains: 'true'
|
||||
traefik.frontend.headers.STSPreload: 'true'
|
||||
traefik.frontend.headers.frameDeny: 'true'
|
||||
|
||||
traefik.enable: 'true'
|
||||
traefik.tags: 'frontend'
|
||||
traefik.frontend.passHostHeader: 'true'
|
||||
traefik.backend: '{{pgrole}}'
|
||||
traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
|
||||
traefik.admin.port: '{{intport5}}'
|
||||
traefik.admin.protocol: 'https'
|
||||
traefik.frontend.headers.SSLRedirect: 'true'
|
||||
traefik.frontend.headers.STSSeconds: '315360000'
|
||||
traefik.frontend.headers.browserXSSFilter: 'true'
|
||||
traefik.frontend.headers.contentTypeNosniff: 'true'
|
||||
traefik.frontend.headers.forceSTSHeader: 'true'
|
||||
traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
|
||||
traefik.frontend.headers.STSIncludeSubdomains: 'true'
|
||||
traefik.frontend.headers.STSPreload: 'true'
|
||||
|
||||
- name: 'Setting PG Volumes'
|
||||
set_fact:
|
||||
pg_volumes:
|
||||
@@ -63,8 +62,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -32,7 +32,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Title: PGBlitz (consol/ubuntu-xfce-vnc)
|
||||
# Author(s): MrDoob
|
||||
# URL: https://pgblitz.com - http://github.pgblitz.com
|
||||
# GNU: General Public License v3.0
|
||||
# GNU: General Public License v3.0
|
||||
################################################################################
|
||||
---
|
||||
- hosts: localhost
|
||||
@@ -28,7 +28,16 @@
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
@@ -44,8 +53,7 @@
|
||||
pg_env:
|
||||
PUID: '1000'
|
||||
PGID: '1000'
|
||||
TZ: '${TZ}'
|
||||
|
||||
|
||||
# MAIN DEPLOYMENT #############################################################
|
||||
- name: 'Deploying {{pgrole}}'
|
||||
docker_container:
|
||||
|
||||
@@ -30,7 +30,16 @@
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -9,30 +9,39 @@
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
# CORE (MANDATORY) DO NOT CHANGE ###########################################
|
||||
|
||||
- name: 'Set Known Facts'
|
||||
set_fact:
|
||||
pgrole: "zammad"
|
||||
intport: "80"
|
||||
extport: "8777"
|
||||
image: "zammad/zammad"
|
||||
pgrole: 'zammad'
|
||||
intport: '80'
|
||||
extport: '8777'
|
||||
image: 'zammad/zammad'
|
||||
|
||||
- name: 'Including cron job'
|
||||
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'
|
||||
set_fact:
|
||||
pg_labels:
|
||||
traefik.frontend.auth.forward.address: '{{gauth}}'
|
||||
traefik.enable: 'true'
|
||||
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'
|
||||
set_fact:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
|
||||
Reference in New Issue
Block a user