From ea04517bbe77e49c3231102ed0b51b7934bd10d0 Mon Sep 17 00:00:00 2001 From: timekills Date: Fri, 21 Jun 2019 01:45:22 +0430 Subject: [PATCH 01/39] Ported host (PGBlitz) rclone.conf to Docker container In RcloneBrowser's File:Preferences where it asks for the rclone.conf file, the host (PGBlitz's) directory containing rclone.conf is ported to the Docker container as Read Only. -Update the rclone.conf file through the File then Preferences setting in the GUI.Choose the rclone.conf file in the "host_rcloneconf_folder" directory. --- apps/rclonebrowser.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index 876bff1..c9bb3aa 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -39,6 +39,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' From d4d6b9b338c8970e6a185b3646a3f605dbf1b679 Mon Sep 17 00:00:00 2001 From: timekills Date: Sat, 22 Jun 2019 17:54:44 +0430 Subject: [PATCH 02/39] Create ombiHDR.yml --- apps/ombiHDR.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 apps/ombiHDR.yml diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml new file mode 100644 index 0000000..e9f87f5 --- /dev/null +++ b/apps/ombiHDR.yml @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Title: OmbiHDR +# Author(s): Admin9705; timekills mod +# 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: 'ombiHDR' + intport: '3579' + extport: '3581' + image: 'linuxserver/ombi' + + # CORE (MANDATORY) ############################################################ + - name: 'Including cron job' + include_tasks: '/opt/coreapps/apps/_core.yml' + + # PRETASKS #################################################################### + - name: Check JSON exists + stat: + path: '/opt/appdata/{{pgrole}}/appsettings.json' + register: jsonfile + + - 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' + force: no + ignore_errors: True + when: jsonfile.stat.exists == False + + # 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' + - '/etc/localtime:/etc/localtime:ro' + - '/opt/appdata/{{pgrole}}/appsettings.json:/opt/{{pgrole}}/appsettings.json' + + - name: 'Setting PG ENV' + set_fact: + pg_env: + PUID: '1000' + PGID: '1000' + + # MAIN DEPLOYMENT ############################################################# + + - name: 'Deploying {{pgrole}}' + docker_container: + name: '{{pgrole}}' + image: '{{image}}' + pull: yes + published_ports: + - '{{ports.stdout}}{{extport}}:{{intport}}' + volumes: '{{pg_volumes}}' + env: '{{pg_env}}' + restart_policy: unless-stopped + networks: + - name: plexguide + aliases: + - '{{pgrole}}' + state: started + labels: '{{pg_labels}}' From e468a44e042262766ec573a398519ed27e24851b Mon Sep 17 00:00:00 2001 From: MrDoobPG <46342172+MrDoobPG@users.noreply.github.com> Date: Sat, 22 Jun 2019 18:14:21 +0200 Subject: [PATCH 03/39] Update domoticz.yml --- apps/domoticz.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/domoticz.yml b/apps/domoticz.yml index 4054ac5..ee465ea 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -19,7 +19,6 @@ extport2: '6144' intport3: '1443/tcp' extport3: '1443' - image: 'linuxserver/domoticz:stable' # CORE (MANDATORY) ############################################################ @@ -47,7 +46,7 @@ PUID: '1000' PGID: '1000' TZ: '${TZ}' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: From 4d9823cdfe6b9fcb4745cfd9b5d30c76dc66a214 Mon Sep 17 00:00:00 2001 From: MrDoobPG <46342172+MrDoobPG@users.noreply.github.com> Date: Sat, 22 Jun 2019 19:05:44 +0200 Subject: [PATCH 04/39] Update domoticz.yml Puah --- apps/domoticz.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/domoticz.yml b/apps/domoticz.yml index ee465ea..425176a 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -56,8 +56,7 @@ published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}' - - '{{ports.stdout}}{{extport3}}:{{intport3}}' - - '{{ports.stdout}}{{extport4}}:{{intport4}}' + - '{{ports.stdout}}{{extport3}}:{{intport3}}'}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped From f139de00bbe466a2bab1b95488e253f514d17e1b Mon Sep 17 00:00:00 2001 From: MrDoobPG <46342172+MrDoobPG@users.noreply.github.com> Date: Sat, 22 Jun 2019 19:55:22 +0200 Subject: [PATCH 05/39] Update domoticz.yml Push v3 --- apps/domoticz.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/domoticz.yml b/apps/domoticz.yml index 425176a..63ed8d3 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -56,7 +56,7 @@ published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}' - - '{{ports.stdout}}{{extport3}}:{{intport3}}'}}' + - '{{ports.stdout}}{{extport3}}:{{intport3}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped From 56db76fd5de7ce6da4efaa58a75f1bf351f433d5 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sun, 23 Jun 2019 12:00:16 -0700 Subject: [PATCH 06/39] fix --- apps/_appsgen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/_appsgen.sh b/apps/_appsgen.sh index aa87c16..3f4754d 100644 --- a/apps/_appsgen.sh +++ b/apps/_appsgen.sh @@ -7,7 +7,7 @@ ################################################################################ # Generates App List -ls -la /opt/coreapps/apps/ | sed -e 's/.yml//g' \ +ls -la /opt/communityapps/apps/ | sed -e 's/.yml//g' \ | awk '{print $9}' | tail -n +4 > /var/plexguide/app.list ls -la /opt/mycontainers/ | sed -e 's/.yml//g' \ From 886ff9f1012a501ee03ab58105004edd0f1218d9 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Tue, 25 Jun 2019 19:04:03 -0700 Subject: [PATCH 07/39] fix --- apps/templates/broken/nzbthrottle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml index ac56db7..550ecaf 100644 --- a/apps/templates/broken/nzbthrottle.yml +++ b/apps/templates/broken/nzbthrottle.yml @@ -21,7 +21,7 @@ - name: 'Including cron job' include_tasks: '/opt/communityapps/apps/_core.yml' - - name: 'Checking {{pgrole}}'s json existance' + - name: 'Checking {{pgrole}} for existing app data' stat: path: '/opt/communityapps/apps/templates/{{pgrole}}/config.json' register: jsoncheck From 06d3121aab49cebe965d19b8f01433dd2fd5c77e Mon Sep 17 00:00:00 2001 From: CasperNielsen <27451397+CasperNielsen@users.noreply.github.com> Date: Fri, 28 Jun 2019 11:10:38 +0200 Subject: [PATCH 08/39] Update deluge.yml Edited True values to true, Deluge 2.0 is case sensitive. --- apps/deluge.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/deluge.yml b/apps/deluge.yml index 7918f6e..1450fe4 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -134,14 +134,14 @@ 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 @@ -165,7 +165,7 @@ 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 +186,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 +228,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 From be3f7eb3e275acd885f26745e7a26f7dbfbbe809 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Tue, 9 Jul 2019 23:17:52 -0700 Subject: [PATCH 09/39] shield fix --- apps/_appsgen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/_appsgen.sh b/apps/_appsgen.sh index 3f4754d..a0e5ccd 100644 --- a/apps/_appsgen.sh +++ b/apps/_appsgen.sh @@ -8,7 +8,7 @@ # Generates App List ls -la /opt/communityapps/apps/ | sed -e 's/.yml//g' \ -| awk '{print $9}' | tail -n +4 > /var/plexguide/app.list +| awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list ls -la /opt/mycontainers/ | sed -e 's/.yml//g' \ | awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list From 1eb59dc5ebfed5d0a01845ab3e44310701a7358c Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Wed, 10 Jul 2019 12:26:42 -0700 Subject: [PATCH 10/39] fix --- apps/_cron.list | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/_cron.list b/apps/_cron.list index 51857fe..d7eff0f 100644 --- a/apps/_cron.list +++ b/apps/_cron.list @@ -4,3 +4,4 @@ netdata alltube dockergc blitzui +watchtower From 142817d166177f2821c5d8b578eb032bba32353c Mon Sep 17 00:00:00 2001 From: Ryan Fisher Date: Thu, 11 Jul 2019 09:44:32 -0500 Subject: [PATCH 11/39] Don't let the community appsgen.sh clobber the core, just append --- apps/_appsgen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/_appsgen.sh b/apps/_appsgen.sh index 3f4754d..a0e5ccd 100644 --- a/apps/_appsgen.sh +++ b/apps/_appsgen.sh @@ -8,7 +8,7 @@ # Generates App List ls -la /opt/communityapps/apps/ | sed -e 's/.yml//g' \ -| awk '{print $9}' | tail -n +4 > /var/plexguide/app.list +| awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list ls -la /opt/mycontainers/ | sed -e 's/.yml//g' \ | awk '{print $9}' | tail -n +4 >> /var/plexguide/app.list From b392f73a1b5c90ef591bd871eab7d7cffc7ee73a Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Thu, 11 Jul 2019 16:06:19 -0700 Subject: [PATCH 12/39] vpn volume fixes --- apps/qbittorrent-vpn.yml | 4 ++-- apps/rflood-vpn.yml | 8 +++----- apps/rutorrent-vpn.yml | 9 ++++----- apps/transmission-vpn.yml | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index 5c4e955..74d5c73 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -51,9 +51,9 @@ 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: @@ -353,4 +353,4 @@ - name: Restart {{pgrole}} docker_container: name: '{{pgrole}}' - state: started \ No newline at end of file + state: started diff --git a/apps/rflood-vpn.yml b/apps/rflood-vpn.yml index 331cbe3..c5cd676 100644 --- a/apps/rflood-vpn.yml +++ b/apps/rflood-vpn.yml @@ -45,12 +45,10 @@ - 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: diff --git a/apps/rutorrent-vpn.yml b/apps/rutorrent-vpn.yml index 4824609..efc5406 100644 --- a/apps/rutorrent-vpn.yml +++ b/apps/rutorrent-vpn.yml @@ -45,12 +45,11 @@ - 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: diff --git a/apps/transmission-vpn.yml b/apps/transmission-vpn.yml index 0ff2e20..254e2c8 100644 --- a/apps/transmission-vpn.yml +++ b/apps/transmission-vpn.yml @@ -48,9 +48,9 @@ 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: From 9e4c6bfd826af13f4559cbd104eff092740af02e Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Thu, 11 Jul 2019 16:10:25 -0700 Subject: [PATCH 13/39] fixes --- apps/jd2-openvpn.yml | 9 ++++----- apps/jdownloader2.yml | 9 ++++----- apps/makemkv.yml | 8 ++++---- apps/nzbget-mp4.yml | 2 +- apps/ombi4k.yml | 2 +- apps/ombiHDR.yml | 2 +- apps/radarr4k.yml | 4 ++-- apps/radarrhdr.yml | 4 ++-- apps/sonarr4k.yml | 4 ++-- apps/sonarrhdr.yml | 4 ++-- apps/templates/broken/kodi-headless.yml | 5 +++-- apps/traktor.yml | 5 +++-- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/apps/jd2-openvpn.yml b/apps/jd2-openvpn.yml index 9a0b600..26cf971 100644 --- a/apps/jd2-openvpn.yml +++ b/apps/jd2-openvpn.yml @@ -49,12 +49,11 @@ - 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' diff --git a/apps/jdownloader2.yml b/apps/jdownloader2.yml index b3e56b8..addee0d 100644 --- a/apps/jdownloader2.yml +++ b/apps/jdownloader2.yml @@ -49,12 +49,11 @@ - 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: diff --git a/apps/makemkv.yml b/apps/makemkv.yml index 70d4c8e..5171a58 100644 --- a/apps/makemkv.yml +++ b/apps/makemkv.yml @@ -36,11 +36,11 @@ - 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: diff --git a/apps/nzbget-mp4.yml b/apps/nzbget-mp4.yml index 33a33ad..3303ba7 100644 --- a/apps/nzbget-mp4.yml +++ b/apps/nzbget-mp4.yml @@ -138,9 +138,9 @@ 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' diff --git a/apps/ombi4k.yml b/apps/ombi4k.yml index 7674cc2..fcfd8f1 100644 --- a/apps/ombi4k.yml +++ b/apps/ombi4k.yml @@ -50,8 +50,8 @@ - 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' diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml index e9f87f5..61d0a23 100644 --- a/apps/ombiHDR.yml +++ b/apps/ombiHDR.yml @@ -50,8 +50,8 @@ - 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' diff --git a/apps/radarr4k.yml b/apps/radarr4k.yml index 7c3a2cd..4437ba2 100644 --- a/apps/radarr4k.yml +++ b/apps/radarr4k.yml @@ -33,10 +33,10 @@ - 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' - name: 'Setting PG ENV' set_fact: diff --git a/apps/radarrhdr.yml b/apps/radarrhdr.yml index 8c468d7..b9674b2 100644 --- a/apps/radarrhdr.yml +++ b/apps/radarrhdr.yml @@ -33,10 +33,10 @@ - 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' - name: 'Setting PG ENV' set_fact: diff --git a/apps/sonarr4k.yml b/apps/sonarr4k.yml index fe4fbaf..f3aa995 100644 --- a/apps/sonarr4k.yml +++ b/apps/sonarr4k.yml @@ -34,10 +34,10 @@ - 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' - name: 'Setting PG ENV' set_fact: diff --git a/apps/sonarrhdr.yml b/apps/sonarrhdr.yml index 3a80027..22699eb 100644 --- a/apps/sonarrhdr.yml +++ b/apps/sonarrhdr.yml @@ -34,10 +34,10 @@ - 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' - name: 'Setting PG ENV' set_fact: diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml index 88ccc68..06e07b7 100644 --- a/apps/templates/broken/kodi-headless.yml +++ b/apps/templates/broken/kodi-headless.yml @@ -37,9 +37,10 @@ - name: 'Setting PG Volumes' set_fact: pg_volumes: - - '/opt/appdata/{{pgrole}}/config:/config/.kodi:rw' - - '/mnt:/mnt:rw' - '/etc/localtime:/etc/localtime:ro' + - '{{path.stdout}}:{{path.stdout}}' + - '/mnt:/mnt' + - '/opt/appdata/{{pgrole}}/config:/config/.kodi:rw' - name: 'Setting PG ENV' set_fact: diff --git a/apps/traktor.yml b/apps/traktor.yml index 4452565..56e0d67 100644 --- a/apps/traktor.yml +++ b/apps/traktor.yml @@ -34,9 +34,10 @@ - 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' From 067ef0515b14c8d8a119a13d23c48c43a762b265 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 13 Jul 2019 19:15:40 -0700 Subject: [PATCH 14/39] not needed env --- apps/airsonic.yml | 1 - apps/domoticz.yml | 1 - apps/filebot.yml | 1 - apps/flextv.yml | 1 - apps/mediainfo.yml | 1 - apps/rclonebrowser.yml | 1 - apps/rdp-calibre.yml | 1 - apps/subsonic.yml | 3 +-- apps/templates/broken/kodi-headless.yml | 1 - apps/unifi.yml | 1 - apps/vnc-xfce.yml | 1 - 11 files changed, 1 insertion(+), 12 deletions(-) diff --git a/apps/airsonic.yml b/apps/airsonic.yml index 369bc0e..733afac 100644 --- a/apps/airsonic.yml +++ b/apps/airsonic.yml @@ -45,7 +45,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/domoticz.yml b/apps/domoticz.yml index 63ed8d3..dc35552 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -45,7 +45,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/filebot.yml b/apps/filebot.yml index 5fd6f77..7ba2310 100644 --- a/apps/filebot.yml +++ b/apps/filebot.yml @@ -45,7 +45,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/flextv.yml b/apps/flextv.yml index 4c69656..ee73fbf 100644 --- a/apps/flextv.yml +++ b/apps/flextv.yml @@ -41,7 +41,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/mediainfo.yml b/apps/mediainfo.yml index a989491..026f6b5 100644 --- a/apps/mediainfo.yml +++ b/apps/mediainfo.yml @@ -46,7 +46,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index c9bb3aa..d8ad471 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -47,7 +47,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/rdp-calibre.yml b/apps/rdp-calibre.yml index 8b5576d..41f6d98 100644 --- a/apps/rdp-calibre.yml +++ b/apps/rdp-calibre.yml @@ -47,7 +47,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' WIDTH: '1280' HEIGHT: '720' diff --git a/apps/subsonic.yml b/apps/subsonic.yml index bb68be9..b81db75 100644 --- a/apps/subsonic.yml +++ b/apps/subsonic.yml @@ -43,7 +43,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' @@ -61,4 +60,4 @@ aliases: - '{{pgrole}}' state: started - labels: '{{pg_labels}}' \ No newline at end of file + labels: '{{pg_labels}}' diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml index 06e07b7..ff51a2e 100644 --- a/apps/templates/broken/kodi-headless.yml +++ b/apps/templates/broken/kodi-headless.yml @@ -47,7 +47,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/unifi.yml b/apps/unifi.yml index ed6cef6..403107d 100644 --- a/apps/unifi.yml +++ b/apps/unifi.yml @@ -63,7 +63,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' diff --git a/apps/vnc-xfce.yml b/apps/vnc-xfce.yml index 7ee217d..54b8739 100644 --- a/apps/vnc-xfce.yml +++ b/apps/vnc-xfce.yml @@ -44,7 +44,6 @@ pg_env: PUID: '1000' PGID: '1000' - TZ: '${TZ}' # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' From e3c685e5b9c9bae86d7b3448e8067e4d68954184 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Wed, 17 Jul 2019 01:00:02 -0700 Subject: [PATCH 15/39] formatting --- apps/_appsgen.sh | 8 +- apps/_core.yml | 3 +- apps/_downloaders.yml | 4 +- apps/airsonic.yml | 6 +- apps/avidemux.yml | 4 +- apps/beets.yml | 2 +- apps/bitwarden.yml | 2 +- apps/deezloaderremix.yml | 2 +- apps/deluge.yml | 2 +- apps/embystats.yml | 16 +- apps/filebot.yml | 4 +- apps/filezilla.yml | 1 - apps/firefox.yml | 4 +- apps/flextv.yml | 2 +- apps/gazee.yml | 16 +- apps/gitea.yml | 10 +- apps/handbrake.yml | 14 +- apps/image/_image.sh | 44 ++-- apps/jdownloader2.yml | 2 +- apps/makemkv.yml | 2 +- apps/mariadb.yml | 14 +- apps/mediainfo.yml | 4 +- apps/medusa.yml | 16 +- apps/mkvtoolnix.yml | 6 +- apps/nzbget-mp4.yml | 2 +- apps/qbittorrent-vpn.yml | 15 +- apps/rclonebrowser.yml | 2 +- apps/rdp-calibre.yml | 6 +- apps/sharesite.yml | 1 - apps/subsonic.yml | 2 +- apps/templates/cloudcmd/cloudcmd.json | 2 +- .../deluge/plugins/autoremoveplus.conf | 36 +-- apps/templates/deluge/plugins/execute.conf | 16 +- apps/templates/deluge/plugins/extractor.conf | 2 +- .../deluge/scripts/deluge_extract.sh | 9 +- .../nzbget/MP4_Automator/TEMPLATEPPScript | 75 +++--- .../nzbget/MP4_Automator/autoProcess.ini | 1 - apps/templates/nzbget/cont-init.d/30-config | 8 +- .../nzbget/ffmpeg-build/build-ffmpeg | 145 ++++++------ .../nzbget/ffmpeg-build/web-install.sh | 11 +- .../templates/nzbget/scripts/DeleteSamples.py | 16 +- apps/templates/nzbget/scripts/flatten.py | 13 +- apps/templates/nzbget/scripts/hash.py | 25 +- .../nzbget/scripts/rarfile/__init__.py | 1 - .../nzbget/scripts/rarfile/rarfile.py | 223 ++++++++++++------ apps/templates/nzbget/scripts/reverse_name.py | 63 +++-- apps/templates/nzbget/scripts/unzip.py | 66 ++++-- apps/transmission-vpn.yml | 10 +- apps/unifi.yml | 36 +-- apps/vnc-xfce.yml | 4 +- apps/zammad.yml | 16 +- place.holder | 1 - 52 files changed, 567 insertions(+), 428 deletions(-) diff --git a/apps/_appsgen.sh b/apps/_appsgen.sh index a0e5ccd..9032169 100644 --- a/apps/_appsgen.sh +++ b/apps/_appsgen.sh @@ -7,11 +7,11 @@ ################################################################################ # Generates 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/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 diff --git a/apps/_core.yml b/apps/_core.yml index 28f7047..d1779ca 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -48,8 +48,8 @@ shell: "echo '{{pgrole}}' > /tmp/program_var" ignore_errors: True - # APPDATA + # APPDATA - name: 'Creating appdata folder if it does not exist.' shell: 'mkdir -p /opt/appdata/{{pgrole}}' @@ -69,7 +69,6 @@ shell: 'chmod -R 775 /opt/appdata/{{pgrole}}' when: '"plex" not in pgrole' - # OVERWRITE IMAGES ############################################################# - name: Check if Image Variable Exists stat: diff --git a/apps/_downloaders.yml b/apps/_downloaders.yml index 3836511..bc17eb4 100644 --- a/apps/_downloaders.yml +++ b/apps/_downloaders.yml @@ -1,9 +1,9 @@ - name: Creating download paths file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000' with_items: - - '{{path.stdout}}/downloads/{{pgrole}}' + - '{{path.stdout}}/downloads/{{pgrole}}' - name: Creating incomplete paths file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000' with_items: - - '{{path.stdout}}/incomplete/{{pgrole}}' + - '{{path.stdout}}/incomplete/{{pgrole}}' diff --git a/apps/airsonic.yml b/apps/airsonic.yml index 733afac..e6f56ae 100644 --- a/apps/airsonic.yml +++ b/apps/airsonic.yml @@ -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) ############################################################ @@ -45,7 +45,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/avidemux.yml b/apps/avidemux.yml index 8b78e56..542fb40 100644 --- a/apps/avidemux.yml +++ b/apps/avidemux.yml @@ -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' diff --git a/apps/beets.yml b/apps/beets.yml index 90a3ce0..5daf87e 100644 --- a/apps/beets.yml +++ b/apps/beets.yml @@ -44,7 +44,7 @@ - '/etc/localtime:/etc/localtime:ro' - '{{path.stdout}}:{{path.stdout}}' - '/mnt:/mnt' - + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/bitwarden.yml b/apps/bitwarden.yml index f886a82..e7a29b0 100644 --- a/apps/bitwarden.yml +++ b/apps/bitwarden.yml @@ -26,7 +26,7 @@ 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}}' diff --git a/apps/deezloaderremix.yml b/apps/deezloaderremix.yml index c0a1354..2f42884 100644 --- a/apps/deezloaderremix.yml +++ b/apps/deezloaderremix.yml @@ -37,7 +37,7 @@ - '{{path.stdout}}:{{path.stdout}}' - '/etc/localtime:/etc/localtime:ro' - '/mnt:/mnt' - + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/deluge.yml b/apps/deluge.yml index 1450fe4..c24f3c2 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -94,7 +94,7 @@ path: '/opt/appdata/{{pgrole}}/core.conf' state: present delay: 5 - + - name: Setting plugins directory lineinfile: path: '/opt/appdata/{{pgrole}}/core.conf' diff --git a/apps/embystats.yml b/apps/embystats.yml index 9d67b7a..0279a9d 100644 --- a/apps/embystats.yml +++ b/apps/embystats.yml @@ -9,23 +9,23 @@ - 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: diff --git a/apps/filebot.yml b/apps/filebot.yml index 7ba2310..d1d1be9 100644 --- a/apps/filebot.yml +++ b/apps/filebot.yml @@ -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 @@ -45,7 +45,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/filezilla.yml b/apps/filezilla.yml index ac8c81d..786ffa5 100644 --- a/apps/filezilla.yml +++ b/apps/filezilla.yml @@ -75,7 +75,6 @@ - '{{pgrole}}' state: started labels: '{{pg_labels}}' - ##PG-Community ##PG-Community diff --git a/apps/firefox.yml b/apps/firefox.yml index c1bd84c..7bdd457 100644 --- a/apps/firefox.yml +++ b/apps/firefox.yml @@ -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' diff --git a/apps/flextv.yml b/apps/flextv.yml index ee73fbf..ff17e72 100644 --- a/apps/flextv.yml +++ b/apps/flextv.yml @@ -41,7 +41,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/gazee.yml b/apps/gazee.yml index ba2a63c..ebc880f 100644 --- a/apps/gazee.yml +++ b/apps/gazee.yml @@ -9,23 +9,23 @@ - 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: diff --git a/apps/gitea.yml b/apps/gitea.yml index 54324fa..7435a56 100644 --- a/apps/gitea.yml +++ b/apps/gitea.yml @@ -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#### @@ -38,22 +38,22 @@ 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}}' diff --git a/apps/handbrake.yml b/apps/handbrake.yml index d1013f4..5a4f43c 100644 --- a/apps/handbrake.yml +++ b/apps/handbrake.yml @@ -50,13 +50,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}}' diff --git a/apps/image/_image.sh b/apps/image/_image.sh index ee4ecdf..d034f5c 100644 --- a/apps/image/_image.sh +++ b/apps/image/_image.sh @@ -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 /tmp/display$count - count=$[count+1] -done /tmp/display$count + count=$((count + 1)) + done "/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 ############################################################ diff --git a/apps/jdownloader2.yml b/apps/jdownloader2.yml index addee0d..73cc145 100644 --- a/apps/jdownloader2.yml +++ b/apps/jdownloader2.yml @@ -45,7 +45,7 @@ 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: diff --git a/apps/makemkv.yml b/apps/makemkv.yml index 5171a58..608fe86 100644 --- a/apps/makemkv.yml +++ b/apps/makemkv.yml @@ -32,7 +32,7 @@ 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: diff --git a/apps/mariadb.yml b/apps/mariadb.yml index ed9ee65..78b11db 100644 --- a/apps/mariadb.yml +++ b/apps/mariadb.yml @@ -9,19 +9,19 @@ - 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: @@ -65,4 +65,4 @@ - name: 'Post Deployment Notes' debug: msg: |- - * Login Information * root:plexguide * This should be changed * \ No newline at end of file + * Login Information * root:plexguide * This should be changed * diff --git a/apps/mediainfo.yml b/apps/mediainfo.yml index 026f6b5..66fd6df 100644 --- a/apps/mediainfo.yml +++ b/apps/mediainfo.yml @@ -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 @@ -46,7 +46,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/medusa.yml b/apps/medusa.yml index ce96bfb..ed41edc 100644 --- a/apps/medusa.yml +++ b/apps/medusa.yml @@ -9,23 +9,23 @@ - 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: diff --git a/apps/mkvtoolnix.yml b/apps/mkvtoolnix.yml index e39bbd3..aa5607a 100644 --- a/apps/mkvtoolnix.yml +++ b/apps/mkvtoolnix.yml @@ -33,8 +33,8 @@ stat: path: /opt/appdata/{{pgrole}}/core.conf register: confcheck - - # LABELS ###################################################################### + + # LABELS ###################################################################### - name: 'Adding Traefik' set_fact: pg_labels: @@ -57,7 +57,7 @@ pg_env: USER_ID: '1000' GROUP_ID: '1000' -# SECURE_CONNECTION: 1 + # SECURE_CONNECTION: 1 # MAIN DEPLOYMENT ############################################################# diff --git a/apps/nzbget-mp4.yml b/apps/nzbget-mp4.yml index 3303ba7..ed9ae9e 100644 --- a/apps/nzbget-mp4.yml +++ b/apps/nzbget-mp4.yml @@ -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' diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index 74d5c73..75d9c18 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -72,9 +72,6 @@ NAME_SERVERS: '{{dnsserver1}},{{dnsserver2}},{{dnsserver3}},{{dnsserver4}}' DEBUG: 'false' WEBUI_PORT: '{{intport}}' - - - # MAIN DEPLOYMENT ############################################################# - name: 'Checking for existing app data' @@ -131,7 +128,6 @@ value: '{{path.stdout}}/downloads/{{pgrole}}' state: present - - name: Set TempPathEnabled ini_file: path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' @@ -142,19 +138,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 +281,7 @@ value: false force: yes state: present - + - name: Set ServerDomains ini_file: path: '/opt/appdata/{{pgrole}}/qBittorrent/config/qBittorrent.conf' @@ -339,7 +334,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,7 +343,7 @@ value: '@ByteArray(22f616dbc8cdb4aa96105b1c8f36ea63)' force: yes state: present - + when: not confcheck.stat.exists - name: Restart {{pgrole}} docker_container: diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index d8ad471..bdaa6bc 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -47,7 +47,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/rdp-calibre.yml b/apps/rdp-calibre.yml index 41f6d98..5520dc8 100644 --- a/apps/rdp-calibre.yml +++ b/apps/rdp-calibre.yml @@ -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 @@ -49,7 +49,7 @@ PGID: '1000' WIDTH: '1280' HEIGHT: '720' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: @@ -58,7 +58,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 diff --git a/apps/sharesite.yml b/apps/sharesite.yml index 91056a1..d095f07 100644 --- a/apps/sharesite.yml +++ b/apps/sharesite.yml @@ -50,7 +50,6 @@ - '/etc/localtime:/etc/localtime:ro' - '/mnt:/mnt' - - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/subsonic.yml b/apps/subsonic.yml index b81db75..8b07e92 100644 --- a/apps/subsonic.yml +++ b/apps/subsonic.yml @@ -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 diff --git a/apps/templates/cloudcmd/cloudcmd.json b/apps/templates/cloudcmd/cloudcmd.json index 8467513..3c0a36d 100644 --- a/apps/templates/cloudcmd/cloudcmd.json +++ b/apps/templates/cloudcmd/cloudcmd.json @@ -33,4 +33,4 @@ "showConfig": false, "vim": false, "columns": "name-size-date-owner-mode" -} \ No newline at end of file +} diff --git a/apps/templates/deluge/plugins/autoremoveplus.conf b/apps/templates/deluge/plugins/autoremoveplus.conf index f23c6ba..4947a11 100644 --- a/apps/templates/deluge/plugins/autoremoveplus.conf +++ b/apps/templates/deluge/plugins/autoremoveplus.conf @@ -1,23 +1,23 @@ { "file": 1, "format": 1 -}{ + }{ "interval": 1.0, - "max_seeds": 0, - "sel_func": "or", - "trackers": [], - "remove_data": true, - "labels": [], - "enabled": true, - "count_exempt": false, - "remove": true, - "filter": "func_ratio", - "tracker_rules": {}, - "min": 1.5, - "hdd_space": -1.0, - "filter2": "func_seed_time", - "rule_2_enabled": true, - "min2": 15.0, - "rule_1_enabled": true, + "max_seeds": 0, + "sel_func": "or", + "trackers": [], + "remove_data": true, + "labels": [], + "enabled": true, + "count_exempt": false, + "remove": true, + "filter": "func_ratio", + "tracker_rules": {}, + "min": 1.5, + "hdd_space": -1.0, + "filter2": "func_seed_time", + "rule_2_enabled": true, + "min2": 15.0, + "rule_1_enabled": true, "label_rules": {} -} \ No newline at end of file +} diff --git a/apps/templates/deluge/plugins/execute.conf b/apps/templates/deluge/plugins/execute.conf index f0f83b0..49f50b4 100644 --- a/apps/templates/deluge/plugins/execute.conf +++ b/apps/templates/deluge/plugins/execute.conf @@ -1,12 +1,12 @@ { - "file": 1, + "file": 1, "format": 1 -}{ + }{ "commands": [ - [ - "0", - "complete", - "/config/scripts/extract.sh" - ] + [ + "0", + "complete", + "/config/scripts/extract.sh" ] -} \ No newline at end of file + ] +} diff --git a/apps/templates/deluge/plugins/extractor.conf b/apps/templates/deluge/plugins/extractor.conf index 32e8ff4..af84fb3 100644 --- a/apps/templates/deluge/plugins/extractor.conf +++ b/apps/templates/deluge/plugins/extractor.conf @@ -1,7 +1,7 @@ { "file": 1, "format": 1 -}{ + }{ "use_name_folder": true, "extract_path": "/downloads/deluge/" } diff --git a/apps/templates/deluge/scripts/deluge_extract.sh b/apps/templates/deluge/scripts/deluge_extract.sh index 9c14361..689c021 100644 --- a/apps/templates/deluge/scripts/deluge_extract.sh +++ b/apps/templates/deluge/scripts/deluge_extract.sh @@ -11,8 +11,7 @@ torrentid=$1 torrentname=$2 torrentpath=$3 -log() -{ +log() { logger -t deluge-extractarchives "$@" } @@ -24,11 +23,11 @@ for format in "${formats[@]}"; do cd "$(dirname "$file")" file=$(basename "$file") # if extraction_subdir is not empty, extract to subdirectory - if [[ ! -z "$extraction_subdir" ]] ; then + if [[ ! -z "$extraction_subdir" ]]; then mkdir "$extraction_subdir" cd "$extraction_subdir" file="../$file" fi ${commands[$format]} "$file" - done < <(find "$torrentpath/$torrentname" -iname "*.${format}" ) -done \ No newline at end of file + done < <(find "$torrentpath/$torrentname" -iname "*.${format}") +done diff --git a/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript b/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript index 6eb7055..7a14ba8 100644 --- a/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript +++ b/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript @@ -14,31 +14,31 @@ ### OPTIONS ### # Change to full path to MP4 Automator folder. No quotes and a trailing / -#MP4_FOLDER=~/sickbeard_mp4_automator/ +# MP4_FOLDER=~/sickbeard_mp4_automator/ # Convert file before passing to destination (True, False) -#SHOULDCONVERT=False +# SHOULDCONVERT=False # Category for Couchpotato -#CP_CAT=Couchpotato +# CP_CAT=Couchpotato # Category for Sonarr -#SONARR_CAT=Sonarr +# SONARR_CAT=Sonarr # Category for Radarr -#RADARR_CAT=Radarr +# RADARR_CAT=Radarr # Category for Sickbeard -#SICKBEARD_CAT=Sickbeard +# SICKBEARD_CAT=Sickbeard # Category for Sickrage -#SICKRAGE_CAT=Sickrage +# SICKRAGE_CAT=Sickrage # Category list (comma seperated) for bypassing any further processing but still converting -#BYPASS_CAT=tv,movies +# BYPASS_CAT=tv,movies # Custom output_directory setting -#OUTPUT_DIR= +# OUTPUT_DIR= ### NZBGET POST-PROCESSING SCRIPT ### ############################################################################## @@ -56,7 +56,7 @@ MP4folder = MP4folder.replace("'", "") MP4folder = MP4folder.replace("\\", "/") if not(MP4folder.endswith("/")): MP4folder += "/" -#DEBUG#print MP4folder+" the original is "+os.environ['NZBPO_MP4_FOLDER'] +# DEBUG#print MP4folder+" the original is "+os.environ['NZBPO_MP4_FOLDER'] output_dir = None if 'NZBPO_OUTPUT_DIR' in os.environ: @@ -67,7 +67,7 @@ if 'NZBPO_OUTPUT_DIR' in os.environ: output_dir = output_dir.replace("\\", "/") if not(output_dir.endswith("/")): output_dir += "/" - #DEBUG#print Overriding output directory + # DEBUG#print Overriding output directory sys.path.append(MP4folder) try: @@ -77,7 +77,8 @@ try: import logging from logging.config import fileConfig except ImportError: - print("[ERROR] Wrong path to sickbeard_mp4_automator: " + os.environ['NZBPO_MP4_FOLDER']) + print("[ERROR] Wrong path to sickbeard_mp4_automator: " + + os.environ['NZBPO_MP4_FOLDER']) print("[ERROR] %s" % traceback.print_exc()) sys.exit(0) @@ -90,28 +91,32 @@ elif not os.path.isdir(logpath): os.mkdir(logpath) except: logpath = MP4folder -configPath = os.path.abspath(os.path.join(MP4folder, 'logging.ini')).replace("\\", "\\\\") -logPath = os.path.abspath(os.path.join(logpath, 'index.log')).replace("\\", "\\\\") +configPath = os.path.abspath(os.path.join( + MP4folder, 'logging.ini')).replace("\\", "\\\\") +logPath = os.path.abspath(os.path.join( + logpath, 'index.log')).replace("\\", "\\\\") fileConfig(configPath, defaults={'logfilename': logPath}) log = logging.getLogger("NZBGetPostProcess") # Determine if conversion will take place -shouldConvert = (os.environ['NZBPO_SHOULDCONVERT'].lower() in ("yes", "true", "t", "1")) +shouldConvert = (os.environ['NZBPO_SHOULDCONVERT'].lower() in ( + "yes", "true", "t", "1")) if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '11.0': log.info("Script triggered from NZBGet (11.0 or later).") path = os.environ['NZBPP_DIRECTORY'] # Path to NZB directory nzb = os.environ['NZBPP_NZBFILENAME'] # Original NZB name - category = os.environ['NZBPP_CATEGORY'] # NZB Category to determine destination - #DEBUG#print "Category is %s." % category + # NZB Category to determine destination + category = os.environ['NZBPP_CATEGORY'] + # DEBUG#print "Category is %s." % category couchcat = os.environ['NZBPO_CP_CAT'].lower() sonarrcat = os.environ['NZBPO_SONARR_CAT'].lower() radarrcat = os.environ['NZBPO_RADARR_CAT'].lower() sickbeardcat = os.environ['NZBPO_SICKBEARD_CAT'].lower() sickragecat = os.environ['NZBPO_SICKRAGE_CAT'].lower() - bypass = os.environ['NZBPO_BYPASS_CAT'].lower().replace(' ','').split(',') + bypass = os.environ['NZBPO_BYPASS_CAT'].lower().replace(' ', '').split(',') categories = [sickbeardcat, couchcat, sonarrcat, radarrcat, sickragecat] @@ -132,7 +137,8 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 status = 0 if os.environ['NZBOP_UNPACK'] != 'yes': - log.error("Please enable option \"Unpack\" in nzbget configuration file, exiting.") + log.error( + "Please enable option \"Unpack\" in nzbget configuration file, exiting.") sys.exit(POSTPROCESS_NONE) # Check par status @@ -159,26 +165,31 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 fileExtension = os.path.splitext(file)[1] if fileExtension in ['.par2']: - log.error("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\".") + log.error( + "Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\".") status = 1 break if os.path.isfile(os.path.join(os.environ['NZBPP_DIRECTORY'], "_brokenlog.txt")) and not status == 1: - log.error("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting.") + log.error( + "Post-Process: _brokenlog.txt exists, download is probably damaged, exiting.") status = 1 if not status == 1: - log.error("Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful.") + log.error( + "Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful.") # Check if destination directory exists (important for reprocessing of history items) if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - log.error("Post-Process: Nothing to post-process: destination directory ", os.environ['NZBPP_DIRECTORY'], "doesn't exist.") + log.error("Post-Process: Nothing to post-process: destination directory ", + os.environ['NZBPP_DIRECTORY'], "doesn't exist.") status = 1 sys.exit(POSTPROCESS_NONE) # Make sure one of the appropriate categories is set if category.lower() not in categories and category.lower() not in bypass: - log.error("Post-Process: No valid category detected. Category was %s." % (category)) + log.error( + "Post-Process: No valid category detected. Category was %s." % (category)) status = 1 sys.exit(POSTPROCESS_NONE) @@ -198,8 +209,8 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 for r, d, f in os.walk(path): for files in f: inputfile = os.path.join(r, files) - #DEBUG#print inputfile - #Ignores files under 50MB + # DEBUG#print inputfile + # Ignores files under 50MB if os.path.getsize(inputfile) > 50000000: if MkvtoMp4(settings, logger=log).validSource(inputfile): try: @@ -210,33 +221,33 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 if converter.output_dir: path = converter.output_dir if (category.lower() == categories[0]): - #DEBUG#print "Sickbeard Processing Activated" + # DEBUG#print "Sickbeard Processing Activated" autoProcessTV.processEpisode(path, settings, nzb) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() == categories[1]): - #DEBUG#print "CouchPotato Processing Activated" + # DEBUG#print "CouchPotato Processing Activated" autoProcessMovie.process(path, settings, nzb, status) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() == categories[2]): - #DEBUG#print "Sonarr Processing Activated" + # DEBUG#print "Sonarr Processing Activated" success = sonarr.processEpisode(path, settings, True) if success: sys.exit(POSTPROCESS_SUCCESS) else: sys.exit(POSTPROCESS_ERROR) elif (category.lower() == categories[3]): - #DEBUG#print "Radarr Processing Activated" + # DEBUG#print "Radarr Processing Activated" success = radarr.processMovie(path, settings, True) if success: sys.exit(POSTPROCESS_SUCCESS) else: sys.exit(POSTPROCESS_ERROR) elif (category.lower() == categories[4]): - #DEBUG#print "Sickrage Processing Activated" + # DEBUG#print "Sickrage Processing Activated" autoProcessTVSR.processEpisode(path, settings, nzb) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() in bypass): - #DEBUG#print "Bypass Further Processing" + # DEBUG#print "Bypass Further Processing" sys.exit(POSTPROCESS_NONE) else: diff --git a/apps/templates/nzbget/MP4_Automator/autoProcess.ini b/apps/templates/nzbget/MP4_Automator/autoProcess.ini index 8122743..65c5740 100644 --- a/apps/templates/nzbget/MP4_Automator/autoProcess.ini +++ b/apps/templates/nzbget/MP4_Automator/autoProcess.ini @@ -141,4 +141,3 @@ host = plex port = 32400 refresh = False token = - diff --git a/apps/templates/nzbget/cont-init.d/30-config b/apps/templates/nzbget/cont-init.d/30-config index deaaacd..79024ed 100644 --- a/apps/templates/nzbget/cont-init.d/30-config +++ b/apps/templates/nzbget/cont-init.d/30-config @@ -1,11 +1,11 @@ #!/usr/bin/with-contenv bash # delete lock file if found -[[ -f /downloads/nzbget.lock ]] && \ +[[ -f /downloads/nzbget.lock ]] && rm /downloads/nzbget.lock # check if config file exists in /config -[[ ! -f /config/nzbget.conf ]] && \ +[[ ! -f /config/nzbget.conf ]] && cp /defaults/nzbget.conf /config/nzbget.conf # permissions @@ -20,8 +20,8 @@ chmod u+rw \ chmod 777 -R \ /config chmod 777 -R \ - /app/nzbget + /app/nzbget chmod 777 -R \ - /downloads + /downloads exec /config/installer/installer.sh diff --git a/apps/templates/nzbget/ffmpeg-build/build-ffmpeg b/apps/templates/nzbget/ffmpeg-build/build-ffmpeg index fc9fee9..6d28362 100644 --- a/apps/templates/nzbget/ffmpeg-build/build-ffmpeg +++ b/apps/templates/nzbget/ffmpeg-build/build-ffmpeg @@ -15,39 +15,39 @@ ADDITIONAL_CONFIGURE_OPTIONS="" # Speed up the process # Env Var NUMJOBS overrides automatic detection if [[ -n $NUMJOBS ]]; then - MJOBS=$NUMJOBS + MJOBS=$NUMJOBS elif [[ -f /proc/cpuinfo ]]; then - MJOBS=$(grep -c processor /proc/cpuinfo) + MJOBS=$(grep -c processor /proc/cpuinfo) elif [[ "$OSTYPE" == "darwin"* ]]; then MJOBS=$(sysctl -n machdep.cpu.thread_count) ADDITIONAL_CONFIGURE_OPTIONS="--enable-videotoolbox" else - MJOBS=4 + MJOBS=4 fi -make_dir () { +make_dir() { if [ ! -d $1 ]; then if ! mkdir $1; then - printf "\n Failed to create dir %s" "$1"; + printf "\n Failed to create dir %s" "$1" exit 1 fi fi } -remove_dir () { +remove_dir() { if [ -d $1 ]; then rm -r "$1" fi } -download () { +download() { + + DOWNLOAD_PATH=$PACKAGES - DOWNLOAD_PATH=$PACKAGES; - if [ ! -z "$3" ]; then mkdir -p $PACKAGES/$3 DOWNLOAD_PATH=$PACKAGES/$3 - fi; + fi if [ ! -f "$DOWNLOAD_PATH/$2" ]; then @@ -57,7 +57,7 @@ download () { EXITCODE=$? if [ $EXITCODE -ne 0 ]; then echo "" - echo "Failed to download $1. Exitcode $EXITCODE. Retrying in 10 seconds"; + echo "Failed to download $1. Exitcode $EXITCODE. Retrying in 10 seconds" sleep 10 curl -L --silent -o "$DOWNLOAD_PATH/$2" "$1" fi @@ -65,34 +65,34 @@ download () { EXITCODE=$? if [ $EXITCODE -ne 0 ]; then echo "" - echo "Failed to download $1. Exitcode $EXITCODE"; + echo "Failed to download $1. Exitcode $EXITCODE" exit 1 fi echo "... Done" if ! tar -xvf "$DOWNLOAD_PATH/$2" -C "$DOWNLOAD_PATH" 2>/dev/null >/dev/null; then - echo "Failed to extract $2"; + echo "Failed to extract $2" exit 1 fi fi } -execute () { +execute() { echo "$ $*" OUTPUT=$($@ 2>&1) if [ $? -ne 0 ]; then - echo "$OUTPUT" - echo "" - echo "Failed to Execute $*" >&2 - exit 1 - fi + echo "$OUTPUT" + echo "" + echo "Failed to Execute $*" >&2 + exit 1 + fi } -build () { +build() { echo "" echo "building $1" echo "=======================" @@ -106,15 +106,14 @@ build () { } command_exists() { - if ! [[ -x $(command -v "$1") ]]; then - return 1 - fi + if ! [[ -x $(command -v "$1") ]]; then + return 1 + fi - return 0 + return 0 } - -build_done () { +build_done() { touch "$PACKAGES/$1.done" } @@ -129,18 +128,18 @@ case "$1" in echo "Cleanup done." echo "" exit 0 - ;; -"--build") + ;; +"--build") ;; - ;; -*) - echo "Usage: $0" - echo " --build: start building process" - echo " --cleanup: remove all working dirs" - echo " --help: show this help" - echo "" - exit 0 - ;; +\ + *) + echo "Usage: $0" + echo " --build: start building process" + echo " --cleanup: remove all working dirs" + echo " --help: show this help" + echo "" + exit 0 + ;; esac echo "Using $MJOBS make jobs simultaneously." @@ -151,18 +150,18 @@ make_dir $WORKSPACE export PATH=${WORKSPACE}/bin:$PATH if ! command_exists "make"; then - echo "make not installed."; - exit 1 + echo "make not installed." + exit 1 fi if ! command_exists "g++"; then - echo "g++ not installed."; - exit 1 + echo "g++ not installed." + exit 1 fi if ! command_exists "curl"; then - echo "curl not installed."; - exit 1 + echo "curl not installed." + exit 1 fi if build "yasm"; then @@ -193,14 +192,14 @@ if build "opencore"; then fi if build "libvpx"; then - download "https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gz" "libvpx-1.7.0.tar.gz" - cd $PACKAGES/libvpx-*0 || exit + download "https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gz" "libvpx-1.7.0.tar.gz" + cd $PACKAGES/libvpx-*0 || exit - if [[ "$OSTYPE" == "darwin"* ]]; then - echo "Applying Darwin patch" - sed "s/,--version-script//g" build/make/Makefile > build/make/Makefile.patched - sed "s/-Wl,--no-undefined -Wl,-soname/-Wl,-undefined,error -Wl,-install_name/g" build/make/Makefile.patched > build/make/Makefile - fi + if [[ "$OSTYPE" == "darwin"* ]]; then + echo "Applying Darwin patch" + sed "s/,--version-script//g" build/make/Makefile >build/make/Makefile.patched + sed "s/-Wl,--no-undefined -Wl,-soname/-Wl,-undefined,error -Wl,-install_name/g" build/make/Makefile.patched >build/make/Makefile + fi execute ./configure --prefix=${WORKSPACE} --disable-unit-tests --disable-shared execute make -j $MJOBS @@ -219,14 +218,14 @@ fi if build "xvidcore"; then download "http://downloads.xvid.org/downloads/xvidcore-1.3.4.tar.gz" "xvidcore-1.3.4.tar.gz" - cd $PACKAGES/xvidcore || exit - cd build/generic || exit + cd $PACKAGES/xvidcore || exit + cd build/generic || exit execute ./configure --prefix=${WORKSPACE} --disable-shared --enable-static execute make -j $MJOBS execute make install if [[ -f ${WORKSPACE}/lib/libxvidcore.4.dylib ]]; then - execute rm "${WORKSPACE}/lib/libxvidcore.4.dylib" + execute rm "${WORKSPACE}/lib/libxvidcore.4.dylib" fi build_done "xvidcore" @@ -238,11 +237,11 @@ if build "x264"; then if [[ "$OSTYPE" == "linux-gnu" ]]; then execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic CXXFLAGS="-fPIC" - else - execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic - fi + else + execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic + fi - execute make -j $MJOBS + execute make -j $MJOBS execute make install execute make install-lib-static build_done "x264" @@ -269,7 +268,7 @@ fi if build "libtheora"; then download "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz" "libtheora-1.1.1.tar.bz" cd $PACKAGES/libtheora-1.1.1 || exit - sed "s/-fforce-addr//g" configure > configure.patched + sed "s/-fforce-addr//g" configure >configure.patched chmod +x configure.patched mv configure.patched configure execute ./configure --prefix=${WORKSPACE} --with-ogg-libraries=${WORKSPACE}/lib --with-ogg-includes=${WORKSPACE}/include/ --with-vorbis-libraries=${WORKSPACE}/lib --with-vorbis-includes=${WORKSPACE}/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm @@ -289,7 +288,7 @@ fi if build "cmake"; then download "https://cmake.org/files/v3.11/cmake-3.11.3.tar.gz" "cmake-3.11.3.tar.gz" - cd $PACKAGES/cmake-3.11.3 || exit + cd $PACKAGES/cmake-3.11.3 || exit rm Modules/FindJava.cmake perl -p -i -e "s/get_filename_component.JNIPATH/#get_filename_component(JNIPATH/g" Tests/CMakeLists.txt perl -p -i -e "s/get_filename_component.JNIPATH/#get_filename_component(JNIPATH/g" Tests/CMakeLists.txt @@ -315,7 +314,7 @@ if build "x265"; then execute cmake -DCMAKE_INSTALL_PREFIX:PATH=${WORKSPACE} -DENABLE_SHARED:bool=off . execute make -j $MJOBS execute make install - sed "s/-lx265/-lx265 -lstdc++/g" "$WORKSPACE/lib/pkgconfig/x265.pc" > "$WORKSPACE/lib/pkgconfig/x265.pc.tmp" + sed "s/-lx265/-lx265 -lstdc++/g" "$WORKSPACE/lib/pkgconfig/x265.pc" >"$WORKSPACE/lib/pkgconfig/x265.pc.tmp" mv "$WORKSPACE/lib/pkgconfig/x265.pc.tmp" "$WORKSPACE/lib/pkgconfig/x265.pc" build_done "x265" fi @@ -329,17 +328,16 @@ if build "fdk_aac"; then build_done "fdk_aac" fi - build "ffmpeg" download "http://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2" "ffmpeg-snapshot.tar.bz2" cd $PACKAGES/ffmpeg-4.1 || exit ./configure $ADDITIONAL_CONFIGURE_OPTIONS \ - --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \ - --prefix=${WORKSPACE} \ - --pkg-config-flags="--static" \ - --extra-cflags="-I$WORKSPACE/include" \ - --extra-ldflags="-L$WORKSPACE/lib" \ - --extra-libs="-lpthread -lm" \ + --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \ + --prefix=${WORKSPACE} \ + --pkg-config-flags="--static" \ + --extra-cflags="-I$WORKSPACE/include" \ + --extra-ldflags="-L$WORKSPACE/lib" \ + --extra-libs="-lpthread -lm" \ --enable-static \ --disable-debug \ --disable-shared \ @@ -368,14 +366,13 @@ execute make install INSTALL_FOLDER="/usr/bin" if [[ "$OSTYPE" == "darwin"* ]]; then -INSTALL_FOLDER="/usr/local/bin" + INSTALL_FOLDER="/usr/local/bin" fi echo "" echo "Building done. The binary can be found here: $WORKSPACE/bin/ffmpeg" echo "" - if [[ $AUTOINSTALL == "yes" ]]; then if command_exists "sudo"; then sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" @@ -388,11 +385,11 @@ elif [[ ! $SKIPINSTALL == "yes" ]]; then read -r -p "Install the binary to your $INSTALL_FOLDER folder? [Y/n] " response case $response in - [yY][eE][sS]|[yY]) - sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - echo "Done. ffmpeg is now installed to your system" - ;; + [yY][eE][sS] | [yY]) + sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" + sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" + echo "Done. ffmpeg is now installed to your system" + ;; esac fi fi diff --git a/apps/templates/nzbget/ffmpeg-build/web-install.sh b/apps/templates/nzbget/ffmpeg-build/web-install.sh index ffe4158..6c87270 100644 --- a/apps/templates/nzbget/ffmpeg-build/web-install.sh +++ b/apps/templates/nzbget/ffmpeg-build/web-install.sh @@ -1,13 +1,13 @@ #!/bin/bash # Helper script to download and run the build-ffmpeg script. -make_dir () { +make_dir() { if [ ! -d $1 ]; then - if ! mkdir $1; then - printf "\n Failed to create dir %s" "$1"; + if ! mkdir $1; then + printf "\n Failed to create dir %s" "$1" exit 1 fi - fi + fi } command_exists() { @@ -21,7 +21,7 @@ command_exists() { TARGET='ffmpeg-build' if ! command_exists "curl"; then - echo "curl not installed."; + echo "curl not installed." exit 1 fi @@ -37,4 +37,3 @@ echo "Now we download and execute the build script" echo "" bash build-ffmpeg --build - diff --git a/apps/templates/nzbget/scripts/DeleteSamples.py b/apps/templates/nzbget/scripts/DeleteSamples.py index 395628f..403ba01 100644 --- a/apps/templates/nzbget/scripts/DeleteSamples.py +++ b/apps/templates/nzbget/scripts/DeleteSamples.py @@ -16,6 +16,7 @@ NZBGET_POSTPROCESS_SUCCESS = 93 NZBGET_POSTPROCESS_ERROR = 94 NZBGET_POSTPROCESS_NONE = 95 + def is_sample(filePath, inputName, maxSampleSize, SampleIDs): # 200 MB in bytes SIZE_CUTOFF = int(maxSampleSize) * 1024 * 1024 @@ -29,15 +30,18 @@ def is_sample(filePath, inputName, maxSampleSize, SampleIDs): # Return False if none of these were met. return False + if not os.environ.has_key('NZBOP_SCRIPTDIR'): print "This script can only be called from NZBGet (11.0 or later)." sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) + print "NZBGet Version %s is not supported. Please update NZBGet." % ( + str(os.environ['NZBOP_VERSION'])) sys.exit(0) -print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) +print "Script triggered from NZBGet Version %s." % ( + str(os.environ['NZBOP_VERSION'])) status = 0 if os.environ.has_key('NZBPP_TOTALSTATUS'): if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': @@ -69,7 +73,8 @@ else: # Check if destination directory exists (important for reprocessing of history items) if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." + print "Nothing to post-process: destination directory", os.environ[ + 'NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." status = 1 # All checks done, now launching the script. @@ -82,8 +87,9 @@ for dirpath, dirnames, filenames in os.walk(os.environ['NZBPP_DIRECTORY']): for file in filenames: filePath = os.path.join(dirpath, file) fileName, fileExtension = os.path.splitext(file) - if fileExtension in mediaContainer or ".*" in mediaContainer : # If the file is a video file - if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): # Ignore samples + if fileExtension in mediaContainer or ".*" in mediaContainer: # If the file is a video file + # Ignore samples + if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): print "Deleting sample file: ", filePath try: os.unlink(filePath) diff --git a/apps/templates/nzbget/scripts/flatten.py b/apps/templates/nzbget/scripts/flatten.py index 73dd0d5..4b16c79 100644 --- a/apps/templates/nzbget/scripts/flatten.py +++ b/apps/templates/nzbget/scripts/flatten.py @@ -22,14 +22,17 @@ if not os.environ.has_key('NZBOP_SCRIPTDIR'): sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) + print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % ( + str(os.environ['NZBOP_VERSION'])) sys.exit(0) -print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) +print "Script triggered from NZBGet Version %s." % ( + str(os.environ['NZBOP_VERSION'])) status = 0 if os.environ.has_key('NZBPP_TOTALSTATUS'): if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': - print "[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']) + print "[ERROR] Download failed with status %s." % ( + os.environ['NZBPP_STATUS']) status = 1 else: @@ -64,8 +67,9 @@ if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): if status == 1: sys.exit(NZBGET_POSTPROCESS_NONE) + def removeEmptyFolders(path, removeRoot=True): - #Function to remove empty folders + # Function to remove empty folders if not os.path.isdir(path): return @@ -84,6 +88,7 @@ def removeEmptyFolders(path, removeRoot=True): print "[INFO] Removing empty folder:%s" % path os.rmdir(path) + directory = os.path.normpath(os.environ['NZBPP_DIRECTORY']) if os.environ['NZBPO_DESTINATIONDIRECTORY'] and os.path.isdir(os.environ['NZBPO_DESTINATIONDIRECTORY']): destination = os.environ['NZBPO_DESTINATIONDIRECTORY'] diff --git a/apps/templates/nzbget/scripts/hash.py b/apps/templates/nzbget/scripts/hash.py index f2fbec1..07855b6 100644 --- a/apps/templates/nzbget/scripts/hash.py +++ b/apps/templates/nzbget/scripts/hash.py @@ -25,21 +25,25 @@ NZBGET_POSTPROCESS_NONE = 95 # EXTENSION STUFF ############################################################ + def do_check(): if not os.environ.has_key('NZBOP_SCRIPTDIR'): print "This script can only be called from NZBGet (11.0 or later)." sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) + print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % ( + str(os.environ['NZBOP_VERSION'])) sys.exit(0) - print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) + print "Script triggered from NZBGet Version %s." % ( + str(os.environ['NZBOP_VERSION'])) status = 0 if 'NZBPP_TOTALSTATUS' in os.environ: if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': - print "[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']) + print "[ERROR] Download failed with status %s." % ( + os.environ['NZBPP_STATUS']) status = 1 else: # Check par status @@ -144,7 +148,8 @@ if not found_files: print("[INFO] No files were found in \"%s\"" % directory) sys.exit(NZBGET_POSTPROCESS_NONE) else: - print("[INFO] Found %d files to check for hashed filenames" % len(found_files)) + print("[INFO] Found %d files to check for hashed filenames" % + len(found_files)) # loop files checking for file hash moved_files = 0 for found_file_path in found_files: @@ -154,14 +159,18 @@ else: # is this a file hash if is_file_hash(file_name): - new_file_path = os.path.join(dir_name, "%s.%s" % (nzb_name, file_ext)) - print("[INFO] Moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)) + new_file_path = os.path.join( + dir_name, "%s.%s" % (nzb_name, file_ext)) + print("[INFO] Moving \"%s\" to \"%s\"" % + (found_file_path, new_file_path)) try: shutil.move(found_file_path, new_file_path) moved_files += 1 except Exception: - print("[ERROR] Failed moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)) + print("[ERROR] Failed moving \"%s\" to \"%s\"" % + (found_file_path, new_file_path)) - print("[INFO] Finished processing \"%s\", moved %d files" % (directory, moved_files)) + print("[INFO] Finished processing \"%s\", moved %d files" % + (directory, moved_files)) sys.exit(NZBGET_POSTPROCESS_SUCCESS) diff --git a/apps/templates/nzbget/scripts/rarfile/__init__.py b/apps/templates/nzbget/scripts/rarfile/__init__.py index 8b13789..e69de29 100644 --- a/apps/templates/nzbget/scripts/rarfile/__init__.py +++ b/apps/templates/nzbget/scripts/rarfile/__init__.py @@ -1 +0,0 @@ - diff --git a/apps/templates/nzbget/scripts/rarfile/rarfile.py b/apps/templates/nzbget/scripts/rarfile/rarfile.py index c6e0d44..4b793d3 100644 --- a/apps/templates/nzbget/scripts/rarfile/rarfile.py +++ b/apps/templates/nzbget/scripts/rarfile/rarfile.py @@ -64,7 +64,7 @@ For more details, refer to source. from __future__ import division, print_function ## -## Imports and compat - support both Python 2.x and 3.x +# Imports and compat - support both Python 2.x and 3.x ## import sys @@ -113,13 +113,16 @@ try: class AES_CBC_Decrypt(object): """Decrypt API""" + def __init__(self, key, iv): - ciph = Cipher(algorithms.AES(key), modes.CBC(iv), default_backend()) + ciph = Cipher(algorithms.AES(key), + modes.CBC(iv), default_backend()) self.decrypt = ciph.decryptor().update def pbkdf2_sha256(password, salt, iters): """PBKDF2 with HMAC-SHA256""" - ctx = pbkdf2.PBKDF2HMAC(hashes.SHA256(), 32, salt, iters, default_backend()) + ctx = pbkdf2.PBKDF2HMAC( + hashes.SHA256(), 32, salt, iters, default_backend()) return ctx.derive(password) except ImportError: @@ -128,6 +131,7 @@ try: class AES_CBC_Decrypt(object): """Decrypt API""" + def __init__(self, key, iv): self.decrypt = AES.new(key, AES.MODE_CBC, iv).decrypt @@ -173,7 +177,7 @@ __version__ = '3.0' __all__ = ['is_rarfile', 'RarInfo', 'RarFile', 'RarExtFile'] ## -## Module configuration. Can be tuned after importing. +# Module configuration. Can be tuned after importing. ## #: default fallback charset @@ -222,72 +226,72 @@ HACK_SIZE_LIMIT = 20 * 1024 * 1024 PATH_SEP = '/' ## -## rar constants +# rar constants ## # block types -RAR_BLOCK_MARK = 0x72 # r -RAR_BLOCK_MAIN = 0x73 # s -RAR_BLOCK_FILE = 0x74 # t -RAR_BLOCK_OLD_COMMENT = 0x75 # u -RAR_BLOCK_OLD_EXTRA = 0x76 # v -RAR_BLOCK_OLD_SUB = 0x77 # w -RAR_BLOCK_OLD_RECOVERY = 0x78 # x -RAR_BLOCK_OLD_AUTH = 0x79 # y -RAR_BLOCK_SUB = 0x7a # z -RAR_BLOCK_ENDARC = 0x7b # { +RAR_BLOCK_MARK = 0x72 # r +RAR_BLOCK_MAIN = 0x73 # s +RAR_BLOCK_FILE = 0x74 # t +RAR_BLOCK_OLD_COMMENT = 0x75 # u +RAR_BLOCK_OLD_EXTRA = 0x76 # v +RAR_BLOCK_OLD_SUB = 0x77 # w +RAR_BLOCK_OLD_RECOVERY = 0x78 # x +RAR_BLOCK_OLD_AUTH = 0x79 # y +RAR_BLOCK_SUB = 0x7a # z +RAR_BLOCK_ENDARC = 0x7b # { # flags for RAR_BLOCK_MAIN -RAR_MAIN_VOLUME = 0x0001 -RAR_MAIN_COMMENT = 0x0002 -RAR_MAIN_LOCK = 0x0004 -RAR_MAIN_SOLID = 0x0008 -RAR_MAIN_NEWNUMBERING = 0x0010 -RAR_MAIN_AUTH = 0x0020 -RAR_MAIN_RECOVERY = 0x0040 -RAR_MAIN_PASSWORD = 0x0080 -RAR_MAIN_FIRSTVOLUME = 0x0100 -RAR_MAIN_ENCRYPTVER = 0x0200 +RAR_MAIN_VOLUME = 0x0001 +RAR_MAIN_COMMENT = 0x0002 +RAR_MAIN_LOCK = 0x0004 +RAR_MAIN_SOLID = 0x0008 +RAR_MAIN_NEWNUMBERING = 0x0010 +RAR_MAIN_AUTH = 0x0020 +RAR_MAIN_RECOVERY = 0x0040 +RAR_MAIN_PASSWORD = 0x0080 +RAR_MAIN_FIRSTVOLUME = 0x0100 +RAR_MAIN_ENCRYPTVER = 0x0200 # flags for RAR_BLOCK_FILE -RAR_FILE_SPLIT_BEFORE = 0x0001 -RAR_FILE_SPLIT_AFTER = 0x0002 -RAR_FILE_PASSWORD = 0x0004 -RAR_FILE_COMMENT = 0x0008 -RAR_FILE_SOLID = 0x0010 -RAR_FILE_DICTMASK = 0x00e0 -RAR_FILE_DICT64 = 0x0000 -RAR_FILE_DICT128 = 0x0020 -RAR_FILE_DICT256 = 0x0040 -RAR_FILE_DICT512 = 0x0060 -RAR_FILE_DICT1024 = 0x0080 -RAR_FILE_DICT2048 = 0x00a0 -RAR_FILE_DICT4096 = 0x00c0 -RAR_FILE_DIRECTORY = 0x00e0 -RAR_FILE_LARGE = 0x0100 -RAR_FILE_UNICODE = 0x0200 -RAR_FILE_SALT = 0x0400 -RAR_FILE_VERSION = 0x0800 -RAR_FILE_EXTTIME = 0x1000 -RAR_FILE_EXTFLAGS = 0x2000 +RAR_FILE_SPLIT_BEFORE = 0x0001 +RAR_FILE_SPLIT_AFTER = 0x0002 +RAR_FILE_PASSWORD = 0x0004 +RAR_FILE_COMMENT = 0x0008 +RAR_FILE_SOLID = 0x0010 +RAR_FILE_DICTMASK = 0x00e0 +RAR_FILE_DICT64 = 0x0000 +RAR_FILE_DICT128 = 0x0020 +RAR_FILE_DICT256 = 0x0040 +RAR_FILE_DICT512 = 0x0060 +RAR_FILE_DICT1024 = 0x0080 +RAR_FILE_DICT2048 = 0x00a0 +RAR_FILE_DICT4096 = 0x00c0 +RAR_FILE_DIRECTORY = 0x00e0 +RAR_FILE_LARGE = 0x0100 +RAR_FILE_UNICODE = 0x0200 +RAR_FILE_SALT = 0x0400 +RAR_FILE_VERSION = 0x0800 +RAR_FILE_EXTTIME = 0x1000 +RAR_FILE_EXTFLAGS = 0x2000 # flags for RAR_BLOCK_ENDARC -RAR_ENDARC_NEXT_VOLUME = 0x0001 -RAR_ENDARC_DATACRC = 0x0002 -RAR_ENDARC_REVSPACE = 0x0004 -RAR_ENDARC_VOLNR = 0x0008 +RAR_ENDARC_NEXT_VOLUME = 0x0001 +RAR_ENDARC_DATACRC = 0x0002 +RAR_ENDARC_REVSPACE = 0x0004 +RAR_ENDARC_VOLNR = 0x0008 # flags common to all blocks -RAR_SKIP_IF_UNKNOWN = 0x4000 -RAR_LONG_BLOCK = 0x8000 +RAR_SKIP_IF_UNKNOWN = 0x4000 +RAR_LONG_BLOCK = 0x8000 # Host OS types RAR_OS_MSDOS = 0 -RAR_OS_OS2 = 1 +RAR_OS_OS2 = 1 RAR_OS_WIN32 = 2 -RAR_OS_UNIX = 3 +RAR_OS_UNIX = 3 RAR_OS_MACOS = 4 -RAR_OS_BEOS = 5 +RAR_OS_BEOS = 5 # Compression methods - '0'..'5' RAR_M0 = 0x30 @@ -369,7 +373,7 @@ RAR5_OS_WINDOWS = 0 RAR5_OS_UNIX = 1 ## -## internal constants +# internal constants ## RAR_ID = b"Rar!\x1a\x07\x00" @@ -379,6 +383,7 @@ EMPTY = b'' UTC = timezone(timedelta(0), 'UTC') BSIZE = 32 * 1024 + def _get_rar_version(xfile): '''Check quickly whether file is rar archive. ''' @@ -391,83 +396,108 @@ def _get_rar_version(xfile): return 0 ## -## Public interface +# Public interface ## + def is_rarfile(xfile): '''Check quickly whether file is rar archive. ''' return _get_rar_version(xfile) > 0 + class Error(Exception): """Base class for rarfile errors.""" + class BadRarFile(Error): """Incorrect data in archive.""" + class NotRarFile(Error): """The file is not RAR archive.""" + class BadRarName(Error): """Cannot guess multipart name components.""" + class NoRarEntry(Error): """File not found in RAR""" + class PasswordRequired(Error): """File requires password""" + class NeedFirstVolume(Error): """Need to start from first volume.""" + class NoCrypto(Error): """Cannot parse encrypted headers - no crypto available.""" + class RarExecError(Error): """Problem reported by unrar/rar.""" + class RarWarning(RarExecError): """Non-fatal error""" + class RarFatalError(RarExecError): """Fatal error""" + class RarCRCError(RarExecError): """CRC error during unpacking""" + class RarLockedArchiveError(RarExecError): """Must not modify locked archive""" + class RarWriteError(RarExecError): """Write error""" + class RarOpenError(RarExecError): """Open error""" + class RarUserError(RarExecError): """User error""" + class RarMemoryError(RarExecError): """Memory error""" + class RarCreateError(RarExecError): """Create error""" + class RarNoFilesError(RarExecError): """No files that match pattern were found""" + class RarUserBreak(RarExecError): """User stop""" + class RarWrongPassword(RarExecError): """Incorrect password""" + class RarUnknownError(RarExecError): """Unknown exit code""" + class RarSignalExit(RarExecError): """Unrar exited with signal""" + class RarCannotExec(RarExecError): """Executable not found.""" @@ -734,13 +764,15 @@ class RarFile(object): # entry lookup inf = self.getinfo(fname) if inf.isdir(): - raise TypeError("Directory does not have any data: " + inf.filename) + raise TypeError( + "Directory does not have any data: " + inf.filename) # check password if inf.needs_password(): psw = psw or self._password if psw is None: - raise PasswordRequired("File %s requires password" % inf.filename) + raise PasswordRequired( + "File %s requires password" % inf.filename) else: psw = None @@ -831,7 +863,7 @@ class RarFile(object): return self._file_parser.strerror() ## - ## private methods + # private methods ## def _parse(self): @@ -882,6 +914,7 @@ class RarFile(object): # File format parsing # + class CommonParser(object): """Shared parser parts.""" _main = None @@ -1011,7 +1044,8 @@ class CommonParser(object): # RAR 2.x does not set FIRSTVOLUME, # so check it only if NEWNUMBERING is used if (h.flags & RAR_MAIN_FIRSTVOLUME) == 0: - raise NeedFirstVolume("Need to start from first volume") + raise NeedFirstVolume( + "Need to start from first volume") if h.flags & RAR_MAIN_PASSWORD: self._needs_password = True if not self._password: @@ -1094,7 +1128,8 @@ class CommonParser(object): raise BadRarFile('cannot find copied file') if inf.flags & RAR_FILE_SPLIT_BEFORE: - raise NeedFirstVolume("Partial file, please start from first volume: " + inf.filename) + raise NeedFirstVolume( + "Partial file, please start from first volume: " + inf.filename) # is temp write usable? use_hack = 1 @@ -1181,6 +1216,7 @@ class CommonParser(object): # RAR3 format # + class Rar3Info(RarInfo): """RAR3 specific fields.""" extract_version = 15 @@ -1378,7 +1414,7 @@ class RAR3Parser(CommonParser): if stype == RAR_BLOCK_OLD_COMMENT and pos + S_COMMENT_HDR.size <= pos_next: declen, ver, meth, crc = S_COMMENT_HDR.unpack_from(hdata, pos) pos += S_COMMENT_HDR.size - data = hdata[pos : pos_next] + data = hdata[pos: pos_next] cmt = rar3_decompress(ver, meth, data, declen, sflags, crc, self._password) if not self._crc_check: @@ -1464,6 +1500,7 @@ class RAR3Parser(CommonParser): # RAR5 format # + class Rar5Info(RarInfo): """Shared fields for RAR5 records. """ @@ -1871,12 +1908,14 @@ class RAR5Parser(CommonParser): return self._open_hack_core(inf, psw, RAR5_ID + main_hdr, endarc_hdr) ## -## Utility classes +# Utility classes ## + class UnicodeFilename(object): """Handle RAR3 unicode filename decompression. """ + def __init__(self, name, encdata): self.std_name = bytearray(name) self.encdata = bytearray(encdata) @@ -2193,10 +2232,10 @@ class PipeReader(RarExtFile): vbuf = memoryview(buf) res = got = 0 while got < cnt: - res = self._fd.readinto(vbuf[got : cnt]) + res = self._fd.readinto(vbuf[got: cnt]) if not res: break - self._md_context.update(vbuf[got : got + res]) + self._md_context.update(vbuf[got: got + res]) self._remain -= res got += res return got @@ -2316,10 +2355,10 @@ class DirectReader(RarExtFile): cnt = self._cur_avail # read into temp view - res = self._fd.readinto(vbuf[got : got + cnt]) + res = self._fd.readinto(vbuf[got: got + cnt]) if not res: break - self._md_context.update(vbuf[got : got + res]) + self._md_context.update(vbuf[got: got + res]) self._cur_avail -= res self._remain -= res got += res @@ -2328,6 +2367,7 @@ class DirectReader(RarExtFile): class HeaderDecrypt(object): """File-like object that decrypts from another file""" + def __init__(self, f, key, iv): self.f = f self.ciph = AES_CBC_Decrypt(key, iv) @@ -2414,12 +2454,16 @@ class XFile(object): class NoHashContext(object): """No-op hash function.""" + def __init__(self, data=None): """Initialize""" + def update(self, data): """Update data""" + def digest(self): """Final hash""" + def hexdigest(self): """Hexadecimal digest.""" @@ -2510,9 +2554,10 @@ class Blake2SP(object): return tohex(self.digest()) ## -## Utility functions +# Utility functions ## + S_LONG = Struct(' len(buf): raise BadRarFile('cannot load bytes') - return buf[pos : end], end + return buf[pos: end], end + def load_vstr(buf, pos): """Load bytes prefixed by vint length""" slen, pos = load_vint(buf, pos) return load_bytes(buf, slen, pos) + def load_dostime(buf, pos): """Load LE32 dos timestamp""" stamp, pos = load_le32(buf, pos) tup = parse_dos_time(stamp) return to_datetime(tup), pos + def load_unixtime(buf, pos): """Load LE32 unix timestamp""" secs, pos = load_le32(buf, pos) dt = datetime.fromtimestamp(secs, UTC) return dt, pos + def load_windowstime(buf, pos): """Load LE64 windows timestamp""" # unix epoch (1970) in seconds from windows epoch (1601) @@ -2584,6 +2637,8 @@ def load_windowstime(buf, pos): return dt, pos # new-style next volume + + def _next_newvol(volfile): i = len(volfile) - 1 while i >= 0: @@ -2593,6 +2648,8 @@ def _next_newvol(volfile): raise BadRarName("Cannot construct volume name: " + volfile) # old-style next volume + + def _next_oldvol(volfile): # rar -> r00 if volfile[-4:].lower() == '.rar': @@ -2600,6 +2657,8 @@ def _next_oldvol(volfile): return _inc_volname(volfile, len(volfile) - 1) # increase digits with carry, otherwise just increment char + + def _inc_volname(volfile, i): fn = list(volfile) while i >= 0: @@ -2611,6 +2670,8 @@ def _inc_volname(volfile, i): return ''.join(fn) # rar3 extended time fields + + def _parse_ext_time(h, data, pos): # flags and rest of data can be missing flags = 0 @@ -2628,6 +2689,8 @@ def _parse_ext_time(h, data, pos): return pos # rar3 one extended time field + + def _parse_xtime(flag, data, pos, basetime=None): res = None if flag & 8: @@ -2648,11 +2711,13 @@ def _parse_xtime(flag, data, pos, basetime=None): # dostime has room for 30 seconds only, correct if needed if flag & 4 and basetime.second < 59: - res = basetime.replace(microsecond=usec, second=basetime.second + 1) + res = basetime.replace( + microsecond=usec, second=basetime.second + 1) else: res = basetime.replace(microsecond=usec) return res, pos + def is_filelike(obj): """Filename or file object? """ @@ -2665,6 +2730,7 @@ def is_filelike(obj): raise ValueError("Invalid object passed as file") return True + def rar3_s2k(psw, salt): """String-to-key hash for RAR3. """ @@ -2683,6 +2749,7 @@ def rar3_s2k(psw, salt): key_le = pack("LLLL", key_be)) return key_le, iv + def rar3_decompress(vers, meth, data, declen=0, flags=0, crc=0, psw=None, salt=None): """Decompress blob of compressed data. @@ -2734,6 +2801,7 @@ def rar3_decompress(vers, meth, data, declen=0, flags=0, crc=0, psw=None, salt=N tmpf.close() os.unlink(tmpname) + def to_datetime(t): """Convert 6-part time tuple into datetime object. """ @@ -2772,6 +2840,7 @@ def to_datetime(t): day = 28 return datetime(year, mon, day, h, m, s) + def parse_dos_time(stamp): """Parse standard 32-bit DOS timestamp. """ @@ -2783,6 +2852,7 @@ def parse_dos_time(stamp): yr = (stamp & 0x7F) + 1980 return (yr, mon, day, hr, mn, sec * 2) + def custom_popen(cmd): """Disconnect cmd from parent fds, read only from stdout. """ @@ -2797,10 +2867,12 @@ def custom_popen(cmd): creationflags=creationflags) except OSError as ex: if ex.errno == errno.ENOENT: - raise RarCannotExec("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) + raise RarCannotExec( + "Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) raise return p + def custom_check(cmd, ignore_retcode=False): """Run command, collect output, raise error if needed. """ @@ -2810,6 +2882,7 @@ def custom_check(cmd, ignore_retcode=False): raise RarExecError("Check-run failed") return out + def add_password_arg(cmd, psw, ___required=False): """Append password switch to commandline. """ @@ -2820,6 +2893,7 @@ def add_password_arg(cmd, psw, ___required=False): else: cmd.append('-p-') + def check_returncode(p, out): """Raise exception according to unrar exit code. """ @@ -2851,10 +2925,12 @@ def check_returncode(p, out): raise exc(msg) + def hmac_sha256(key, data): """HMAC-SHA256""" return HMAC(key, data, sha256).digest() + def membuf_tempfile(memfile): memfile.seek(0, 0) @@ -2874,6 +2950,7 @@ def membuf_tempfile(memfile): raise return tmpname + class XTempFile(object): __slots__ = ('_tmpfile', '_filename') @@ -2900,11 +2977,13 @@ class XTempFile(object): # Check if unrar works # + ORIG_UNRAR_TOOL = UNRAR_TOOL ORIG_OPEN_ARGS = OPEN_ARGS ORIG_EXTRACT_ARGS = EXTRACT_ARGS ORIG_TEST_ARGS = TEST_ARGS + def _check_unrar_tool(): global UNRAR_TOOL, OPEN_ARGS, EXTRACT_ARGS, TEST_ARGS try: @@ -2928,5 +3007,5 @@ def _check_unrar_tool(): # no usable tool, only uncompressed archives work pass -_check_unrar_tool() +_check_unrar_tool() diff --git a/apps/templates/nzbget/scripts/reverse_name.py b/apps/templates/nzbget/scripts/reverse_name.py index 98819d0..6e09d32 100644 --- a/apps/templates/nzbget/scripts/reverse_name.py +++ b/apps/templates/nzbget/scripts/reverse_name.py @@ -18,8 +18,8 @@ reverse_list = [r"\.\d{2}e\d{2}s\.", r"\.p0612\.", r"\.[pi]0801\.", r"\.p027\.", reverse_pattern = re.compile('|'.join(reverse_list), flags=re.IGNORECASE) season_pattern = re.compile(r"(.*\.\d{2}e\d{2}s\.)(.*)", flags=re.IGNORECASE) word_pattern = re.compile(r"([^A-Z0-9]*[A-Z0-9]+)") -char_replace = [[r"(\w)1\.(\w)",r"\1i\2"] -] +char_replace = [[r"(\w)1\.(\w)", r"\1i\2"] + ] garbage_name = re.compile(r"^[a-zA-Z0-9]{2,}$") media_list = [r"\.s\d{2}e\d{2}\.", r"\.2160p\.", r"\.1080[pi]\.", r"\.720p\.", r"\.576[pi]\.", r"\.480[pi]\.", r"\.360p\.", r"\.[xh]26[45]\b", r"\.bluray\.", r"\.[hp]dtv\.", r'\.web(?:[.-]?dl)?\.', r"\.(vhs|vod|dvd|web|bd|br).?rip\.", r"\.dvdr\b", r"\.stv\.", r"\.screener\.", r"\.vcd\.", r"\bhd(cam|rip)\b", r"\.proper\.", r"\.repack\.", @@ -133,12 +133,14 @@ class ek: def ek(func, *args, **kwargs): if 'nt' == os.name: # convert all str parameter values to unicode - args = tuple([x if not isinstance(x, str) else ek.win_encode_unicode(x) for x in args]) + args = tuple([x if not isinstance(x, str) + else ek.win_encode_unicode(x) for x in args]) kwargs = {k: x if not isinstance(x, str) else ek.win_encode_unicode(x) for k, x in kwargs.iteritems()} func_result = func(*args, **kwargs) else: - func_result = func(*[ek.encode_item(x) if type(x) == str else x for x in args], **kwargs) + func_result = func( + *[ek.encode_item(x) if type(x) == str else x for x in args], **kwargs) if type(func_result) in (list, tuple): return ek.fix_list_encoding(func_result) @@ -164,6 +166,7 @@ def tryInt(s, s_default=0): except: return s_default + # NZBGet V11+ # Check if the script is called from nzbget 11.0 or later nzbget_version = evn.get('NZBOP_VERSION', '0.1') @@ -174,16 +177,17 @@ if nzbget_version >= 11: # NZBGet argv: all passed as environment variables. clientAgent = "nzbget" # Exit codes used by NZBGet - POSTPROCESS_PARCHECK=92 - POSTPROCESS_SUCCESS=93 - POSTPROCESS_ERROR=94 - POSTPROCESS_NONE=95 + POSTPROCESS_PARCHECK = 92 + POSTPROCESS_SUCCESS = 93 + POSTPROCESS_ERROR = 94 + POSTPROCESS_NONE = 95 # Check nzbget.conf options status = 0 if evn['NZBOP_UNPACK'] != 'yes': - logger.log("Please enable option \"Unpack\" in nzbget configuration file, exiting") + logger.log( + "Please enable option \"Unpack\" in nzbget configuration file, exiting") sys.exit(POSTPROCESS_NONE) parstatus = evn['NZBPP_PARSTATUS'] @@ -216,20 +220,24 @@ if nzbget_version >= 11: fileExtension = ek.ek(os.path.splitext, file)[1] if fileExtension in ['.par2']: - logger.log("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\"g") + logger.log( + "Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\"g") status = 1 break if ek.ek(os.path.isfile, ek.ek(os.path.join, directory, "_brokenlog.txt")) and not status == 1: - logger.log("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting") + logger.log( + "Post-Process: _brokenlog.txt exists, download is probably damaged, exiting") status = 1 if not status == 1: - logger.log("Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful") + logger.log( + "Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful") # Check if destination directory exists (important for reprocessing of history items) if not ek.ek(os.path.isdir, directory): - logger.log("Post-Process: Nothing to post-process: destination directory %s doesn't exist" % directory) + logger.log( + "Post-Process: Nothing to post-process: destination directory %s doesn't exist" % directory) status = 1 # All checks done, now launching the script. @@ -254,33 +262,39 @@ if nzbget_version >= 11: for wp in word_p: if wp[0] == ".": new_words += "." - new_words += re.sub(r"\W","",wp) + new_words += re.sub(r"\W", "", wp) for cr in char_replace: - new_words = re.sub(cr[0],cr[1],new_words) + new_words = re.sub(cr[0], cr[1], new_words) new_filename = new_words[::-1] + na_parts.group(1)[::-1] else: new_filename = fileName[::-1] - logger.log("reversing filename from: %s to %s" % (fileName, new_filename)) + logger.log("reversing filename from: %s to %s" % + (fileName, new_filename)) try: - ek.ek(os.rename, filePath, ek.ek(os.path.join, dirpath, new_filename + fileExtension)) + ek.ek(os.rename, filePath, ek.ek(os.path.join, + dirpath, new_filename + fileExtension)) rd = True - except Exception,e: + except Exception, e: logger.log(e, logger.ERROR) - logger.log("Error: unable to rename file %s" % file, logger.ERROR) + logger.log("Error: unable to rename file %s" % + file, logger.ERROR) pass elif (fileExtension.lower() in media_extentions) and (garbage_name.search(fileName) is not None) and (media_pattern.search(base_name) is not None): videos += 1 old_name = filePath - new_name = ek.ek(os.path.join, dirname, '%s%s' % (base_name, fileExtension)) + new_name = ek.ek(os.path.join, dirname, '%s%s' % + (base_name, fileExtension)) if not rd and videos == 1 and old_name is not None and new_name is not None: - logger.log("renaming the File %s to the Dirname %s" % (ek.ek(os.path.basename, old_name), base_name)) + logger.log("renaming the File %s to the Dirname %s" % + (ek.ek(os.path.basename, old_name), base_name)) try: ek.ek(os.rename, old_name, new_name) rd = True - except Exception,e: + except Exception, e: logger.log(e, logger.ERROR) - logger.log("Error unable to rename file %s" % old_name, logger.ERROR) + logger.log("Error unable to rename file %s" % + old_name, logger.ERROR) pass if rd: @@ -289,5 +303,6 @@ if nzbget_version >= 11: sys.exit(POSTPROCESS_NONE) else: - logger.log("This script can only be called from NZBGet (11.0 or later).", logger.ERROR) + logger.log( + "This script can only be called from NZBGet (11.0 or later).", logger.ERROR) sys.exit(0) diff --git a/apps/templates/nzbget/scripts/unzip.py b/apps/templates/nzbget/scripts/unzip.py index 521a50f..204c630 100644 --- a/apps/templates/nzbget/scripts/unzip.py +++ b/apps/templates/nzbget/scripts/unzip.py @@ -12,7 +12,15 @@ ### NZBGET SCAN SCRIPT ### ############################################################################## -import os, zipfile, tarfile, gzip, pickle, datetime, re, struct, locale +import os +import zipfile +import tarfile +import gzip +import pickle +import datetime +import re +import struct +import locale import rarfile.rarfile as rarfile from gzip import FEXTRA, FNAME @@ -94,9 +102,11 @@ else: dupescore = None dupemode = None -tmp_zipinfo = os.path.join(os.environ.get('NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info') +tmp_zipinfo = os.path.join(os.environ.get( + 'NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info') nzb_list = [] + def read_gzip_info(gzipfile): gf = gzipfile.fileobj pos = gf.tell() @@ -128,13 +138,14 @@ def read_gzip_info(gzipfile): fname = [] while True: s = gf.read(1) - if not s or s=='\000': + if not s or s == '\000': break fname.append(s) gf.seek(pos) return ''.join(fname), size + def save_obj(obj, name): tp = os.path.dirname(name) if not os.path.exists(tp): @@ -149,6 +160,7 @@ def save_obj(obj, name): except: print "Error saving: " + name + def load_obj(name): if os.path.isfile(name): try: @@ -160,6 +172,7 @@ def load_obj(name): else: return None + def save_nzb_list(): if nzb_list: save_obj(nzb_list, tmp_zipinfo) @@ -170,6 +183,7 @@ def save_nzb_list(): except: print "Error deleting " + tmp_zipinfo + def load_nzb_list(): global nzb_list nzb_list = load_obj(tmp_zipinfo) @@ -180,39 +194,49 @@ def load_nzb_list(): if nzb_list is not None and o_l != len(nzb_list): save_nzb_list() + def get_files(zf): zi = zf.infolist() - zi[:] = [el for el in zi if os.path.splitext(el.filename)[1].lower() == '.nzb'] + zi[:] = [el for el in zi if os.path.splitext( + el.filename)[1].lower() == '.nzb'] return zi + def get_tar_files(tf): ti = tf.getmembers() - ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name)[1].lower() == '.nzb'] + ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name) + [1].lower() == '.nzb'] return ti + def get_rar_files(rf): ri = rf.infolist() - ri[:] = [el for el in ri if os.path.splitext(el.filename)[1].lower() == '.nzb'] + ri[:] = [el for el in ri if os.path.splitext( + el.filename)[1].lower() == '.nzb'] return ri + def remove_filename(): try: os.unlink(filename) except: print "Error deleting " + filename + if ext == '.zip': load_nzb_list() zipf = zipfile.ZipFile(filename, mode='r') zf = get_files(zipf) if zf: - zipf.extractall(path = dir, members = zf) + zipf.extractall(path=dir, members=zf) now = datetime.datetime.now() for z in zf: if nzb_list: - nzb_list.append([z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([z.filename, cat, prio, top, + pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[z.filename, cat, prio, top, + pause, dupekey, dupescore, dupemode, now]] save_nzb_list() zipf.close() @@ -223,13 +247,15 @@ elif ext in ['.tar.gz', '.tar', '.tgz']: tarf = tarfile.open(filename, mode='r') tf = get_tar_files(tarf) if tf: - tarf.extractall(path = dir, members = tf) + tarf.extractall(path=dir, members=tf) now = datetime.datetime.now() for z in tf: if nzb_list: - nzb_list.append([z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([z.name, cat, prio, top, pause, + dupekey, dupescore, dupemode, now]) else: - nzb_list = [[z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[z.name, cat, prio, top, pause, + dupekey, dupescore, dupemode, now]] save_nzb_list() tarf.close() @@ -237,7 +263,7 @@ elif ext in ['.tar.gz', '.tar', '.tgz']: elif ext == '.gz': load_nzb_list() - gzf =gzip.open(filename, mode='rb') + gzf = gzip.open(filename, mode='rb') out_filename, size = read_gzip_info(gzf) if out_filename and os.path.splitext(out_filename)[1].lower() == '.nzb': with open(os.path.join(os.path.dirname(filename), out_filename), 'wb') as outf: @@ -247,9 +273,11 @@ elif ext == '.gz': if gzf and out_filename: now = datetime.datetime.now() if nzb_list: - nzb_list.append([os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([os.path.basename( + out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[os.path.basename( + out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]] save_nzb_list() gzf.close() @@ -260,13 +288,15 @@ elif ext == '.rar': rarf = rarfile.RarFile(filename, mode='r') rf = get_files(rarf) if rf: - rarf.extractall(path = dir, members = rf) + rarf.extractall(path=dir, members=rf) now = datetime.datetime.now() for r in rf: if nzb_list: - nzb_list.append([r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([r.filename, cat, prio, top, + pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[r.filename, cat, prio, top, + pause, dupekey, dupescore, dupemode, now]] save_nzb_list() rarf.close() diff --git a/apps/transmission-vpn.yml b/apps/transmission-vpn.yml index 254e2c8..fc099d2 100644 --- a/apps/transmission-vpn.yml +++ b/apps/transmission-vpn.yml @@ -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 ###################################################################### @@ -120,13 +120,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 +143,7 @@ - name: 'Wait for {{pgrole}} to initialize' wait_for: timeout=30 - + - name: 'Stopping {{pgrole}}. Go configure ENV values.' docker_container: name: '{{pgrole}}' diff --git a/apps/unifi.yml b/apps/unifi.yml index 403107d..f80613f 100644 --- a/apps/unifi.yml +++ b/apps/unifi.yml @@ -35,23 +35,23 @@ - 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}}' + 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' + - name: 'Setting PG Volumes' set_fact: pg_volumes: @@ -63,7 +63,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/vnc-xfce.yml b/apps/vnc-xfce.yml index 54b8739..a941942 100644 --- a/apps/vnc-xfce.yml +++ b/apps/vnc-xfce.yml @@ -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 @@ -44,7 +44,7 @@ pg_env: PUID: '1000' PGID: '1000' - + # MAIN DEPLOYMENT ############################################################# - name: 'Deploying {{pgrole}}' docker_container: diff --git a/apps/zammad.yml b/apps/zammad.yml index 3481879..79c6666 100644 --- a/apps/zammad.yml +++ b/apps/zammad.yml @@ -9,23 +9,23 @@ - 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: diff --git a/place.holder b/place.holder index 8b13789..e69de29 100644 --- a/place.holder +++ b/place.holder @@ -1 +0,0 @@ - From 7d85e979338e9202a4ca1851ae9d5e5e0390c52a Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Wed, 17 Jul 2019 02:04:43 -0700 Subject: [PATCH 16/39] fix --- apps/templates/broken/nzbthrottle.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml index 550ecaf..264c02b 100644 --- a/apps/templates/broken/nzbthrottle.yml +++ b/apps/templates/broken/nzbthrottle.yml @@ -26,17 +26,6 @@ path: '/opt/communityapps/apps/templates/{{pgrole}}/config.json' register: jsoncheck - - 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 - owner: '1000' - group: '1000' - mode: 0775 - when: not jsoncheck.stat.exists - # LABELS ###################################################################### - name: 'Adding Traefik' set_fact: @@ -51,7 +40,7 @@ set_fact: pg_volumes: - '/etc/localtime:/etc/localtime:ro' - - '/opt/appdata/{{pgrole}}/config.json:/{{pgrole}}/config.json:ro' + - '/opt/appdata/{{pgrole}}:/{{pgrole}}' - name: 'Setting PG ENV' set_fact: From 1f49b9aa0821eaf0635238fedb3ac1c903941738 Mon Sep 17 00:00:00 2001 From: LooseSeal2 <52112293+LooseSeal2@users.noreply.github.com> Date: Wed, 17 Jul 2019 21:39:00 -0700 Subject: [PATCH 17/39] Fix name --- apps/rflood-vpn.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/rflood-vpn.yml b/apps/rflood-vpn.yml index c5cd676..7ee0c0d 100644 --- a/apps/rflood-vpn.yml +++ b/apps/rflood-vpn.yml @@ -13,7 +13,7 @@ - name: 'Set Known Facts' set_fact: - pgrole: 'rflood' + pgrole: 'rflood-vpn' intport: '80' extport: '5896' image: 'h1f0x/rtorrent-flood-openvpn' From 6c8f0816413f9fdcbf5249604ebbfb21314ee1fe Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Thu, 18 Jul 2019 17:21:11 -0700 Subject: [PATCH 18/39] fix for www on tld --- apps/_core.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/_core.yml b/apps/_core.yml index d1779ca..7f0025b 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -91,7 +91,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}}" From b116bdc9b67e8b43a5dd7d95111b3decc4819b72 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Thu, 18 Jul 2019 21:56:25 -0700 Subject: [PATCH 19/39] HSTS compliance --- apps/airsonic.yml | 10 ++++++++++ apps/alltube.yml | 10 ++++++++++ apps/avidemux.yml | 10 ++++++++++ apps/bazarr.yml | 10 ++++++++++ apps/beets.yml | 10 ++++++++++ apps/booksonic.yml | 10 ++++++++++ apps/cadvisor.yml | 10 ++++++++++ apps/calibre-web.yml | 10 ++++++++++ apps/cloudcmd.yml | 10 ++++++++++ apps/deezloaderremix.yml | 10 ++++++++++ apps/deluge-vpn.yml | 10 ++++++++++ apps/deluge.yml | 10 ++++++++++ apps/domoticz.yml | 10 ++++++++++ apps/dozzle.yml | 10 ++++++++++ apps/duplicati.yml | 10 ++++++++++ apps/embystats.yml | 10 ++++++++++ apps/filebot.yml | 10 ++++++++++ apps/filezilla.yml | 10 ++++++++++ apps/firefox.yml | 10 ++++++++++ apps/flexget.yml | 10 ++++++++++ apps/flextv.yml | 10 ++++++++++ apps/gazee.yml | 10 ++++++++++ apps/gitea.yml | 10 ++++++++++ apps/handbrake.yml | 10 ++++++++++ apps/headphones.yml | 10 ++++++++++ apps/htpcmanager.yml | 10 ++++++++++ apps/jd2-openvpn.yml | 10 ++++++++++ apps/jdownloader2.yml | 10 ++++++++++ apps/kitana.yml | 10 ++++++++++ apps/logarr.yml | 10 ++++++++++ apps/makemkv.yml | 10 ++++++++++ apps/mariadb.yml | 10 ++++++++++ apps/mediainfo.yml | 10 ++++++++++ apps/medusa.yml | 10 ++++++++++ apps/mellow.yml | 10 ++++++++++ apps/mkvtoolnix.yml | 10 ++++++++++ apps/monitorr.yml | 10 ++++++++++ apps/muximux.yml | 10 ++++++++++ apps/mylar.yml | 10 ++++++++++ apps/nowshowing.yml | 10 ++++++++++ apps/nzbget-mp4.yml | 10 ++++++++++ apps/ombi4k.yml | 10 ++++++++++ apps/ombiHDR.yml | 10 ++++++++++ apps/pyload.yml | 10 ++++++++++ apps/qbittorrent-vpn.yml | 10 ++++++++++ apps/radarr4k.yml | 10 ++++++++++ apps/radarrhdr.yml | 10 ++++++++++ apps/rclonebrowser.yml | 10 ++++++++++ apps/rdp-calibre.yml | 10 ++++++++++ apps/resilio.yml | 10 ++++++++++ apps/rflood-vpn.yml | 10 ++++++++++ apps/rutorrent-vpn.yml | 10 ++++++++++ apps/sharesite.yml | 10 ++++++++++ apps/shoko.yml | 10 ++++++++++ apps/sonarr4k.yml | 10 ++++++++++ apps/sonarrhdr.yml | 10 ++++++++++ apps/speedtest.yml | 10 ++++++++++ apps/subsonic.yml | 10 ++++++++++ apps/syncthing.yml | 10 ++++++++++ apps/teamspeak3.yml | 10 ++++++++++ apps/templates/broken/kodi-headless.yml | 10 ++++++++++ apps/templates/broken/nzbthrottle.yml | 10 ++++++++++ apps/thelounge.yml | 10 ++++++++++ apps/traktor.yml | 10 ++++++++++ apps/transmission-vpn.yml | 10 ++++++++++ apps/ubooquity.yml | 10 ++++++++++ apps/varken.yml | 10 ++++++++++ apps/vnc-xfce.yml | 10 ++++++++++ apps/xteve.yml | 10 ++++++++++ apps/zammad.yml | 10 ++++++++++ 70 files changed, 700 insertions(+) diff --git a/apps/airsonic.yml b/apps/airsonic.yml index e6f56ae..a5b5704 100644 --- a/apps/airsonic.yml +++ b/apps/airsonic.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/alltube.yml b/apps/alltube.yml index be82b40..e00c917 100644 --- a/apps/alltube.yml +++ b/apps/alltube.yml @@ -40,6 +40,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/avidemux.yml b/apps/avidemux.yml index 542fb40..b39e487 100644 --- a/apps/avidemux.yml +++ b/apps/avidemux.yml @@ -49,6 +49,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/bazarr.yml b/apps/bazarr.yml index 3aded00..5cc3c69 100644 --- a/apps/bazarr.yml +++ b/apps/bazarr.yml @@ -29,6 +29,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/beets.yml b/apps/beets.yml index 5daf87e..40f7864 100644 --- a/apps/beets.yml +++ b/apps/beets.yml @@ -36,6 +36,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/booksonic.yml b/apps/booksonic.yml index ead0354..2c55405 100644 --- a/apps/booksonic.yml +++ b/apps/booksonic.yml @@ -31,6 +31,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/cadvisor.yml b/apps/cadvisor.yml index 1f7c1f2..f6f8a07 100644 --- a/apps/cadvisor.yml +++ b/apps/cadvisor.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/calibre-web.yml b/apps/calibre-web.yml index b2e93ac..778530d 100644 --- a/apps/calibre-web.yml +++ b/apps/calibre-web.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/cloudcmd.yml b/apps/cloudcmd.yml index 799a4f8..a5eef6e 100644 --- a/apps/cloudcmd.yml +++ b/apps/cloudcmd.yml @@ -29,6 +29,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deezloaderremix.yml b/apps/deezloaderremix.yml index 2f42884..4f2d261 100644 --- a/apps/deezloaderremix.yml +++ b/apps/deezloaderremix.yml @@ -29,6 +29,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index 9872189..5ef3945 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -43,6 +43,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deluge.yml b/apps/deluge.yml index c24f3c2..1733359 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -44,6 +44,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/domoticz.yml b/apps/domoticz.yml index dc35552..51b7c85 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -33,6 +33,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/dozzle.yml b/apps/dozzle.yml index f7f87a9..32021ed 100644 --- a/apps/dozzle.yml +++ b/apps/dozzle.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/duplicati.yml b/apps/duplicati.yml index d14c2fd..70dd8ce 100644 --- a/apps/duplicati.yml +++ b/apps/duplicati.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/embystats.yml b/apps/embystats.yml index 0279a9d..2e62984 100644 --- a/apps/embystats.yml +++ b/apps/embystats.yml @@ -33,6 +33,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/filebot.yml b/apps/filebot.yml index d1d1be9..eb0a94b 100644 --- a/apps/filebot.yml +++ b/apps/filebot.yml @@ -31,6 +31,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/filezilla.yml b/apps/filezilla.yml index 786ffa5..a653137 100644 --- a/apps/filezilla.yml +++ b/apps/filezilla.yml @@ -41,6 +41,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/firefox.yml b/apps/firefox.yml index 7bdd457..281016a 100644 --- a/apps/firefox.yml +++ b/apps/firefox.yml @@ -58,6 +58,16 @@ 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' #traefik.frontend.headers.frameDeny: 'true' - name: 'Setting PG Volumes' diff --git a/apps/flexget.yml b/apps/flexget.yml index 7b375a6..ca38750 100644 --- a/apps/flexget.yml +++ b/apps/flexget.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/flextv.yml b/apps/flextv.yml index ff17e72..dc45746 100644 --- a/apps/flextv.yml +++ b/apps/flextv.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/gazee.yml b/apps/gazee.yml index ebc880f..78981f1 100644 --- a/apps/gazee.yml +++ b/apps/gazee.yml @@ -33,6 +33,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/gitea.yml b/apps/gitea.yml index 7435a56..d46b612 100644 --- a/apps/gitea.yml +++ b/apps/gitea.yml @@ -32,6 +32,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/handbrake.yml b/apps/handbrake.yml index 5a4f43c..c58fc8e 100644 --- a/apps/handbrake.yml +++ b/apps/handbrake.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/headphones.yml b/apps/headphones.yml index 53312f0..ac803c4 100644 --- a/apps/headphones.yml +++ b/apps/headphones.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/htpcmanager.yml b/apps/htpcmanager.yml index 207bcc0..cb068df 100644 --- a/apps/htpcmanager.yml +++ b/apps/htpcmanager.yml @@ -29,6 +29,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/jd2-openvpn.yml b/apps/jd2-openvpn.yml index 26cf971..3141ba2 100644 --- a/apps/jd2-openvpn.yml +++ b/apps/jd2-openvpn.yml @@ -45,6 +45,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/jdownloader2.yml b/apps/jdownloader2.yml index 73cc145..b50a870 100644 --- a/apps/jdownloader2.yml +++ b/apps/jdownloader2.yml @@ -45,6 +45,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/kitana.yml b/apps/kitana.yml index 1591b0c..fd5eeab 100644 --- a/apps/kitana.yml +++ b/apps/kitana.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/logarr.yml b/apps/logarr.yml index 9e59173..efb72c6 100644 --- a/apps/logarr.yml +++ b/apps/logarr.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/makemkv.yml b/apps/makemkv.yml index 608fe86..06e0cdf 100644 --- a/apps/makemkv.yml +++ b/apps/makemkv.yml @@ -32,6 +32,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mariadb.yml b/apps/mariadb.yml index 78b11db..7b76cf4 100644 --- a/apps/mariadb.yml +++ b/apps/mariadb.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mediainfo.yml b/apps/mediainfo.yml index 66fd6df..c7718d6 100644 --- a/apps/mediainfo.yml +++ b/apps/mediainfo.yml @@ -31,6 +31,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/medusa.yml b/apps/medusa.yml index ed41edc..a585c7b 100644 --- a/apps/medusa.yml +++ b/apps/medusa.yml @@ -33,6 +33,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mellow.yml b/apps/mellow.yml index 8460dad..159e34c 100644 --- a/apps/mellow.yml +++ b/apps/mellow.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mkvtoolnix.yml b/apps/mkvtoolnix.yml index aa5607a..6d91666 100644 --- a/apps/mkvtoolnix.yml +++ b/apps/mkvtoolnix.yml @@ -42,6 +42,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting default Volumes' set_fact: diff --git a/apps/monitorr.yml b/apps/monitorr.yml index 7c6cbe2..fa6994d 100644 --- a/apps/monitorr.yml +++ b/apps/monitorr.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/muximux.yml b/apps/muximux.yml index fce2d5f..57c42d7 100644 --- a/apps/muximux.yml +++ b/apps/muximux.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mylar.yml b/apps/mylar.yml index 1f737bf..d46814a 100644 --- a/apps/mylar.yml +++ b/apps/mylar.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/nowshowing.yml b/apps/nowshowing.yml index 9303c25..6bac516 100644 --- a/apps/nowshowing.yml +++ b/apps/nowshowing.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/nzbget-mp4.yml b/apps/nzbget-mp4.yml index ed9ae9e..c800e8f 100644 --- a/apps/nzbget-mp4.yml +++ b/apps/nzbget-mp4.yml @@ -132,6 +132,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' traefik.frontend.auth.forward.address: '{{gauth}}' - name: 'Setting PG Volumes' diff --git a/apps/ombi4k.yml b/apps/ombi4k.yml index fcfd8f1..0b95788 100644 --- a/apps/ombi4k.yml +++ b/apps/ombi4k.yml @@ -46,6 +46,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml index 61d0a23..77bee67 100644 --- a/apps/ombiHDR.yml +++ b/apps/ombiHDR.yml @@ -46,6 +46,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/pyload.yml b/apps/pyload.yml index ee21ab0..bac4e96 100644 --- a/apps/pyload.yml +++ b/apps/pyload.yml @@ -32,6 +32,16 @@ traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index 75d9c18..a53fd2b 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -46,6 +46,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/radarr4k.yml b/apps/radarr4k.yml index 4437ba2..ede857d 100644 --- a/apps/radarr4k.yml +++ b/apps/radarr4k.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/radarrhdr.yml b/apps/radarrhdr.yml index b9674b2..68cc1c6 100644 --- a/apps/radarrhdr.yml +++ b/apps/radarrhdr.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index bdaa6bc..76910c0 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -31,6 +31,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rdp-calibre.yml b/apps/rdp-calibre.yml index 5520dc8..c50d121 100644 --- a/apps/rdp-calibre.yml +++ b/apps/rdp-calibre.yml @@ -31,6 +31,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/resilio.yml b/apps/resilio.yml index 9af7405..02903b9 100644 --- a/apps/resilio.yml +++ b/apps/resilio.yml @@ -48,6 +48,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rflood-vpn.yml b/apps/rflood-vpn.yml index 7ee0c0d..69555b3 100644 --- a/apps/rflood-vpn.yml +++ b/apps/rflood-vpn.yml @@ -41,6 +41,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rutorrent-vpn.yml b/apps/rutorrent-vpn.yml index efc5406..dc18af6 100644 --- a/apps/rutorrent-vpn.yml +++ b/apps/rutorrent-vpn.yml @@ -41,6 +41,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sharesite.yml b/apps/sharesite.yml index d095f07..28cf5b2 100644 --- a/apps/sharesite.yml +++ b/apps/sharesite.yml @@ -41,6 +41,16 @@ traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/shoko.yml b/apps/shoko.yml index 0a38b9a..6ba67e0 100644 --- a/apps/shoko.yml +++ b/apps/shoko.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sonarr4k.yml b/apps/sonarr4k.yml index f3aa995..83f7b09 100644 --- a/apps/sonarr4k.yml +++ b/apps/sonarr4k.yml @@ -30,6 +30,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sonarrhdr.yml b/apps/sonarrhdr.yml index 22699eb..47dd683 100644 --- a/apps/sonarrhdr.yml +++ b/apps/sonarrhdr.yml @@ -30,6 +30,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/speedtest.yml b/apps/speedtest.yml index 1c29241..74a60ed 100644 --- a/apps/speedtest.yml +++ b/apps/speedtest.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/subsonic.yml b/apps/subsonic.yml index 8b07e92..cd470df 100644 --- a/apps/subsonic.yml +++ b/apps/subsonic.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/syncthing.yml b/apps/syncthing.yml index cff6db7..d686cb4 100644 --- a/apps/syncthing.yml +++ b/apps/syncthing.yml @@ -41,6 +41,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/teamspeak3.yml b/apps/teamspeak3.yml index cf1b51e..6dc131b 100644 --- a/apps/teamspeak3.yml +++ b/apps/teamspeak3.yml @@ -42,6 +42,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' # VOLUMES ######### - name: 'Setting PG Volumes' diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml index ff51a2e..4756453 100644 --- a/apps/templates/broken/kodi-headless.yml +++ b/apps/templates/broken/kodi-headless.yml @@ -33,6 +33,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml index 264c02b..1b40429 100644 --- a/apps/templates/broken/nzbthrottle.yml +++ b/apps/templates/broken/nzbthrottle.yml @@ -35,6 +35,16 @@ traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/thelounge.yml b/apps/thelounge.yml index 1fbefb0..caf9807 100644 --- a/apps/thelounge.yml +++ b/apps/thelounge.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/traktor.yml b/apps/traktor.yml index 56e0d67..7e0a0a4 100644 --- a/apps/traktor.yml +++ b/apps/traktor.yml @@ -30,6 +30,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/transmission-vpn.yml b/apps/transmission-vpn.yml index fc099d2..da6f265 100644 --- a/apps/transmission-vpn.yml +++ b/apps/transmission-vpn.yml @@ -43,6 +43,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/ubooquity.yml b/apps/ubooquity.yml index fea2b84..f5fe701 100644 --- a/apps/ubooquity.yml +++ b/apps/ubooquity.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/varken.yml b/apps/varken.yml index 2011338..e0f5a4e 100644 --- a/apps/varken.yml +++ b/apps/varken.yml @@ -33,6 +33,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/vnc-xfce.yml b/apps/vnc-xfce.yml index a941942..d697728 100644 --- a/apps/vnc-xfce.yml +++ b/apps/vnc-xfce.yml @@ -29,6 +29,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/xteve.yml b/apps/xteve.yml index e222fe8..5a70016 100644 --- a/apps/xteve.yml +++ b/apps/xteve.yml @@ -31,6 +31,16 @@ traefik.port: '{{intport}}' traefik.frontend.auth.forward.address: '{{gauth}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/zammad.yml b/apps/zammad.yml index 79c6666..f89ec24 100644 --- a/apps/zammad.yml +++ b/apps/zammad.yml @@ -33,6 +33,16 @@ traefik.enable: 'true' traefik.port: '{{intport}}' traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + 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.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: From c66f552ec271cf6d231d9da6a44cba1d346eb9ea Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Fri, 19 Jul 2019 11:17:39 -0700 Subject: [PATCH 20/39] revert --- .../deluge/plugins/autoremoveplus.conf | 36 +-- apps/templates/deluge/plugins/execute.conf | 16 +- apps/templates/deluge/plugins/extractor.conf | 2 +- .../deluge/scripts/deluge_extract.sh | 9 +- .../nzbget/MP4_Automator/TEMPLATEPPScript | 75 +++--- .../nzbget/MP4_Automator/autoProcess.ini | 1 + apps/templates/nzbget/cont-init.d/30-config | 8 +- .../nzbget/ffmpeg-build/build-ffmpeg | 145 ++++++------ .../nzbget/ffmpeg-build/web-install.sh | 11 +- .../templates/nzbget/scripts/DeleteSamples.py | 16 +- apps/templates/nzbget/scripts/flatten.py | 13 +- apps/templates/nzbget/scripts/hash.py | 25 +- .../nzbget/scripts/rarfile/__init__.py | 1 + .../nzbget/scripts/rarfile/rarfile.py | 223 ++++++------------ apps/templates/nzbget/scripts/reverse_name.py | 63 ++--- apps/templates/nzbget/scripts/unzip.py | 66 ++---- 16 files changed, 281 insertions(+), 429 deletions(-) diff --git a/apps/templates/deluge/plugins/autoremoveplus.conf b/apps/templates/deluge/plugins/autoremoveplus.conf index 4947a11..f23c6ba 100644 --- a/apps/templates/deluge/plugins/autoremoveplus.conf +++ b/apps/templates/deluge/plugins/autoremoveplus.conf @@ -1,23 +1,23 @@ { "file": 1, "format": 1 - }{ +}{ "interval": 1.0, - "max_seeds": 0, - "sel_func": "or", - "trackers": [], - "remove_data": true, - "labels": [], - "enabled": true, - "count_exempt": false, - "remove": true, - "filter": "func_ratio", - "tracker_rules": {}, - "min": 1.5, - "hdd_space": -1.0, - "filter2": "func_seed_time", - "rule_2_enabled": true, - "min2": 15.0, - "rule_1_enabled": true, + "max_seeds": 0, + "sel_func": "or", + "trackers": [], + "remove_data": true, + "labels": [], + "enabled": true, + "count_exempt": false, + "remove": true, + "filter": "func_ratio", + "tracker_rules": {}, + "min": 1.5, + "hdd_space": -1.0, + "filter2": "func_seed_time", + "rule_2_enabled": true, + "min2": 15.0, + "rule_1_enabled": true, "label_rules": {} -} +} \ No newline at end of file diff --git a/apps/templates/deluge/plugins/execute.conf b/apps/templates/deluge/plugins/execute.conf index 49f50b4..f0f83b0 100644 --- a/apps/templates/deluge/plugins/execute.conf +++ b/apps/templates/deluge/plugins/execute.conf @@ -1,12 +1,12 @@ { - "file": 1, + "file": 1, "format": 1 - }{ +}{ "commands": [ - [ - "0", - "complete", - "/config/scripts/extract.sh" + [ + "0", + "complete", + "/config/scripts/extract.sh" + ] ] - ] -} +} \ No newline at end of file diff --git a/apps/templates/deluge/plugins/extractor.conf b/apps/templates/deluge/plugins/extractor.conf index af84fb3..32e8ff4 100644 --- a/apps/templates/deluge/plugins/extractor.conf +++ b/apps/templates/deluge/plugins/extractor.conf @@ -1,7 +1,7 @@ { "file": 1, "format": 1 - }{ +}{ "use_name_folder": true, "extract_path": "/downloads/deluge/" } diff --git a/apps/templates/deluge/scripts/deluge_extract.sh b/apps/templates/deluge/scripts/deluge_extract.sh index 689c021..9c14361 100644 --- a/apps/templates/deluge/scripts/deluge_extract.sh +++ b/apps/templates/deluge/scripts/deluge_extract.sh @@ -11,7 +11,8 @@ torrentid=$1 torrentname=$2 torrentpath=$3 -log() { +log() +{ logger -t deluge-extractarchives "$@" } @@ -23,11 +24,11 @@ for format in "${formats[@]}"; do cd "$(dirname "$file")" file=$(basename "$file") # if extraction_subdir is not empty, extract to subdirectory - if [[ ! -z "$extraction_subdir" ]]; then + if [[ ! -z "$extraction_subdir" ]] ; then mkdir "$extraction_subdir" cd "$extraction_subdir" file="../$file" fi ${commands[$format]} "$file" - done < <(find "$torrentpath/$torrentname" -iname "*.${format}") -done + done < <(find "$torrentpath/$torrentname" -iname "*.${format}" ) +done \ No newline at end of file diff --git a/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript b/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript index 7a14ba8..6eb7055 100644 --- a/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript +++ b/apps/templates/nzbget/MP4_Automator/TEMPLATEPPScript @@ -14,31 +14,31 @@ ### OPTIONS ### # Change to full path to MP4 Automator folder. No quotes and a trailing / -# MP4_FOLDER=~/sickbeard_mp4_automator/ +#MP4_FOLDER=~/sickbeard_mp4_automator/ # Convert file before passing to destination (True, False) -# SHOULDCONVERT=False +#SHOULDCONVERT=False # Category for Couchpotato -# CP_CAT=Couchpotato +#CP_CAT=Couchpotato # Category for Sonarr -# SONARR_CAT=Sonarr +#SONARR_CAT=Sonarr # Category for Radarr -# RADARR_CAT=Radarr +#RADARR_CAT=Radarr # Category for Sickbeard -# SICKBEARD_CAT=Sickbeard +#SICKBEARD_CAT=Sickbeard # Category for Sickrage -# SICKRAGE_CAT=Sickrage +#SICKRAGE_CAT=Sickrage # Category list (comma seperated) for bypassing any further processing but still converting -# BYPASS_CAT=tv,movies +#BYPASS_CAT=tv,movies # Custom output_directory setting -# OUTPUT_DIR= +#OUTPUT_DIR= ### NZBGET POST-PROCESSING SCRIPT ### ############################################################################## @@ -56,7 +56,7 @@ MP4folder = MP4folder.replace("'", "") MP4folder = MP4folder.replace("\\", "/") if not(MP4folder.endswith("/")): MP4folder += "/" -# DEBUG#print MP4folder+" the original is "+os.environ['NZBPO_MP4_FOLDER'] +#DEBUG#print MP4folder+" the original is "+os.environ['NZBPO_MP4_FOLDER'] output_dir = None if 'NZBPO_OUTPUT_DIR' in os.environ: @@ -67,7 +67,7 @@ if 'NZBPO_OUTPUT_DIR' in os.environ: output_dir = output_dir.replace("\\", "/") if not(output_dir.endswith("/")): output_dir += "/" - # DEBUG#print Overriding output directory + #DEBUG#print Overriding output directory sys.path.append(MP4folder) try: @@ -77,8 +77,7 @@ try: import logging from logging.config import fileConfig except ImportError: - print("[ERROR] Wrong path to sickbeard_mp4_automator: " + - os.environ['NZBPO_MP4_FOLDER']) + print("[ERROR] Wrong path to sickbeard_mp4_automator: " + os.environ['NZBPO_MP4_FOLDER']) print("[ERROR] %s" % traceback.print_exc()) sys.exit(0) @@ -91,32 +90,28 @@ elif not os.path.isdir(logpath): os.mkdir(logpath) except: logpath = MP4folder -configPath = os.path.abspath(os.path.join( - MP4folder, 'logging.ini')).replace("\\", "\\\\") -logPath = os.path.abspath(os.path.join( - logpath, 'index.log')).replace("\\", "\\\\") +configPath = os.path.abspath(os.path.join(MP4folder, 'logging.ini')).replace("\\", "\\\\") +logPath = os.path.abspath(os.path.join(logpath, 'index.log')).replace("\\", "\\\\") fileConfig(configPath, defaults={'logfilename': logPath}) log = logging.getLogger("NZBGetPostProcess") # Determine if conversion will take place -shouldConvert = (os.environ['NZBPO_SHOULDCONVERT'].lower() in ( - "yes", "true", "t", "1")) +shouldConvert = (os.environ['NZBPO_SHOULDCONVERT'].lower() in ("yes", "true", "t", "1")) if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '11.0': log.info("Script triggered from NZBGet (11.0 or later).") path = os.environ['NZBPP_DIRECTORY'] # Path to NZB directory nzb = os.environ['NZBPP_NZBFILENAME'] # Original NZB name - # NZB Category to determine destination - category = os.environ['NZBPP_CATEGORY'] - # DEBUG#print "Category is %s." % category + category = os.environ['NZBPP_CATEGORY'] # NZB Category to determine destination + #DEBUG#print "Category is %s." % category couchcat = os.environ['NZBPO_CP_CAT'].lower() sonarrcat = os.environ['NZBPO_SONARR_CAT'].lower() radarrcat = os.environ['NZBPO_RADARR_CAT'].lower() sickbeardcat = os.environ['NZBPO_SICKBEARD_CAT'].lower() sickragecat = os.environ['NZBPO_SICKRAGE_CAT'].lower() - bypass = os.environ['NZBPO_BYPASS_CAT'].lower().replace(' ', '').split(',') + bypass = os.environ['NZBPO_BYPASS_CAT'].lower().replace(' ','').split(',') categories = [sickbeardcat, couchcat, sonarrcat, radarrcat, sickragecat] @@ -137,8 +132,7 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 status = 0 if os.environ['NZBOP_UNPACK'] != 'yes': - log.error( - "Please enable option \"Unpack\" in nzbget configuration file, exiting.") + log.error("Please enable option \"Unpack\" in nzbget configuration file, exiting.") sys.exit(POSTPROCESS_NONE) # Check par status @@ -165,31 +159,26 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 fileExtension = os.path.splitext(file)[1] if fileExtension in ['.par2']: - log.error( - "Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\".") + log.error("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\".") status = 1 break if os.path.isfile(os.path.join(os.environ['NZBPP_DIRECTORY'], "_brokenlog.txt")) and not status == 1: - log.error( - "Post-Process: _brokenlog.txt exists, download is probably damaged, exiting.") + log.error("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting.") status = 1 if not status == 1: - log.error( - "Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful.") + log.error("Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful.") # Check if destination directory exists (important for reprocessing of history items) if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - log.error("Post-Process: Nothing to post-process: destination directory ", - os.environ['NZBPP_DIRECTORY'], "doesn't exist.") + log.error("Post-Process: Nothing to post-process: destination directory ", os.environ['NZBPP_DIRECTORY'], "doesn't exist.") status = 1 sys.exit(POSTPROCESS_NONE) # Make sure one of the appropriate categories is set if category.lower() not in categories and category.lower() not in bypass: - log.error( - "Post-Process: No valid category detected. Category was %s." % (category)) + log.error("Post-Process: No valid category detected. Category was %s." % (category)) status = 1 sys.exit(POSTPROCESS_NONE) @@ -209,8 +198,8 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 for r, d, f in os.walk(path): for files in f: inputfile = os.path.join(r, files) - # DEBUG#print inputfile - # Ignores files under 50MB + #DEBUG#print inputfile + #Ignores files under 50MB if os.path.getsize(inputfile) > 50000000: if MkvtoMp4(settings, logger=log).validSource(inputfile): try: @@ -221,33 +210,33 @@ if 'NZBOP_SCRIPTDIR' in os.environ and not os.environ['NZBOP_VERSION'][0:5] < '1 if converter.output_dir: path = converter.output_dir if (category.lower() == categories[0]): - # DEBUG#print "Sickbeard Processing Activated" + #DEBUG#print "Sickbeard Processing Activated" autoProcessTV.processEpisode(path, settings, nzb) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() == categories[1]): - # DEBUG#print "CouchPotato Processing Activated" + #DEBUG#print "CouchPotato Processing Activated" autoProcessMovie.process(path, settings, nzb, status) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() == categories[2]): - # DEBUG#print "Sonarr Processing Activated" + #DEBUG#print "Sonarr Processing Activated" success = sonarr.processEpisode(path, settings, True) if success: sys.exit(POSTPROCESS_SUCCESS) else: sys.exit(POSTPROCESS_ERROR) elif (category.lower() == categories[3]): - # DEBUG#print "Radarr Processing Activated" + #DEBUG#print "Radarr Processing Activated" success = radarr.processMovie(path, settings, True) if success: sys.exit(POSTPROCESS_SUCCESS) else: sys.exit(POSTPROCESS_ERROR) elif (category.lower() == categories[4]): - # DEBUG#print "Sickrage Processing Activated" + #DEBUG#print "Sickrage Processing Activated" autoProcessTVSR.processEpisode(path, settings, nzb) sys.exit(POSTPROCESS_SUCCESS) elif (category.lower() in bypass): - # DEBUG#print "Bypass Further Processing" + #DEBUG#print "Bypass Further Processing" sys.exit(POSTPROCESS_NONE) else: diff --git a/apps/templates/nzbget/MP4_Automator/autoProcess.ini b/apps/templates/nzbget/MP4_Automator/autoProcess.ini index 65c5740..8122743 100644 --- a/apps/templates/nzbget/MP4_Automator/autoProcess.ini +++ b/apps/templates/nzbget/MP4_Automator/autoProcess.ini @@ -141,3 +141,4 @@ host = plex port = 32400 refresh = False token = + diff --git a/apps/templates/nzbget/cont-init.d/30-config b/apps/templates/nzbget/cont-init.d/30-config index 79024ed..deaaacd 100644 --- a/apps/templates/nzbget/cont-init.d/30-config +++ b/apps/templates/nzbget/cont-init.d/30-config @@ -1,11 +1,11 @@ #!/usr/bin/with-contenv bash # delete lock file if found -[[ -f /downloads/nzbget.lock ]] && +[[ -f /downloads/nzbget.lock ]] && \ rm /downloads/nzbget.lock # check if config file exists in /config -[[ ! -f /config/nzbget.conf ]] && +[[ ! -f /config/nzbget.conf ]] && \ cp /defaults/nzbget.conf /config/nzbget.conf # permissions @@ -20,8 +20,8 @@ chmod u+rw \ chmod 777 -R \ /config chmod 777 -R \ - /app/nzbget + /app/nzbget chmod 777 -R \ - /downloads + /downloads exec /config/installer/installer.sh diff --git a/apps/templates/nzbget/ffmpeg-build/build-ffmpeg b/apps/templates/nzbget/ffmpeg-build/build-ffmpeg index 6d28362..fc9fee9 100644 --- a/apps/templates/nzbget/ffmpeg-build/build-ffmpeg +++ b/apps/templates/nzbget/ffmpeg-build/build-ffmpeg @@ -15,39 +15,39 @@ ADDITIONAL_CONFIGURE_OPTIONS="" # Speed up the process # Env Var NUMJOBS overrides automatic detection if [[ -n $NUMJOBS ]]; then - MJOBS=$NUMJOBS + MJOBS=$NUMJOBS elif [[ -f /proc/cpuinfo ]]; then - MJOBS=$(grep -c processor /proc/cpuinfo) + MJOBS=$(grep -c processor /proc/cpuinfo) elif [[ "$OSTYPE" == "darwin"* ]]; then MJOBS=$(sysctl -n machdep.cpu.thread_count) ADDITIONAL_CONFIGURE_OPTIONS="--enable-videotoolbox" else - MJOBS=4 + MJOBS=4 fi -make_dir() { +make_dir () { if [ ! -d $1 ]; then if ! mkdir $1; then - printf "\n Failed to create dir %s" "$1" + printf "\n Failed to create dir %s" "$1"; exit 1 fi fi } -remove_dir() { +remove_dir () { if [ -d $1 ]; then rm -r "$1" fi } -download() { - - DOWNLOAD_PATH=$PACKAGES +download () { + DOWNLOAD_PATH=$PACKAGES; + if [ ! -z "$3" ]; then mkdir -p $PACKAGES/$3 DOWNLOAD_PATH=$PACKAGES/$3 - fi + fi; if [ ! -f "$DOWNLOAD_PATH/$2" ]; then @@ -57,7 +57,7 @@ download() { EXITCODE=$? if [ $EXITCODE -ne 0 ]; then echo "" - echo "Failed to download $1. Exitcode $EXITCODE. Retrying in 10 seconds" + echo "Failed to download $1. Exitcode $EXITCODE. Retrying in 10 seconds"; sleep 10 curl -L --silent -o "$DOWNLOAD_PATH/$2" "$1" fi @@ -65,34 +65,34 @@ download() { EXITCODE=$? if [ $EXITCODE -ne 0 ]; then echo "" - echo "Failed to download $1. Exitcode $EXITCODE" + echo "Failed to download $1. Exitcode $EXITCODE"; exit 1 fi echo "... Done" if ! tar -xvf "$DOWNLOAD_PATH/$2" -C "$DOWNLOAD_PATH" 2>/dev/null >/dev/null; then - echo "Failed to extract $2" + echo "Failed to extract $2"; exit 1 fi fi } -execute() { +execute () { echo "$ $*" OUTPUT=$($@ 2>&1) if [ $? -ne 0 ]; then - echo "$OUTPUT" - echo "" - echo "Failed to Execute $*" >&2 - exit 1 - fi + echo "$OUTPUT" + echo "" + echo "Failed to Execute $*" >&2 + exit 1 + fi } -build() { +build () { echo "" echo "building $1" echo "=======================" @@ -106,14 +106,15 @@ build() { } command_exists() { - if ! [[ -x $(command -v "$1") ]]; then - return 1 - fi + if ! [[ -x $(command -v "$1") ]]; then + return 1 + fi - return 0 + return 0 } -build_done() { + +build_done () { touch "$PACKAGES/$1.done" } @@ -128,18 +129,18 @@ case "$1" in echo "Cleanup done." echo "" exit 0 - ;; -"--build") ;; + ;; +"--build") -\ - *) - echo "Usage: $0" - echo " --build: start building process" - echo " --cleanup: remove all working dirs" - echo " --help: show this help" - echo "" - exit 0 - ;; + ;; +*) + echo "Usage: $0" + echo " --build: start building process" + echo " --cleanup: remove all working dirs" + echo " --help: show this help" + echo "" + exit 0 + ;; esac echo "Using $MJOBS make jobs simultaneously." @@ -150,18 +151,18 @@ make_dir $WORKSPACE export PATH=${WORKSPACE}/bin:$PATH if ! command_exists "make"; then - echo "make not installed." - exit 1 + echo "make not installed."; + exit 1 fi if ! command_exists "g++"; then - echo "g++ not installed." - exit 1 + echo "g++ not installed."; + exit 1 fi if ! command_exists "curl"; then - echo "curl not installed." - exit 1 + echo "curl not installed."; + exit 1 fi if build "yasm"; then @@ -192,14 +193,14 @@ if build "opencore"; then fi if build "libvpx"; then - download "https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gz" "libvpx-1.7.0.tar.gz" - cd $PACKAGES/libvpx-*0 || exit + download "https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gz" "libvpx-1.7.0.tar.gz" + cd $PACKAGES/libvpx-*0 || exit - if [[ "$OSTYPE" == "darwin"* ]]; then - echo "Applying Darwin patch" - sed "s/,--version-script//g" build/make/Makefile >build/make/Makefile.patched - sed "s/-Wl,--no-undefined -Wl,-soname/-Wl,-undefined,error -Wl,-install_name/g" build/make/Makefile.patched >build/make/Makefile - fi + if [[ "$OSTYPE" == "darwin"* ]]; then + echo "Applying Darwin patch" + sed "s/,--version-script//g" build/make/Makefile > build/make/Makefile.patched + sed "s/-Wl,--no-undefined -Wl,-soname/-Wl,-undefined,error -Wl,-install_name/g" build/make/Makefile.patched > build/make/Makefile + fi execute ./configure --prefix=${WORKSPACE} --disable-unit-tests --disable-shared execute make -j $MJOBS @@ -218,14 +219,14 @@ fi if build "xvidcore"; then download "http://downloads.xvid.org/downloads/xvidcore-1.3.4.tar.gz" "xvidcore-1.3.4.tar.gz" - cd $PACKAGES/xvidcore || exit - cd build/generic || exit + cd $PACKAGES/xvidcore || exit + cd build/generic || exit execute ./configure --prefix=${WORKSPACE} --disable-shared --enable-static execute make -j $MJOBS execute make install if [[ -f ${WORKSPACE}/lib/libxvidcore.4.dylib ]]; then - execute rm "${WORKSPACE}/lib/libxvidcore.4.dylib" + execute rm "${WORKSPACE}/lib/libxvidcore.4.dylib" fi build_done "xvidcore" @@ -237,11 +238,11 @@ if build "x264"; then if [[ "$OSTYPE" == "linux-gnu" ]]; then execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic CXXFLAGS="-fPIC" - else - execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic - fi + else + execute ./configure --prefix=${WORKSPACE} --enable-static --enable-pic + fi - execute make -j $MJOBS + execute make -j $MJOBS execute make install execute make install-lib-static build_done "x264" @@ -268,7 +269,7 @@ fi if build "libtheora"; then download "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz" "libtheora-1.1.1.tar.bz" cd $PACKAGES/libtheora-1.1.1 || exit - sed "s/-fforce-addr//g" configure >configure.patched + sed "s/-fforce-addr//g" configure > configure.patched chmod +x configure.patched mv configure.patched configure execute ./configure --prefix=${WORKSPACE} --with-ogg-libraries=${WORKSPACE}/lib --with-ogg-includes=${WORKSPACE}/include/ --with-vorbis-libraries=${WORKSPACE}/lib --with-vorbis-includes=${WORKSPACE}/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm @@ -288,7 +289,7 @@ fi if build "cmake"; then download "https://cmake.org/files/v3.11/cmake-3.11.3.tar.gz" "cmake-3.11.3.tar.gz" - cd $PACKAGES/cmake-3.11.3 || exit + cd $PACKAGES/cmake-3.11.3 || exit rm Modules/FindJava.cmake perl -p -i -e "s/get_filename_component.JNIPATH/#get_filename_component(JNIPATH/g" Tests/CMakeLists.txt perl -p -i -e "s/get_filename_component.JNIPATH/#get_filename_component(JNIPATH/g" Tests/CMakeLists.txt @@ -314,7 +315,7 @@ if build "x265"; then execute cmake -DCMAKE_INSTALL_PREFIX:PATH=${WORKSPACE} -DENABLE_SHARED:bool=off . execute make -j $MJOBS execute make install - sed "s/-lx265/-lx265 -lstdc++/g" "$WORKSPACE/lib/pkgconfig/x265.pc" >"$WORKSPACE/lib/pkgconfig/x265.pc.tmp" + sed "s/-lx265/-lx265 -lstdc++/g" "$WORKSPACE/lib/pkgconfig/x265.pc" > "$WORKSPACE/lib/pkgconfig/x265.pc.tmp" mv "$WORKSPACE/lib/pkgconfig/x265.pc.tmp" "$WORKSPACE/lib/pkgconfig/x265.pc" build_done "x265" fi @@ -328,16 +329,17 @@ if build "fdk_aac"; then build_done "fdk_aac" fi + build "ffmpeg" download "http://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2" "ffmpeg-snapshot.tar.bz2" cd $PACKAGES/ffmpeg-4.1 || exit ./configure $ADDITIONAL_CONFIGURE_OPTIONS \ - --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \ - --prefix=${WORKSPACE} \ - --pkg-config-flags="--static" \ - --extra-cflags="-I$WORKSPACE/include" \ - --extra-ldflags="-L$WORKSPACE/lib" \ - --extra-libs="-lpthread -lm" \ + --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \ + --prefix=${WORKSPACE} \ + --pkg-config-flags="--static" \ + --extra-cflags="-I$WORKSPACE/include" \ + --extra-ldflags="-L$WORKSPACE/lib" \ + --extra-libs="-lpthread -lm" \ --enable-static \ --disable-debug \ --disable-shared \ @@ -366,13 +368,14 @@ execute make install INSTALL_FOLDER="/usr/bin" if [[ "$OSTYPE" == "darwin"* ]]; then - INSTALL_FOLDER="/usr/local/bin" +INSTALL_FOLDER="/usr/local/bin" fi echo "" echo "Building done. The binary can be found here: $WORKSPACE/bin/ffmpeg" echo "" + if [[ $AUTOINSTALL == "yes" ]]; then if command_exists "sudo"; then sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" @@ -385,11 +388,11 @@ elif [[ ! $SKIPINSTALL == "yes" ]]; then read -r -p "Install the binary to your $INSTALL_FOLDER folder? [Y/n] " response case $response in - [yY][eE][sS] | [yY]) - sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - echo "Done. ffmpeg is now installed to your system" - ;; + [yY][eE][sS]|[yY]) + sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" + sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" + echo "Done. ffmpeg is now installed to your system" + ;; esac fi fi diff --git a/apps/templates/nzbget/ffmpeg-build/web-install.sh b/apps/templates/nzbget/ffmpeg-build/web-install.sh index 6c87270..ffe4158 100644 --- a/apps/templates/nzbget/ffmpeg-build/web-install.sh +++ b/apps/templates/nzbget/ffmpeg-build/web-install.sh @@ -1,13 +1,13 @@ #!/bin/bash # Helper script to download and run the build-ffmpeg script. -make_dir() { +make_dir () { if [ ! -d $1 ]; then - if ! mkdir $1; then - printf "\n Failed to create dir %s" "$1" + if ! mkdir $1; then + printf "\n Failed to create dir %s" "$1"; exit 1 fi - fi + fi } command_exists() { @@ -21,7 +21,7 @@ command_exists() { TARGET='ffmpeg-build' if ! command_exists "curl"; then - echo "curl not installed." + echo "curl not installed."; exit 1 fi @@ -37,3 +37,4 @@ echo "Now we download and execute the build script" echo "" bash build-ffmpeg --build + diff --git a/apps/templates/nzbget/scripts/DeleteSamples.py b/apps/templates/nzbget/scripts/DeleteSamples.py index 403ba01..395628f 100644 --- a/apps/templates/nzbget/scripts/DeleteSamples.py +++ b/apps/templates/nzbget/scripts/DeleteSamples.py @@ -16,7 +16,6 @@ NZBGET_POSTPROCESS_SUCCESS = 93 NZBGET_POSTPROCESS_ERROR = 94 NZBGET_POSTPROCESS_NONE = 95 - def is_sample(filePath, inputName, maxSampleSize, SampleIDs): # 200 MB in bytes SIZE_CUTOFF = int(maxSampleSize) * 1024 * 1024 @@ -30,18 +29,15 @@ def is_sample(filePath, inputName, maxSampleSize, SampleIDs): # Return False if none of these were met. return False - if not os.environ.has_key('NZBOP_SCRIPTDIR'): print "This script can only be called from NZBGet (11.0 or later)." sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "NZBGet Version %s is not supported. Please update NZBGet." % ( - str(os.environ['NZBOP_VERSION'])) + print "NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) sys.exit(0) -print "Script triggered from NZBGet Version %s." % ( - str(os.environ['NZBOP_VERSION'])) +print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) status = 0 if os.environ.has_key('NZBPP_TOTALSTATUS'): if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': @@ -73,8 +69,7 @@ else: # Check if destination directory exists (important for reprocessing of history items) if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - print "Nothing to post-process: destination directory", os.environ[ - 'NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." + print "Nothing to post-process: destination directory", os.environ['NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\"." status = 1 # All checks done, now launching the script. @@ -87,9 +82,8 @@ for dirpath, dirnames, filenames in os.walk(os.environ['NZBPP_DIRECTORY']): for file in filenames: filePath = os.path.join(dirpath, file) fileName, fileExtension = os.path.splitext(file) - if fileExtension in mediaContainer or ".*" in mediaContainer: # If the file is a video file - # Ignore samples - if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): + if fileExtension in mediaContainer or ".*" in mediaContainer : # If the file is a video file + if is_sample(filePath, os.environ['NZBPP_NZBNAME'], os.environ['NZBPO_MAXSAMPLESIZE'], SampleIDs): # Ignore samples print "Deleting sample file: ", filePath try: os.unlink(filePath) diff --git a/apps/templates/nzbget/scripts/flatten.py b/apps/templates/nzbget/scripts/flatten.py index 4b16c79..73dd0d5 100644 --- a/apps/templates/nzbget/scripts/flatten.py +++ b/apps/templates/nzbget/scripts/flatten.py @@ -22,17 +22,14 @@ if not os.environ.has_key('NZBOP_SCRIPTDIR'): sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % ( - str(os.environ['NZBOP_VERSION'])) + print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) sys.exit(0) -print "Script triggered from NZBGet Version %s." % ( - str(os.environ['NZBOP_VERSION'])) +print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) status = 0 if os.environ.has_key('NZBPP_TOTALSTATUS'): if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': - print "[ERROR] Download failed with status %s." % ( - os.environ['NZBPP_STATUS']) + print "[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']) status = 1 else: @@ -67,9 +64,8 @@ if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): if status == 1: sys.exit(NZBGET_POSTPROCESS_NONE) - def removeEmptyFolders(path, removeRoot=True): - # Function to remove empty folders + #Function to remove empty folders if not os.path.isdir(path): return @@ -88,7 +84,6 @@ def removeEmptyFolders(path, removeRoot=True): print "[INFO] Removing empty folder:%s" % path os.rmdir(path) - directory = os.path.normpath(os.environ['NZBPP_DIRECTORY']) if os.environ['NZBPO_DESTINATIONDIRECTORY'] and os.path.isdir(os.environ['NZBPO_DESTINATIONDIRECTORY']): destination = os.environ['NZBPO_DESTINATIONDIRECTORY'] diff --git a/apps/templates/nzbget/scripts/hash.py b/apps/templates/nzbget/scripts/hash.py index 07855b6..f2fbec1 100644 --- a/apps/templates/nzbget/scripts/hash.py +++ b/apps/templates/nzbget/scripts/hash.py @@ -25,25 +25,21 @@ NZBGET_POSTPROCESS_NONE = 95 # EXTENSION STUFF ############################################################ - def do_check(): if not os.environ.has_key('NZBOP_SCRIPTDIR'): print "This script can only be called from NZBGet (11.0 or later)." sys.exit(0) if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % ( - str(os.environ['NZBOP_VERSION'])) + print "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])) sys.exit(0) - print "Script triggered from NZBGet Version %s." % ( - str(os.environ['NZBOP_VERSION'])) + print "Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])) status = 0 if 'NZBPP_TOTALSTATUS' in os.environ: if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': - print "[ERROR] Download failed with status %s." % ( - os.environ['NZBPP_STATUS']) + print "[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']) status = 1 else: # Check par status @@ -148,8 +144,7 @@ if not found_files: print("[INFO] No files were found in \"%s\"" % directory) sys.exit(NZBGET_POSTPROCESS_NONE) else: - print("[INFO] Found %d files to check for hashed filenames" % - len(found_files)) + print("[INFO] Found %d files to check for hashed filenames" % len(found_files)) # loop files checking for file hash moved_files = 0 for found_file_path in found_files: @@ -159,18 +154,14 @@ else: # is this a file hash if is_file_hash(file_name): - new_file_path = os.path.join( - dir_name, "%s.%s" % (nzb_name, file_ext)) - print("[INFO] Moving \"%s\" to \"%s\"" % - (found_file_path, new_file_path)) + new_file_path = os.path.join(dir_name, "%s.%s" % (nzb_name, file_ext)) + print("[INFO] Moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)) try: shutil.move(found_file_path, new_file_path) moved_files += 1 except Exception: - print("[ERROR] Failed moving \"%s\" to \"%s\"" % - (found_file_path, new_file_path)) + print("[ERROR] Failed moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)) - print("[INFO] Finished processing \"%s\", moved %d files" % - (directory, moved_files)) + print("[INFO] Finished processing \"%s\", moved %d files" % (directory, moved_files)) sys.exit(NZBGET_POSTPROCESS_SUCCESS) diff --git a/apps/templates/nzbget/scripts/rarfile/__init__.py b/apps/templates/nzbget/scripts/rarfile/__init__.py index e69de29..8b13789 100644 --- a/apps/templates/nzbget/scripts/rarfile/__init__.py +++ b/apps/templates/nzbget/scripts/rarfile/__init__.py @@ -0,0 +1 @@ + diff --git a/apps/templates/nzbget/scripts/rarfile/rarfile.py b/apps/templates/nzbget/scripts/rarfile/rarfile.py index 4b793d3..c6e0d44 100644 --- a/apps/templates/nzbget/scripts/rarfile/rarfile.py +++ b/apps/templates/nzbget/scripts/rarfile/rarfile.py @@ -64,7 +64,7 @@ For more details, refer to source. from __future__ import division, print_function ## -# Imports and compat - support both Python 2.x and 3.x +## Imports and compat - support both Python 2.x and 3.x ## import sys @@ -113,16 +113,13 @@ try: class AES_CBC_Decrypt(object): """Decrypt API""" - def __init__(self, key, iv): - ciph = Cipher(algorithms.AES(key), - modes.CBC(iv), default_backend()) + ciph = Cipher(algorithms.AES(key), modes.CBC(iv), default_backend()) self.decrypt = ciph.decryptor().update def pbkdf2_sha256(password, salt, iters): """PBKDF2 with HMAC-SHA256""" - ctx = pbkdf2.PBKDF2HMAC( - hashes.SHA256(), 32, salt, iters, default_backend()) + ctx = pbkdf2.PBKDF2HMAC(hashes.SHA256(), 32, salt, iters, default_backend()) return ctx.derive(password) except ImportError: @@ -131,7 +128,6 @@ try: class AES_CBC_Decrypt(object): """Decrypt API""" - def __init__(self, key, iv): self.decrypt = AES.new(key, AES.MODE_CBC, iv).decrypt @@ -177,7 +173,7 @@ __version__ = '3.0' __all__ = ['is_rarfile', 'RarInfo', 'RarFile', 'RarExtFile'] ## -# Module configuration. Can be tuned after importing. +## Module configuration. Can be tuned after importing. ## #: default fallback charset @@ -226,72 +222,72 @@ HACK_SIZE_LIMIT = 20 * 1024 * 1024 PATH_SEP = '/' ## -# rar constants +## rar constants ## # block types -RAR_BLOCK_MARK = 0x72 # r -RAR_BLOCK_MAIN = 0x73 # s -RAR_BLOCK_FILE = 0x74 # t -RAR_BLOCK_OLD_COMMENT = 0x75 # u -RAR_BLOCK_OLD_EXTRA = 0x76 # v -RAR_BLOCK_OLD_SUB = 0x77 # w -RAR_BLOCK_OLD_RECOVERY = 0x78 # x -RAR_BLOCK_OLD_AUTH = 0x79 # y -RAR_BLOCK_SUB = 0x7a # z -RAR_BLOCK_ENDARC = 0x7b # { +RAR_BLOCK_MARK = 0x72 # r +RAR_BLOCK_MAIN = 0x73 # s +RAR_BLOCK_FILE = 0x74 # t +RAR_BLOCK_OLD_COMMENT = 0x75 # u +RAR_BLOCK_OLD_EXTRA = 0x76 # v +RAR_BLOCK_OLD_SUB = 0x77 # w +RAR_BLOCK_OLD_RECOVERY = 0x78 # x +RAR_BLOCK_OLD_AUTH = 0x79 # y +RAR_BLOCK_SUB = 0x7a # z +RAR_BLOCK_ENDARC = 0x7b # { # flags for RAR_BLOCK_MAIN -RAR_MAIN_VOLUME = 0x0001 -RAR_MAIN_COMMENT = 0x0002 -RAR_MAIN_LOCK = 0x0004 -RAR_MAIN_SOLID = 0x0008 -RAR_MAIN_NEWNUMBERING = 0x0010 -RAR_MAIN_AUTH = 0x0020 -RAR_MAIN_RECOVERY = 0x0040 -RAR_MAIN_PASSWORD = 0x0080 -RAR_MAIN_FIRSTVOLUME = 0x0100 -RAR_MAIN_ENCRYPTVER = 0x0200 +RAR_MAIN_VOLUME = 0x0001 +RAR_MAIN_COMMENT = 0x0002 +RAR_MAIN_LOCK = 0x0004 +RAR_MAIN_SOLID = 0x0008 +RAR_MAIN_NEWNUMBERING = 0x0010 +RAR_MAIN_AUTH = 0x0020 +RAR_MAIN_RECOVERY = 0x0040 +RAR_MAIN_PASSWORD = 0x0080 +RAR_MAIN_FIRSTVOLUME = 0x0100 +RAR_MAIN_ENCRYPTVER = 0x0200 # flags for RAR_BLOCK_FILE -RAR_FILE_SPLIT_BEFORE = 0x0001 -RAR_FILE_SPLIT_AFTER = 0x0002 -RAR_FILE_PASSWORD = 0x0004 -RAR_FILE_COMMENT = 0x0008 -RAR_FILE_SOLID = 0x0010 -RAR_FILE_DICTMASK = 0x00e0 -RAR_FILE_DICT64 = 0x0000 -RAR_FILE_DICT128 = 0x0020 -RAR_FILE_DICT256 = 0x0040 -RAR_FILE_DICT512 = 0x0060 -RAR_FILE_DICT1024 = 0x0080 -RAR_FILE_DICT2048 = 0x00a0 -RAR_FILE_DICT4096 = 0x00c0 -RAR_FILE_DIRECTORY = 0x00e0 -RAR_FILE_LARGE = 0x0100 -RAR_FILE_UNICODE = 0x0200 -RAR_FILE_SALT = 0x0400 -RAR_FILE_VERSION = 0x0800 -RAR_FILE_EXTTIME = 0x1000 -RAR_FILE_EXTFLAGS = 0x2000 +RAR_FILE_SPLIT_BEFORE = 0x0001 +RAR_FILE_SPLIT_AFTER = 0x0002 +RAR_FILE_PASSWORD = 0x0004 +RAR_FILE_COMMENT = 0x0008 +RAR_FILE_SOLID = 0x0010 +RAR_FILE_DICTMASK = 0x00e0 +RAR_FILE_DICT64 = 0x0000 +RAR_FILE_DICT128 = 0x0020 +RAR_FILE_DICT256 = 0x0040 +RAR_FILE_DICT512 = 0x0060 +RAR_FILE_DICT1024 = 0x0080 +RAR_FILE_DICT2048 = 0x00a0 +RAR_FILE_DICT4096 = 0x00c0 +RAR_FILE_DIRECTORY = 0x00e0 +RAR_FILE_LARGE = 0x0100 +RAR_FILE_UNICODE = 0x0200 +RAR_FILE_SALT = 0x0400 +RAR_FILE_VERSION = 0x0800 +RAR_FILE_EXTTIME = 0x1000 +RAR_FILE_EXTFLAGS = 0x2000 # flags for RAR_BLOCK_ENDARC -RAR_ENDARC_NEXT_VOLUME = 0x0001 -RAR_ENDARC_DATACRC = 0x0002 -RAR_ENDARC_REVSPACE = 0x0004 -RAR_ENDARC_VOLNR = 0x0008 +RAR_ENDARC_NEXT_VOLUME = 0x0001 +RAR_ENDARC_DATACRC = 0x0002 +RAR_ENDARC_REVSPACE = 0x0004 +RAR_ENDARC_VOLNR = 0x0008 # flags common to all blocks -RAR_SKIP_IF_UNKNOWN = 0x4000 -RAR_LONG_BLOCK = 0x8000 +RAR_SKIP_IF_UNKNOWN = 0x4000 +RAR_LONG_BLOCK = 0x8000 # Host OS types RAR_OS_MSDOS = 0 -RAR_OS_OS2 = 1 +RAR_OS_OS2 = 1 RAR_OS_WIN32 = 2 -RAR_OS_UNIX = 3 +RAR_OS_UNIX = 3 RAR_OS_MACOS = 4 -RAR_OS_BEOS = 5 +RAR_OS_BEOS = 5 # Compression methods - '0'..'5' RAR_M0 = 0x30 @@ -373,7 +369,7 @@ RAR5_OS_WINDOWS = 0 RAR5_OS_UNIX = 1 ## -# internal constants +## internal constants ## RAR_ID = b"Rar!\x1a\x07\x00" @@ -383,7 +379,6 @@ EMPTY = b'' UTC = timezone(timedelta(0), 'UTC') BSIZE = 32 * 1024 - def _get_rar_version(xfile): '''Check quickly whether file is rar archive. ''' @@ -396,108 +391,83 @@ def _get_rar_version(xfile): return 0 ## -# Public interface +## Public interface ## - def is_rarfile(xfile): '''Check quickly whether file is rar archive. ''' return _get_rar_version(xfile) > 0 - class Error(Exception): """Base class for rarfile errors.""" - class BadRarFile(Error): """Incorrect data in archive.""" - class NotRarFile(Error): """The file is not RAR archive.""" - class BadRarName(Error): """Cannot guess multipart name components.""" - class NoRarEntry(Error): """File not found in RAR""" - class PasswordRequired(Error): """File requires password""" - class NeedFirstVolume(Error): """Need to start from first volume.""" - class NoCrypto(Error): """Cannot parse encrypted headers - no crypto available.""" - class RarExecError(Error): """Problem reported by unrar/rar.""" - class RarWarning(RarExecError): """Non-fatal error""" - class RarFatalError(RarExecError): """Fatal error""" - class RarCRCError(RarExecError): """CRC error during unpacking""" - class RarLockedArchiveError(RarExecError): """Must not modify locked archive""" - class RarWriteError(RarExecError): """Write error""" - class RarOpenError(RarExecError): """Open error""" - class RarUserError(RarExecError): """User error""" - class RarMemoryError(RarExecError): """Memory error""" - class RarCreateError(RarExecError): """Create error""" - class RarNoFilesError(RarExecError): """No files that match pattern were found""" - class RarUserBreak(RarExecError): """User stop""" - class RarWrongPassword(RarExecError): """Incorrect password""" - class RarUnknownError(RarExecError): """Unknown exit code""" - class RarSignalExit(RarExecError): """Unrar exited with signal""" - class RarCannotExec(RarExecError): """Executable not found.""" @@ -764,15 +734,13 @@ class RarFile(object): # entry lookup inf = self.getinfo(fname) if inf.isdir(): - raise TypeError( - "Directory does not have any data: " + inf.filename) + raise TypeError("Directory does not have any data: " + inf.filename) # check password if inf.needs_password(): psw = psw or self._password if psw is None: - raise PasswordRequired( - "File %s requires password" % inf.filename) + raise PasswordRequired("File %s requires password" % inf.filename) else: psw = None @@ -863,7 +831,7 @@ class RarFile(object): return self._file_parser.strerror() ## - # private methods + ## private methods ## def _parse(self): @@ -914,7 +882,6 @@ class RarFile(object): # File format parsing # - class CommonParser(object): """Shared parser parts.""" _main = None @@ -1044,8 +1011,7 @@ class CommonParser(object): # RAR 2.x does not set FIRSTVOLUME, # so check it only if NEWNUMBERING is used if (h.flags & RAR_MAIN_FIRSTVOLUME) == 0: - raise NeedFirstVolume( - "Need to start from first volume") + raise NeedFirstVolume("Need to start from first volume") if h.flags & RAR_MAIN_PASSWORD: self._needs_password = True if not self._password: @@ -1128,8 +1094,7 @@ class CommonParser(object): raise BadRarFile('cannot find copied file') if inf.flags & RAR_FILE_SPLIT_BEFORE: - raise NeedFirstVolume( - "Partial file, please start from first volume: " + inf.filename) + raise NeedFirstVolume("Partial file, please start from first volume: " + inf.filename) # is temp write usable? use_hack = 1 @@ -1216,7 +1181,6 @@ class CommonParser(object): # RAR3 format # - class Rar3Info(RarInfo): """RAR3 specific fields.""" extract_version = 15 @@ -1414,7 +1378,7 @@ class RAR3Parser(CommonParser): if stype == RAR_BLOCK_OLD_COMMENT and pos + S_COMMENT_HDR.size <= pos_next: declen, ver, meth, crc = S_COMMENT_HDR.unpack_from(hdata, pos) pos += S_COMMENT_HDR.size - data = hdata[pos: pos_next] + data = hdata[pos : pos_next] cmt = rar3_decompress(ver, meth, data, declen, sflags, crc, self._password) if not self._crc_check: @@ -1500,7 +1464,6 @@ class RAR3Parser(CommonParser): # RAR5 format # - class Rar5Info(RarInfo): """Shared fields for RAR5 records. """ @@ -1908,14 +1871,12 @@ class RAR5Parser(CommonParser): return self._open_hack_core(inf, psw, RAR5_ID + main_hdr, endarc_hdr) ## -# Utility classes +## Utility classes ## - class UnicodeFilename(object): """Handle RAR3 unicode filename decompression. """ - def __init__(self, name, encdata): self.std_name = bytearray(name) self.encdata = bytearray(encdata) @@ -2232,10 +2193,10 @@ class PipeReader(RarExtFile): vbuf = memoryview(buf) res = got = 0 while got < cnt: - res = self._fd.readinto(vbuf[got: cnt]) + res = self._fd.readinto(vbuf[got : cnt]) if not res: break - self._md_context.update(vbuf[got: got + res]) + self._md_context.update(vbuf[got : got + res]) self._remain -= res got += res return got @@ -2355,10 +2316,10 @@ class DirectReader(RarExtFile): cnt = self._cur_avail # read into temp view - res = self._fd.readinto(vbuf[got: got + cnt]) + res = self._fd.readinto(vbuf[got : got + cnt]) if not res: break - self._md_context.update(vbuf[got: got + res]) + self._md_context.update(vbuf[got : got + res]) self._cur_avail -= res self._remain -= res got += res @@ -2367,7 +2328,6 @@ class DirectReader(RarExtFile): class HeaderDecrypt(object): """File-like object that decrypts from another file""" - def __init__(self, f, key, iv): self.f = f self.ciph = AES_CBC_Decrypt(key, iv) @@ -2454,16 +2414,12 @@ class XFile(object): class NoHashContext(object): """No-op hash function.""" - def __init__(self, data=None): """Initialize""" - def update(self, data): """Update data""" - def digest(self): """Final hash""" - def hexdigest(self): """Hexadecimal digest.""" @@ -2554,10 +2510,9 @@ class Blake2SP(object): return tohex(self.digest()) ## -# Utility functions +## Utility functions ## - S_LONG = Struct(' len(buf): raise BadRarFile('cannot load bytes') - return buf[pos: end], end - + return buf[pos : end], end def load_vstr(buf, pos): """Load bytes prefixed by vint length""" slen, pos = load_vint(buf, pos) return load_bytes(buf, slen, pos) - def load_dostime(buf, pos): """Load LE32 dos timestamp""" stamp, pos = load_le32(buf, pos) tup = parse_dos_time(stamp) return to_datetime(tup), pos - def load_unixtime(buf, pos): """Load LE32 unix timestamp""" secs, pos = load_le32(buf, pos) dt = datetime.fromtimestamp(secs, UTC) return dt, pos - def load_windowstime(buf, pos): """Load LE64 windows timestamp""" # unix epoch (1970) in seconds from windows epoch (1601) @@ -2637,8 +2584,6 @@ def load_windowstime(buf, pos): return dt, pos # new-style next volume - - def _next_newvol(volfile): i = len(volfile) - 1 while i >= 0: @@ -2648,8 +2593,6 @@ def _next_newvol(volfile): raise BadRarName("Cannot construct volume name: " + volfile) # old-style next volume - - def _next_oldvol(volfile): # rar -> r00 if volfile[-4:].lower() == '.rar': @@ -2657,8 +2600,6 @@ def _next_oldvol(volfile): return _inc_volname(volfile, len(volfile) - 1) # increase digits with carry, otherwise just increment char - - def _inc_volname(volfile, i): fn = list(volfile) while i >= 0: @@ -2670,8 +2611,6 @@ def _inc_volname(volfile, i): return ''.join(fn) # rar3 extended time fields - - def _parse_ext_time(h, data, pos): # flags and rest of data can be missing flags = 0 @@ -2689,8 +2628,6 @@ def _parse_ext_time(h, data, pos): return pos # rar3 one extended time field - - def _parse_xtime(flag, data, pos, basetime=None): res = None if flag & 8: @@ -2711,13 +2648,11 @@ def _parse_xtime(flag, data, pos, basetime=None): # dostime has room for 30 seconds only, correct if needed if flag & 4 and basetime.second < 59: - res = basetime.replace( - microsecond=usec, second=basetime.second + 1) + res = basetime.replace(microsecond=usec, second=basetime.second + 1) else: res = basetime.replace(microsecond=usec) return res, pos - def is_filelike(obj): """Filename or file object? """ @@ -2730,7 +2665,6 @@ def is_filelike(obj): raise ValueError("Invalid object passed as file") return True - def rar3_s2k(psw, salt): """String-to-key hash for RAR3. """ @@ -2749,7 +2683,6 @@ def rar3_s2k(psw, salt): key_le = pack("LLLL", key_be)) return key_le, iv - def rar3_decompress(vers, meth, data, declen=0, flags=0, crc=0, psw=None, salt=None): """Decompress blob of compressed data. @@ -2801,7 +2734,6 @@ def rar3_decompress(vers, meth, data, declen=0, flags=0, crc=0, psw=None, salt=N tmpf.close() os.unlink(tmpname) - def to_datetime(t): """Convert 6-part time tuple into datetime object. """ @@ -2840,7 +2772,6 @@ def to_datetime(t): day = 28 return datetime(year, mon, day, h, m, s) - def parse_dos_time(stamp): """Parse standard 32-bit DOS timestamp. """ @@ -2852,7 +2783,6 @@ def parse_dos_time(stamp): yr = (stamp & 0x7F) + 1980 return (yr, mon, day, hr, mn, sec * 2) - def custom_popen(cmd): """Disconnect cmd from parent fds, read only from stdout. """ @@ -2867,12 +2797,10 @@ def custom_popen(cmd): creationflags=creationflags) except OSError as ex: if ex.errno == errno.ENOENT: - raise RarCannotExec( - "Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) + raise RarCannotExec("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) raise return p - def custom_check(cmd, ignore_retcode=False): """Run command, collect output, raise error if needed. """ @@ -2882,7 +2810,6 @@ def custom_check(cmd, ignore_retcode=False): raise RarExecError("Check-run failed") return out - def add_password_arg(cmd, psw, ___required=False): """Append password switch to commandline. """ @@ -2893,7 +2820,6 @@ def add_password_arg(cmd, psw, ___required=False): else: cmd.append('-p-') - def check_returncode(p, out): """Raise exception according to unrar exit code. """ @@ -2925,12 +2851,10 @@ def check_returncode(p, out): raise exc(msg) - def hmac_sha256(key, data): """HMAC-SHA256""" return HMAC(key, data, sha256).digest() - def membuf_tempfile(memfile): memfile.seek(0, 0) @@ -2950,7 +2874,6 @@ def membuf_tempfile(memfile): raise return tmpname - class XTempFile(object): __slots__ = ('_tmpfile', '_filename') @@ -2977,13 +2900,11 @@ class XTempFile(object): # Check if unrar works # - ORIG_UNRAR_TOOL = UNRAR_TOOL ORIG_OPEN_ARGS = OPEN_ARGS ORIG_EXTRACT_ARGS = EXTRACT_ARGS ORIG_TEST_ARGS = TEST_ARGS - def _check_unrar_tool(): global UNRAR_TOOL, OPEN_ARGS, EXTRACT_ARGS, TEST_ARGS try: @@ -3007,5 +2928,5 @@ def _check_unrar_tool(): # no usable tool, only uncompressed archives work pass - _check_unrar_tool() + diff --git a/apps/templates/nzbget/scripts/reverse_name.py b/apps/templates/nzbget/scripts/reverse_name.py index 6e09d32..98819d0 100644 --- a/apps/templates/nzbget/scripts/reverse_name.py +++ b/apps/templates/nzbget/scripts/reverse_name.py @@ -18,8 +18,8 @@ reverse_list = [r"\.\d{2}e\d{2}s\.", r"\.p0612\.", r"\.[pi]0801\.", r"\.p027\.", reverse_pattern = re.compile('|'.join(reverse_list), flags=re.IGNORECASE) season_pattern = re.compile(r"(.*\.\d{2}e\d{2}s\.)(.*)", flags=re.IGNORECASE) word_pattern = re.compile(r"([^A-Z0-9]*[A-Z0-9]+)") -char_replace = [[r"(\w)1\.(\w)", r"\1i\2"] - ] +char_replace = [[r"(\w)1\.(\w)",r"\1i\2"] +] garbage_name = re.compile(r"^[a-zA-Z0-9]{2,}$") media_list = [r"\.s\d{2}e\d{2}\.", r"\.2160p\.", r"\.1080[pi]\.", r"\.720p\.", r"\.576[pi]\.", r"\.480[pi]\.", r"\.360p\.", r"\.[xh]26[45]\b", r"\.bluray\.", r"\.[hp]dtv\.", r'\.web(?:[.-]?dl)?\.', r"\.(vhs|vod|dvd|web|bd|br).?rip\.", r"\.dvdr\b", r"\.stv\.", r"\.screener\.", r"\.vcd\.", r"\bhd(cam|rip)\b", r"\.proper\.", r"\.repack\.", @@ -133,14 +133,12 @@ class ek: def ek(func, *args, **kwargs): if 'nt' == os.name: # convert all str parameter values to unicode - args = tuple([x if not isinstance(x, str) - else ek.win_encode_unicode(x) for x in args]) + args = tuple([x if not isinstance(x, str) else ek.win_encode_unicode(x) for x in args]) kwargs = {k: x if not isinstance(x, str) else ek.win_encode_unicode(x) for k, x in kwargs.iteritems()} func_result = func(*args, **kwargs) else: - func_result = func( - *[ek.encode_item(x) if type(x) == str else x for x in args], **kwargs) + func_result = func(*[ek.encode_item(x) if type(x) == str else x for x in args], **kwargs) if type(func_result) in (list, tuple): return ek.fix_list_encoding(func_result) @@ -166,7 +164,6 @@ def tryInt(s, s_default=0): except: return s_default - # NZBGet V11+ # Check if the script is called from nzbget 11.0 or later nzbget_version = evn.get('NZBOP_VERSION', '0.1') @@ -177,17 +174,16 @@ if nzbget_version >= 11: # NZBGet argv: all passed as environment variables. clientAgent = "nzbget" # Exit codes used by NZBGet - POSTPROCESS_PARCHECK = 92 - POSTPROCESS_SUCCESS = 93 - POSTPROCESS_ERROR = 94 - POSTPROCESS_NONE = 95 + POSTPROCESS_PARCHECK=92 + POSTPROCESS_SUCCESS=93 + POSTPROCESS_ERROR=94 + POSTPROCESS_NONE=95 # Check nzbget.conf options status = 0 if evn['NZBOP_UNPACK'] != 'yes': - logger.log( - "Please enable option \"Unpack\" in nzbget configuration file, exiting") + logger.log("Please enable option \"Unpack\" in nzbget configuration file, exiting") sys.exit(POSTPROCESS_NONE) parstatus = evn['NZBPP_PARSTATUS'] @@ -220,24 +216,20 @@ if nzbget_version >= 11: fileExtension = ek.ek(os.path.splitext, file)[1] if fileExtension in ['.par2']: - logger.log( - "Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\"g") + logger.log("Post-Process: Unpack skipped and par-check skipped (although par2-files exist), setting status \"failed\"g") status = 1 break if ek.ek(os.path.isfile, ek.ek(os.path.join, directory, "_brokenlog.txt")) and not status == 1: - logger.log( - "Post-Process: _brokenlog.txt exists, download is probably damaged, exiting") + logger.log("Post-Process: _brokenlog.txt exists, download is probably damaged, exiting") status = 1 if not status == 1: - logger.log( - "Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful") + logger.log("Neither par2-files found, _brokenlog.txt doesn't exist, considering download successful") # Check if destination directory exists (important for reprocessing of history items) if not ek.ek(os.path.isdir, directory): - logger.log( - "Post-Process: Nothing to post-process: destination directory %s doesn't exist" % directory) + logger.log("Post-Process: Nothing to post-process: destination directory %s doesn't exist" % directory) status = 1 # All checks done, now launching the script. @@ -262,39 +254,33 @@ if nzbget_version >= 11: for wp in word_p: if wp[0] == ".": new_words += "." - new_words += re.sub(r"\W", "", wp) + new_words += re.sub(r"\W","",wp) for cr in char_replace: - new_words = re.sub(cr[0], cr[1], new_words) + new_words = re.sub(cr[0],cr[1],new_words) new_filename = new_words[::-1] + na_parts.group(1)[::-1] else: new_filename = fileName[::-1] - logger.log("reversing filename from: %s to %s" % - (fileName, new_filename)) + logger.log("reversing filename from: %s to %s" % (fileName, new_filename)) try: - ek.ek(os.rename, filePath, ek.ek(os.path.join, - dirpath, new_filename + fileExtension)) + ek.ek(os.rename, filePath, ek.ek(os.path.join, dirpath, new_filename + fileExtension)) rd = True - except Exception, e: + except Exception,e: logger.log(e, logger.ERROR) - logger.log("Error: unable to rename file %s" % - file, logger.ERROR) + logger.log("Error: unable to rename file %s" % file, logger.ERROR) pass elif (fileExtension.lower() in media_extentions) and (garbage_name.search(fileName) is not None) and (media_pattern.search(base_name) is not None): videos += 1 old_name = filePath - new_name = ek.ek(os.path.join, dirname, '%s%s' % - (base_name, fileExtension)) + new_name = ek.ek(os.path.join, dirname, '%s%s' % (base_name, fileExtension)) if not rd and videos == 1 and old_name is not None and new_name is not None: - logger.log("renaming the File %s to the Dirname %s" % - (ek.ek(os.path.basename, old_name), base_name)) + logger.log("renaming the File %s to the Dirname %s" % (ek.ek(os.path.basename, old_name), base_name)) try: ek.ek(os.rename, old_name, new_name) rd = True - except Exception, e: + except Exception,e: logger.log(e, logger.ERROR) - logger.log("Error unable to rename file %s" % - old_name, logger.ERROR) + logger.log("Error unable to rename file %s" % old_name, logger.ERROR) pass if rd: @@ -303,6 +289,5 @@ if nzbget_version >= 11: sys.exit(POSTPROCESS_NONE) else: - logger.log( - "This script can only be called from NZBGet (11.0 or later).", logger.ERROR) + logger.log("This script can only be called from NZBGet (11.0 or later).", logger.ERROR) sys.exit(0) diff --git a/apps/templates/nzbget/scripts/unzip.py b/apps/templates/nzbget/scripts/unzip.py index 204c630..521a50f 100644 --- a/apps/templates/nzbget/scripts/unzip.py +++ b/apps/templates/nzbget/scripts/unzip.py @@ -12,15 +12,7 @@ ### NZBGET SCAN SCRIPT ### ############################################################################## -import os -import zipfile -import tarfile -import gzip -import pickle -import datetime -import re -import struct -import locale +import os, zipfile, tarfile, gzip, pickle, datetime, re, struct, locale import rarfile.rarfile as rarfile from gzip import FEXTRA, FNAME @@ -102,11 +94,9 @@ else: dupescore = None dupemode = None -tmp_zipinfo = os.path.join(os.environ.get( - 'NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info') +tmp_zipinfo = os.path.join(os.environ.get('NZBOP_TEMPDIR'), r'nzbget\unzip_scan\info') nzb_list = [] - def read_gzip_info(gzipfile): gf = gzipfile.fileobj pos = gf.tell() @@ -138,14 +128,13 @@ def read_gzip_info(gzipfile): fname = [] while True: s = gf.read(1) - if not s or s == '\000': + if not s or s=='\000': break fname.append(s) gf.seek(pos) return ''.join(fname), size - def save_obj(obj, name): tp = os.path.dirname(name) if not os.path.exists(tp): @@ -160,7 +149,6 @@ def save_obj(obj, name): except: print "Error saving: " + name - def load_obj(name): if os.path.isfile(name): try: @@ -172,7 +160,6 @@ def load_obj(name): else: return None - def save_nzb_list(): if nzb_list: save_obj(nzb_list, tmp_zipinfo) @@ -183,7 +170,6 @@ def save_nzb_list(): except: print "Error deleting " + tmp_zipinfo - def load_nzb_list(): global nzb_list nzb_list = load_obj(tmp_zipinfo) @@ -194,49 +180,39 @@ def load_nzb_list(): if nzb_list is not None and o_l != len(nzb_list): save_nzb_list() - def get_files(zf): zi = zf.infolist() - zi[:] = [el for el in zi if os.path.splitext( - el.filename)[1].lower() == '.nzb'] + zi[:] = [el for el in zi if os.path.splitext(el.filename)[1].lower() == '.nzb'] return zi - def get_tar_files(tf): ti = tf.getmembers() - ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name) - [1].lower() == '.nzb'] + ti[:] = [el for el in ti if el.isfile() and os.path.splitext(el.name)[1].lower() == '.nzb'] return ti - def get_rar_files(rf): ri = rf.infolist() - ri[:] = [el for el in ri if os.path.splitext( - el.filename)[1].lower() == '.nzb'] + ri[:] = [el for el in ri if os.path.splitext(el.filename)[1].lower() == '.nzb'] return ri - def remove_filename(): try: os.unlink(filename) except: print "Error deleting " + filename - if ext == '.zip': load_nzb_list() zipf = zipfile.ZipFile(filename, mode='r') zf = get_files(zipf) if zf: - zipf.extractall(path=dir, members=zf) + zipf.extractall(path = dir, members = zf) now = datetime.datetime.now() for z in zf: if nzb_list: - nzb_list.append([z.filename, cat, prio, top, - pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[z.filename, cat, prio, top, - pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[z.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] save_nzb_list() zipf.close() @@ -247,15 +223,13 @@ elif ext in ['.tar.gz', '.tar', '.tgz']: tarf = tarfile.open(filename, mode='r') tf = get_tar_files(tarf) if tf: - tarf.extractall(path=dir, members=tf) + tarf.extractall(path = dir, members = tf) now = datetime.datetime.now() for z in tf: if nzb_list: - nzb_list.append([z.name, cat, prio, top, pause, - dupekey, dupescore, dupemode, now]) + nzb_list.append([z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[z.name, cat, prio, top, pause, - dupekey, dupescore, dupemode, now]] + nzb_list = [[z.name, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] save_nzb_list() tarf.close() @@ -263,7 +237,7 @@ elif ext in ['.tar.gz', '.tar', '.tgz']: elif ext == '.gz': load_nzb_list() - gzf = gzip.open(filename, mode='rb') + gzf =gzip.open(filename, mode='rb') out_filename, size = read_gzip_info(gzf) if out_filename and os.path.splitext(out_filename)[1].lower() == '.nzb': with open(os.path.join(os.path.dirname(filename), out_filename), 'wb') as outf: @@ -273,11 +247,9 @@ elif ext == '.gz': if gzf and out_filename: now = datetime.datetime.now() if nzb_list: - nzb_list.append([os.path.basename( - out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[os.path.basename( - out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[os.path.basename(out_filename), cat, prio, top, pause, dupekey, dupescore, dupemode, now]] save_nzb_list() gzf.close() @@ -288,15 +260,13 @@ elif ext == '.rar': rarf = rarfile.RarFile(filename, mode='r') rf = get_files(rarf) if rf: - rarf.extractall(path=dir, members=rf) + rarf.extractall(path = dir, members = rf) now = datetime.datetime.now() for r in rf: if nzb_list: - nzb_list.append([r.filename, cat, prio, top, - pause, dupekey, dupescore, dupemode, now]) + nzb_list.append([r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]) else: - nzb_list = [[r.filename, cat, prio, top, - pause, dupekey, dupescore, dupemode, now]] + nzb_list = [[r.filename, cat, prio, top, pause, dupekey, dupescore, dupemode, now]] save_nzb_list() rarf.close() From 208a79f187f0d02979da50c678070240a12028fe Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Fri, 19 Jul 2019 13:42:57 -0700 Subject: [PATCH 21/39] fix --- apps/_core.yml | 1 - apps/_downloaders.yml | 4 ++-- apps/airsonic.yml | 1 - apps/alltube.yml | 1 - apps/avidemux.yml | 1 - apps/bazarr.yml | 1 - apps/beets.yml | 1 - apps/booksonic.yml | 1 - apps/cadvisor.yml | 1 - apps/calibre-web.yml | 2 +- apps/cloudcmd.yml | 1 - apps/deezloaderremix.yml | 1 - apps/deluge-vpn.yml | 1 - apps/deluge.yml | 1 - apps/domoticz.yml | 1 - apps/dozzle.yml | 1 - apps/duplicati.yml | 1 - apps/embystats.yml | 1 - apps/filebot.yml | 1 - apps/filezilla.yml | 1 - apps/firefox.yml | 4 ++-- apps/flexget.yml | 1 - apps/flextv.yml | 1 - apps/gazee.yml | 1 - apps/gitea.yml | 1 - apps/handbrake.yml | 1 - apps/headphones.yml | 1 - apps/htpcmanager.yml | 1 - apps/jd2-openvpn.yml | 1 - apps/jdownloader2.yml | 1 - apps/kitana.yml | 1 - apps/logarr.yml | 1 - apps/makemkv.yml | 1 - apps/mariadb.yml | 1 - apps/mediainfo.yml | 1 - apps/medusa.yml | 1 - apps/mellow.yml | 1 - apps/mkvtoolnix.yml | 1 - apps/monitorr.yml | 1 - apps/muximux.yml | 1 - apps/mylar.yml | 1 - apps/nowshowing.yml | 1 - apps/nzbget-mp4.yml | 2 +- apps/ombi4k.yml | 1 - apps/ombiHDR.yml | 1 - apps/pyload.yml | 1 - apps/qbittorrent-vpn.yml | 1 - apps/radarr4k.yml | 1 - apps/radarrhdr.yml | 1 - apps/rclonebrowser.yml | 1 - apps/rdp-calibre.yml | 1 - apps/resilio.yml | 1 - apps/rflood-vpn.yml | 1 - apps/rutorrent-vpn.yml | 1 - apps/sharesite.yml | 2 +- apps/shoko.yml | 1 - apps/sonarr4k.yml | 1 - apps/sonarrhdr.yml | 1 - apps/speedtest.yml | 1 - apps/subsonic.yml | 1 - apps/syncthing.yml | 1 - apps/teamspeak3.yml | 2 +- apps/templates/broken/kodi-headless.yml | 1 - apps/templates/broken/nzbthrottle.yml | 1 - apps/thelounge.yml | 1 - apps/traktor.yml | 1 - apps/transmission-vpn.yml | 1 - apps/ubooquity.yml | 1 - apps/unifi.yml | 1 - apps/varken.yml | 1 - apps/vnc-xfce.yml | 1 - apps/xteve.yml | 1 - apps/zammad.yml | 1 - 73 files changed, 8 insertions(+), 75 deletions(-) diff --git a/apps/_core.yml b/apps/_core.yml index 7f0025b..214fb60 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -48,7 +48,6 @@ shell: "echo '{{pgrole}}' > /tmp/program_var" ignore_errors: True - # APPDATA - name: 'Creating appdata folder if it does not exist.' shell: 'mkdir -p /opt/appdata/{{pgrole}}' diff --git a/apps/_downloaders.yml b/apps/_downloaders.yml index bc17eb4..3836511 100644 --- a/apps/_downloaders.yml +++ b/apps/_downloaders.yml @@ -1,9 +1,9 @@ - name: Creating download paths file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000' with_items: - - '{{path.stdout}}/downloads/{{pgrole}}' + - '{{path.stdout}}/downloads/{{pgrole}}' - name: Creating incomplete paths file: 'path={{item}} state=directory mode=0775 owner=1000 group=1000' with_items: - - '{{path.stdout}}/incomplete/{{pgrole}}' + - '{{path.stdout}}/incomplete/{{pgrole}}' diff --git a/apps/airsonic.yml b/apps/airsonic.yml index a5b5704..d889824 100644 --- a/apps/airsonic.yml +++ b/apps/airsonic.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/alltube.yml b/apps/alltube.yml index e00c917..f59552d 100644 --- a/apps/alltube.yml +++ b/apps/alltube.yml @@ -49,7 +49,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/avidemux.yml b/apps/avidemux.yml index b39e487..2ce95c6 100644 --- a/apps/avidemux.yml +++ b/apps/avidemux.yml @@ -58,7 +58,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/bazarr.yml b/apps/bazarr.yml index 5cc3c69..37f67b2 100644 --- a/apps/bazarr.yml +++ b/apps/bazarr.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/beets.yml b/apps/beets.yml index 40f7864..280b0cf 100644 --- a/apps/beets.yml +++ b/apps/beets.yml @@ -45,7 +45,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/booksonic.yml b/apps/booksonic.yml index 2c55405..ea8ab13 100644 --- a/apps/booksonic.yml +++ b/apps/booksonic.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/cadvisor.yml b/apps/cadvisor.yml index f6f8a07..3964434 100644 --- a/apps/cadvisor.yml +++ b/apps/cadvisor.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/calibre-web.yml b/apps/calibre-web.yml index 778530d..28bb6f7 100644 --- a/apps/calibre-web.yml +++ b/apps/calibre-web.yml @@ -39,7 +39,7 @@ 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' + - name: 'Setting PG Volumes' set_fact: diff --git a/apps/cloudcmd.yml b/apps/cloudcmd.yml index a5eef6e..4368911 100644 --- a/apps/cloudcmd.yml +++ b/apps/cloudcmd.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deezloaderremix.yml b/apps/deezloaderremix.yml index 4f2d261..568aea4 100644 --- a/apps/deezloaderremix.yml +++ b/apps/deezloaderremix.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index 5ef3945..ddf61bf 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -52,7 +52,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/deluge.yml b/apps/deluge.yml index 1733359..71ad008 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -53,7 +53,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/domoticz.yml b/apps/domoticz.yml index 51b7c85..3ff918a 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/dozzle.yml b/apps/dozzle.yml index 32021ed..56f980e 100644 --- a/apps/dozzle.yml +++ b/apps/dozzle.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/duplicati.yml b/apps/duplicati.yml index 70dd8ce..4d71f83 100644 --- a/apps/duplicati.yml +++ b/apps/duplicati.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/embystats.yml b/apps/embystats.yml index 2e62984..9b44c51 100644 --- a/apps/embystats.yml +++ b/apps/embystats.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/filebot.yml b/apps/filebot.yml index eb0a94b..c405a83 100644 --- a/apps/filebot.yml +++ b/apps/filebot.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/filezilla.yml b/apps/filezilla.yml index a653137..8007685 100644 --- a/apps/filezilla.yml +++ b/apps/filezilla.yml @@ -50,7 +50,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/firefox.yml b/apps/firefox.yml index 281016a..2fcb291 100644 --- a/apps/firefox.yml +++ b/apps/firefox.yml @@ -58,7 +58,7 @@ 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' @@ -68,7 +68,7 @@ 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' + # - name: 'Setting PG Volumes' set_fact: diff --git a/apps/flexget.yml b/apps/flexget.yml index ca38750..7b8ac24 100644 --- a/apps/flexget.yml +++ b/apps/flexget.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/flextv.yml b/apps/flextv.yml index dc45746..b8d54dc 100644 --- a/apps/flextv.yml +++ b/apps/flextv.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/gazee.yml b/apps/gazee.yml index 78981f1..5bc7313 100644 --- a/apps/gazee.yml +++ b/apps/gazee.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/gitea.yml b/apps/gitea.yml index d46b612..5c418e2 100644 --- a/apps/gitea.yml +++ b/apps/gitea.yml @@ -41,7 +41,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/handbrake.yml b/apps/handbrake.yml index c58fc8e..9341c1c 100644 --- a/apps/handbrake.yml +++ b/apps/handbrake.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/headphones.yml b/apps/headphones.yml index ac803c4..db4e3c6 100644 --- a/apps/headphones.yml +++ b/apps/headphones.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/htpcmanager.yml b/apps/htpcmanager.yml index cb068df..61cc830 100644 --- a/apps/htpcmanager.yml +++ b/apps/htpcmanager.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/jd2-openvpn.yml b/apps/jd2-openvpn.yml index 3141ba2..1da5c7d 100644 --- a/apps/jd2-openvpn.yml +++ b/apps/jd2-openvpn.yml @@ -54,7 +54,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/jdownloader2.yml b/apps/jdownloader2.yml index b50a870..ae2d803 100644 --- a/apps/jdownloader2.yml +++ b/apps/jdownloader2.yml @@ -54,7 +54,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/kitana.yml b/apps/kitana.yml index fd5eeab..79a9cc2 100644 --- a/apps/kitana.yml +++ b/apps/kitana.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/logarr.yml b/apps/logarr.yml index efb72c6..dc8d4b6 100644 --- a/apps/logarr.yml +++ b/apps/logarr.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/makemkv.yml b/apps/makemkv.yml index 06e0cdf..e1f7a57 100644 --- a/apps/makemkv.yml +++ b/apps/makemkv.yml @@ -41,7 +41,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mariadb.yml b/apps/mariadb.yml index 7b76cf4..885213d 100644 --- a/apps/mariadb.yml +++ b/apps/mariadb.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mediainfo.yml b/apps/mediainfo.yml index c7718d6..c37065f 100644 --- a/apps/mediainfo.yml +++ b/apps/mediainfo.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/medusa.yml b/apps/medusa.yml index a585c7b..ff18f99 100644 --- a/apps/medusa.yml +++ b/apps/medusa.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mellow.yml b/apps/mellow.yml index 159e34c..1fe60b1 100644 --- a/apps/mellow.yml +++ b/apps/mellow.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mkvtoolnix.yml b/apps/mkvtoolnix.yml index 6d91666..37662ad 100644 --- a/apps/mkvtoolnix.yml +++ b/apps/mkvtoolnix.yml @@ -51,7 +51,6 @@ 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' - name: 'Setting default Volumes' set_fact: diff --git a/apps/monitorr.yml b/apps/monitorr.yml index fa6994d..ea3a0c3 100644 --- a/apps/monitorr.yml +++ b/apps/monitorr.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/muximux.yml b/apps/muximux.yml index 57c42d7..0002bae 100644 --- a/apps/muximux.yml +++ b/apps/muximux.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/mylar.yml b/apps/mylar.yml index d46814a..63aeba7 100644 --- a/apps/mylar.yml +++ b/apps/mylar.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/nowshowing.yml b/apps/nowshowing.yml index 6bac516..c0a73b1 100644 --- a/apps/nowshowing.yml +++ b/apps/nowshowing.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/nzbget-mp4.yml b/apps/nzbget-mp4.yml index c800e8f..134503b 100644 --- a/apps/nzbget-mp4.yml +++ b/apps/nzbget-mp4.yml @@ -141,7 +141,7 @@ 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.auth.forward.address: '{{gauth}}' - name: 'Setting PG Volumes' diff --git a/apps/ombi4k.yml b/apps/ombi4k.yml index 0b95788..c84bcd0 100644 --- a/apps/ombi4k.yml +++ b/apps/ombi4k.yml @@ -55,7 +55,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml index 77bee67..a4fa977 100644 --- a/apps/ombiHDR.yml +++ b/apps/ombiHDR.yml @@ -55,7 +55,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/pyload.yml b/apps/pyload.yml index bac4e96..879cb43 100644 --- a/apps/pyload.yml +++ b/apps/pyload.yml @@ -41,7 +41,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index a53fd2b..d613eae 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -55,7 +55,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/radarr4k.yml b/apps/radarr4k.yml index ede857d..630c299 100644 --- a/apps/radarr4k.yml +++ b/apps/radarr4k.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/radarrhdr.yml b/apps/radarrhdr.yml index 68cc1c6..3b2374f 100644 --- a/apps/radarrhdr.yml +++ b/apps/radarrhdr.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index 76910c0..7d12f01 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rdp-calibre.yml b/apps/rdp-calibre.yml index c50d121..b6e2f59 100644 --- a/apps/rdp-calibre.yml +++ b/apps/rdp-calibre.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/resilio.yml b/apps/resilio.yml index 02903b9..3ce93dd 100644 --- a/apps/resilio.yml +++ b/apps/resilio.yml @@ -57,7 +57,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rflood-vpn.yml b/apps/rflood-vpn.yml index 69555b3..ecac351 100644 --- a/apps/rflood-vpn.yml +++ b/apps/rflood-vpn.yml @@ -50,7 +50,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/rutorrent-vpn.yml b/apps/rutorrent-vpn.yml index dc18af6..7f34005 100644 --- a/apps/rutorrent-vpn.yml +++ b/apps/rutorrent-vpn.yml @@ -50,7 +50,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sharesite.yml b/apps/sharesite.yml index 28cf5b2..da227b7 100644 --- a/apps/sharesite.yml +++ b/apps/sharesite.yml @@ -50,7 +50,7 @@ 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' + - name: 'Setting PG Volumes' set_fact: diff --git a/apps/shoko.yml b/apps/shoko.yml index 6ba67e0..7b42583 100644 --- a/apps/shoko.yml +++ b/apps/shoko.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sonarr4k.yml b/apps/sonarr4k.yml index 83f7b09..e3b12f5 100644 --- a/apps/sonarr4k.yml +++ b/apps/sonarr4k.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/sonarrhdr.yml b/apps/sonarrhdr.yml index 47dd683..7a1e1db 100644 --- a/apps/sonarrhdr.yml +++ b/apps/sonarrhdr.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/speedtest.yml b/apps/speedtest.yml index 74a60ed..a4caa63 100644 --- a/apps/speedtest.yml +++ b/apps/speedtest.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/subsonic.yml b/apps/subsonic.yml index cd470df..8ebe287 100644 --- a/apps/subsonic.yml +++ b/apps/subsonic.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/syncthing.yml b/apps/syncthing.yml index d686cb4..fc4c45f 100644 --- a/apps/syncthing.yml +++ b/apps/syncthing.yml @@ -50,7 +50,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/teamspeak3.yml b/apps/teamspeak3.yml index 6dc131b..896de28 100644 --- a/apps/teamspeak3.yml +++ b/apps/teamspeak3.yml @@ -51,7 +51,7 @@ 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' + # VOLUMES ######### - name: 'Setting PG Volumes' diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml index 4756453..578eb6e 100644 --- a/apps/templates/broken/kodi-headless.yml +++ b/apps/templates/broken/kodi-headless.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml index 1b40429..edae42e 100644 --- a/apps/templates/broken/nzbthrottle.yml +++ b/apps/templates/broken/nzbthrottle.yml @@ -44,7 +44,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/thelounge.yml b/apps/thelounge.yml index caf9807..65a7ba1 100644 --- a/apps/thelounge.yml +++ b/apps/thelounge.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/traktor.yml b/apps/traktor.yml index 7e0a0a4..5a0d4c3 100644 --- a/apps/traktor.yml +++ b/apps/traktor.yml @@ -39,7 +39,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/transmission-vpn.yml b/apps/transmission-vpn.yml index da6f265..7106d5e 100644 --- a/apps/transmission-vpn.yml +++ b/apps/transmission-vpn.yml @@ -52,7 +52,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/ubooquity.yml b/apps/ubooquity.yml index f5fe701..58861bb 100644 --- a/apps/ubooquity.yml +++ b/apps/ubooquity.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/unifi.yml b/apps/unifi.yml index f80613f..10cf25a 100644 --- a/apps/unifi.yml +++ b/apps/unifi.yml @@ -50,7 +50,6 @@ traefik.frontend.headers.SSLHost: '{{domain.stdout}}' traefik.frontend.headers.STSIncludeSubdomains: 'true' traefik.frontend.headers.STSPreload: 'true' - traefik.frontend.headers.frameDeny: 'true' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/varken.yml b/apps/varken.yml index e0f5a4e..775e772 100644 --- a/apps/varken.yml +++ b/apps/varken.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/vnc-xfce.yml b/apps/vnc-xfce.yml index d697728..f1aba3b 100644 --- a/apps/vnc-xfce.yml +++ b/apps/vnc-xfce.yml @@ -38,7 +38,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/xteve.yml b/apps/xteve.yml index 5a70016..b771227 100644 --- a/apps/xteve.yml +++ b/apps/xteve.yml @@ -40,7 +40,6 @@ 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' - name: 'Setting PG Volumes' set_fact: diff --git a/apps/zammad.yml b/apps/zammad.yml index f89ec24..931ad2f 100644 --- a/apps/zammad.yml +++ b/apps/zammad.yml @@ -42,7 +42,6 @@ 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' - name: 'Setting PG Volumes' set_fact: From 945003497980a2aa1ceef62789790aeb8de9bc29 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 20 Jul 2019 04:13:19 -0700 Subject: [PATCH 22/39] Support custom subdomains and port --- apps/_core.yml | 31 ++++++++++++++++++++++++- apps/airsonic.yml | 2 +- apps/alltube.yml | 2 +- apps/avidemux.yml | 2 +- apps/bazarr.yml | 2 +- apps/beets.yml | 2 +- apps/booksonic.yml | 2 +- apps/cadvisor.yml | 2 +- apps/calibre-web.yml | 2 +- apps/cloudcmd.yml | 2 +- apps/deezloaderremix.yml | 2 +- apps/deluge-vpn.yml | 2 +- apps/deluge.yml | 2 +- apps/domoticz.yml | 2 +- apps/dozzle.yml | 2 +- apps/duplicati.yml | 2 +- apps/embystats.yml | 2 +- apps/filebot.yml | 2 +- apps/filezilla.yml | 2 +- apps/firefox.yml | 2 +- apps/flexget.yml | 2 +- apps/flextv.yml | 2 +- apps/gazee.yml | 2 +- apps/gitea.yml | 2 +- apps/handbrake.yml | 2 +- apps/headphones.yml | 2 +- apps/heimdall.yml | 2 +- apps/htpcmanager.yml | 2 +- apps/jd2-openvpn.yml | 2 +- apps/jdownloader2.yml | 2 +- apps/kitana.yml | 2 +- apps/logarr.yml | 2 +- apps/makemkv.yml | 2 +- apps/mariadb.yml | 2 +- apps/mediainfo.yml | 2 +- apps/medusa.yml | 2 +- apps/mellow.yml | 2 +- apps/mkvtoolnix.yml | 2 +- apps/monitorr.yml | 2 +- apps/muximux.yml | 2 +- apps/mylar.yml | 2 +- apps/nextcloud.yml | 2 +- apps/nowshowing.yml | 2 +- apps/nzbget-mp4.yml | 2 +- apps/ombi4k.yml | 2 +- apps/ombiHDR.yml | 2 +- apps/organizr.yml | 2 +- apps/pyload.yml | 2 +- apps/qbittorrent-vpn.yml | 2 +- apps/radarr4k.yml | 2 +- apps/radarrhdr.yml | 2 +- apps/rclonebrowser.yml | 2 +- apps/rdp-calibre.yml | 2 +- apps/resilio.yml | 2 +- apps/rflood-vpn.yml | 2 +- apps/rutorrent-vpn.yml | 2 +- apps/sharesite.yml | 2 +- apps/shoko.yml | 2 +- apps/sonarr4k.yml | 2 +- apps/sonarrhdr.yml | 2 +- apps/speedtest.yml | 2 +- apps/subsonic.yml | 2 +- apps/syncthing.yml | 2 +- apps/teamspeak3.yml | 2 +- apps/templates/broken/kodi-headless.yml | 2 +- apps/templates/broken/nzbthrottle.yml | 2 +- apps/thelounge.yml | 2 +- apps/traktor.yml | 2 +- apps/transmission-vpn.yml | 2 +- apps/ubooquity.yml | 2 +- apps/unifi.yml | 2 +- apps/varken.yml | 2 +- apps/vnc-xfce.yml | 2 +- apps/xteve.yml | 2 +- apps/zammad.yml | 2 +- 75 files changed, 104 insertions(+), 75 deletions(-) diff --git a/apps/_core.yml b/apps/_core.yml index 214fb60..66557d5 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -38,6 +38,35 @@ register: auth ignore_errors: True +- name: Register Program Name + shell: 'cat /tmp/program_var' + register: program + ignore_errors: True + +- name: Register ucname + shell: 'cat /var/plexguide/{{program.stdout}}.cname' + register: ucname + ignore_errors: True + +- name: Register CName + set_fact: + cname: "" + +- name: Set cname + set_fact: + cname: ",{{ucname.stdout}}.{{domain.stdout}}" + when: ucname is succeeded and ucname.stdout != "" + +- name: Register External Port + shell: 'cat /var/plexguide/{{program.stdout}}.port' + register: ueport + ignore_errors: True + +- name: Change extport + set_fact: + extport: "{{ueport.stdout}}" + when: ueport is succeeded and ueport.stdout != "" + - name: Remove {{pgrole}} Container docker_container: name: '{{pgrole}}' @@ -90,7 +119,7 @@ - name: 'If Fact Matches - Enable TLD' set_fact: - tldset: '{{domain.stdout}},www.{{domain.stdout}}' + tldset: ',{{domain.stdout}},www.{{domain.stdout}}' when: 'toplevel.stdout == pgrole' - debug: msg="TLDSET is now for {{toplevel.stdout}}" diff --git a/apps/airsonic.yml b/apps/airsonic.yml index d889824..9edb71d 100644 --- a/apps/airsonic.yml +++ b/apps/airsonic.yml @@ -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' diff --git a/apps/alltube.yml b/apps/alltube.yml index f59552d..615cef1 100644 --- a/apps/alltube.yml +++ b/apps/alltube.yml @@ -39,7 +39,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' diff --git a/apps/avidemux.yml b/apps/avidemux.yml index 2ce95c6..eaaea38 100644 --- a/apps/avidemux.yml +++ b/apps/avidemux.yml @@ -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' diff --git a/apps/bazarr.yml b/apps/bazarr.yml index 37f67b2..a4cc203 100644 --- a/apps/bazarr.yml +++ b/apps/bazarr.yml @@ -28,7 +28,7 @@ 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' diff --git a/apps/beets.yml b/apps/beets.yml index 280b0cf..db2d0bd 100644 --- a/apps/beets.yml +++ b/apps/beets.yml @@ -35,7 +35,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' diff --git a/apps/booksonic.yml b/apps/booksonic.yml index ea8ab13..7b75dd9 100644 --- a/apps/booksonic.yml +++ b/apps/booksonic.yml @@ -30,7 +30,7 @@ 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' diff --git a/apps/cadvisor.yml b/apps/cadvisor.yml index 3964434..d5e94ba 100644 --- a/apps/cadvisor.yml +++ b/apps/cadvisor.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/calibre-web.yml b/apps/calibre-web.yml index 28bb6f7..b52cfed 100644 --- a/apps/calibre-web.yml +++ b/apps/calibre-web.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/cloudcmd.yml b/apps/cloudcmd.yml index 4368911..e7298a1 100644 --- a/apps/cloudcmd.yml +++ b/apps/cloudcmd.yml @@ -28,7 +28,7 @@ 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' diff --git a/apps/deezloaderremix.yml b/apps/deezloaderremix.yml index 568aea4..1c303cb 100644 --- a/apps/deezloaderremix.yml +++ b/apps/deezloaderremix.yml @@ -28,7 +28,7 @@ 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' diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index ddf61bf..c244065 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -42,7 +42,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' diff --git a/apps/deluge.yml b/apps/deluge.yml index 71ad008..b8bb4d8 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -43,7 +43,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' diff --git a/apps/domoticz.yml b/apps/domoticz.yml index 3ff918a..e93d810 100644 --- a/apps/domoticz.yml +++ b/apps/domoticz.yml @@ -32,7 +32,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' diff --git a/apps/dozzle.yml b/apps/dozzle.yml index 56f980e..03d306b 100644 --- a/apps/dozzle.yml +++ b/apps/dozzle.yml @@ -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' diff --git a/apps/duplicati.yml b/apps/duplicati.yml index 4d71f83..204240d 100644 --- a/apps/duplicati.yml +++ b/apps/duplicati.yml @@ -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' diff --git a/apps/embystats.yml b/apps/embystats.yml index 9b44c51..c277a65 100644 --- a/apps/embystats.yml +++ b/apps/embystats.yml @@ -32,7 +32,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' diff --git a/apps/filebot.yml b/apps/filebot.yml index c405a83..963e3b3 100644 --- a/apps/filebot.yml +++ b/apps/filebot.yml @@ -30,7 +30,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' diff --git a/apps/filezilla.yml b/apps/filezilla.yml index 8007685..5f88835 100644 --- a/apps/filezilla.yml +++ b/apps/filezilla.yml @@ -40,7 +40,7 @@ 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' diff --git a/apps/firefox.yml b/apps/firefox.yml index 2fcb291..d333cc4 100644 --- a/apps/firefox.yml +++ b/apps/firefox.yml @@ -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' diff --git a/apps/flexget.yml b/apps/flexget.yml index 7b8ac24..f3b8298 100644 --- a/apps/flexget.yml +++ b/apps/flexget.yml @@ -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' diff --git a/apps/flextv.yml b/apps/flextv.yml index b8d54dc..0d28c5f 100644 --- a/apps/flextv.yml +++ b/apps/flextv.yml @@ -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' diff --git a/apps/gazee.yml b/apps/gazee.yml index 5bc7313..c383e96 100644 --- a/apps/gazee.yml +++ b/apps/gazee.yml @@ -32,7 +32,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' diff --git a/apps/gitea.yml b/apps/gitea.yml index 5c418e2..88d0e53 100644 --- a/apps/gitea.yml +++ b/apps/gitea.yml @@ -31,7 +31,7 @@ ##########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' diff --git a/apps/handbrake.yml b/apps/handbrake.yml index 9341c1c..fa82349 100644 --- a/apps/handbrake.yml +++ b/apps/handbrake.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/headphones.yml b/apps/headphones.yml index db4e3c6..eb2267e 100644 --- a/apps/headphones.yml +++ b/apps/headphones.yml @@ -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' diff --git a/apps/heimdall.yml b/apps/heimdall.yml index 77fcf5f..ec4d0c9 100644 --- a/apps/heimdall.yml +++ b/apps/heimdall.yml @@ -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: diff --git a/apps/htpcmanager.yml b/apps/htpcmanager.yml index 61cc830..4058979 100644 --- a/apps/htpcmanager.yml +++ b/apps/htpcmanager.yml @@ -28,7 +28,7 @@ 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' diff --git a/apps/jd2-openvpn.yml b/apps/jd2-openvpn.yml index 1da5c7d..1888d5d 100644 --- a/apps/jd2-openvpn.yml +++ b/apps/jd2-openvpn.yml @@ -44,7 +44,7 @@ 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' diff --git a/apps/jdownloader2.yml b/apps/jdownloader2.yml index ae2d803..7c10adf 100644 --- a/apps/jdownloader2.yml +++ b/apps/jdownloader2.yml @@ -44,7 +44,7 @@ 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' diff --git a/apps/kitana.yml b/apps/kitana.yml index 79a9cc2..d3f35a2 100644 --- a/apps/kitana.yml +++ b/apps/kitana.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/logarr.yml b/apps/logarr.yml index dc8d4b6..4fe18b5 100644 --- a/apps/logarr.yml +++ b/apps/logarr.yml @@ -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' diff --git a/apps/makemkv.yml b/apps/makemkv.yml index e1f7a57..6e99727 100644 --- a/apps/makemkv.yml +++ b/apps/makemkv.yml @@ -31,7 +31,7 @@ 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' diff --git a/apps/mariadb.yml b/apps/mariadb.yml index 885213d..8a3b91c 100644 --- a/apps/mariadb.yml +++ b/apps/mariadb.yml @@ -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' diff --git a/apps/mediainfo.yml b/apps/mediainfo.yml index c37065f..956dfe4 100644 --- a/apps/mediainfo.yml +++ b/apps/mediainfo.yml @@ -30,7 +30,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' diff --git a/apps/medusa.yml b/apps/medusa.yml index ff18f99..e26c60c 100644 --- a/apps/medusa.yml +++ b/apps/medusa.yml @@ -32,7 +32,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' diff --git a/apps/mellow.yml b/apps/mellow.yml index 1fe60b1..9ce4738 100644 --- a/apps/mellow.yml +++ b/apps/mellow.yml @@ -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' diff --git a/apps/mkvtoolnix.yml b/apps/mkvtoolnix.yml index 37662ad..c2d869d 100644 --- a/apps/mkvtoolnix.yml +++ b/apps/mkvtoolnix.yml @@ -41,7 +41,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' diff --git a/apps/monitorr.yml b/apps/monitorr.yml index ea3a0c3..598997c 100644 --- a/apps/monitorr.yml +++ b/apps/monitorr.yml @@ -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' diff --git a/apps/muximux.yml b/apps/muximux.yml index 0002bae..963c789 100644 --- a/apps/muximux.yml +++ b/apps/muximux.yml @@ -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' diff --git a/apps/mylar.yml b/apps/mylar.yml index 63aeba7..ac9cecb 100644 --- a/apps/mylar.yml +++ b/apps/mylar.yml @@ -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' diff --git a/apps/nextcloud.yml b/apps/nextcloud.yml index 3c75ef8..7dc49da 100644 --- a/apps/nextcloud.yml +++ b/apps/nextcloud.yml @@ -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: diff --git a/apps/nowshowing.yml b/apps/nowshowing.yml index c0a73b1..a945ca8 100644 --- a/apps/nowshowing.yml +++ b/apps/nowshowing.yml @@ -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' diff --git a/apps/nzbget-mp4.yml b/apps/nzbget-mp4.yml index 134503b..c989d2d 100644 --- a/apps/nzbget-mp4.yml +++ b/apps/nzbget-mp4.yml @@ -131,7 +131,7 @@ 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' diff --git a/apps/ombi4k.yml b/apps/ombi4k.yml index c84bcd0..3b6a343 100644 --- a/apps/ombi4k.yml +++ b/apps/ombi4k.yml @@ -45,7 +45,7 @@ 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' diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml index a4fa977..25d7adf 100644 --- a/apps/ombiHDR.yml +++ b/apps/ombiHDR.yml @@ -45,7 +45,7 @@ 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' diff --git a/apps/organizr.yml b/apps/organizr.yml index 2a89008..d0f9af6 100644 --- a/apps/organizr.yml +++ b/apps/organizr.yml @@ -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' diff --git a/apps/pyload.yml b/apps/pyload.yml index 879cb43..0b9186e 100644 --- a/apps/pyload.yml +++ b/apps/pyload.yml @@ -31,7 +31,7 @@ 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' diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index d613eae..fa70890 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -45,7 +45,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' diff --git a/apps/radarr4k.yml b/apps/radarr4k.yml index 630c299..7834e31 100644 --- a/apps/radarr4k.yml +++ b/apps/radarr4k.yml @@ -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' diff --git a/apps/radarrhdr.yml b/apps/radarrhdr.yml index 3b2374f..c6e691c 100644 --- a/apps/radarrhdr.yml +++ b/apps/radarrhdr.yml @@ -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' diff --git a/apps/rclonebrowser.yml b/apps/rclonebrowser.yml index 7d12f01..998974e 100644 --- a/apps/rclonebrowser.yml +++ b/apps/rclonebrowser.yml @@ -30,7 +30,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' diff --git a/apps/rdp-calibre.yml b/apps/rdp-calibre.yml index b6e2f59..aa9c2e9 100644 --- a/apps/rdp-calibre.yml +++ b/apps/rdp-calibre.yml @@ -30,7 +30,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' diff --git a/apps/resilio.yml b/apps/resilio.yml index 3ce93dd..7317a08 100644 --- a/apps/resilio.yml +++ b/apps/resilio.yml @@ -47,7 +47,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' diff --git a/apps/rflood-vpn.yml b/apps/rflood-vpn.yml index ecac351..5e1329d 100644 --- a/apps/rflood-vpn.yml +++ b/apps/rflood-vpn.yml @@ -40,7 +40,7 @@ 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' diff --git a/apps/rutorrent-vpn.yml b/apps/rutorrent-vpn.yml index 7f34005..563b9ce 100644 --- a/apps/rutorrent-vpn.yml +++ b/apps/rutorrent-vpn.yml @@ -40,7 +40,7 @@ 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' diff --git a/apps/sharesite.yml b/apps/sharesite.yml index da227b7..75a0790 100644 --- a/apps/sharesite.yml +++ b/apps/sharesite.yml @@ -40,7 +40,7 @@ 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' diff --git a/apps/shoko.yml b/apps/shoko.yml index 7b42583..aca857f 100644 --- a/apps/shoko.yml +++ b/apps/shoko.yml @@ -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' diff --git a/apps/sonarr4k.yml b/apps/sonarr4k.yml index e3b12f5..df5dc42 100644 --- a/apps/sonarr4k.yml +++ b/apps/sonarr4k.yml @@ -29,7 +29,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' diff --git a/apps/sonarrhdr.yml b/apps/sonarrhdr.yml index 7a1e1db..c622477 100644 --- a/apps/sonarrhdr.yml +++ b/apps/sonarrhdr.yml @@ -29,7 +29,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' diff --git a/apps/speedtest.yml b/apps/speedtest.yml index a4caa63..91a0f53 100644 --- a/apps/speedtest.yml +++ b/apps/speedtest.yml @@ -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' diff --git a/apps/subsonic.yml b/apps/subsonic.yml index 8ebe287..3ceec08 100644 --- a/apps/subsonic.yml +++ b/apps/subsonic.yml @@ -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' diff --git a/apps/syncthing.yml b/apps/syncthing.yml index fc4c45f..5523cd1 100644 --- a/apps/syncthing.yml +++ b/apps/syncthing.yml @@ -40,7 +40,7 @@ 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' diff --git a/apps/teamspeak3.yml b/apps/teamspeak3.yml index 896de28..897d2f0 100644 --- a/apps/teamspeak3.yml +++ b/apps/teamspeak3.yml @@ -41,7 +41,7 @@ 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' diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml index 578eb6e..33aeb0a 100644 --- a/apps/templates/broken/kodi-headless.yml +++ b/apps/templates/broken/kodi-headless.yml @@ -32,7 +32,7 @@ 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' diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml index edae42e..785547d 100644 --- a/apps/templates/broken/nzbthrottle.yml +++ b/apps/templates/broken/nzbthrottle.yml @@ -34,7 +34,7 @@ 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' diff --git a/apps/thelounge.yml b/apps/thelounge.yml index 65a7ba1..4e8d21f 100644 --- a/apps/thelounge.yml +++ b/apps/thelounge.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/traktor.yml b/apps/traktor.yml index 5a0d4c3..d2b9314 100644 --- a/apps/traktor.yml +++ b/apps/traktor.yml @@ -29,7 +29,7 @@ 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' diff --git a/apps/transmission-vpn.yml b/apps/transmission-vpn.yml index 7106d5e..80a6a08 100644 --- a/apps/transmission-vpn.yml +++ b/apps/transmission-vpn.yml @@ -42,7 +42,7 @@ 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' diff --git a/apps/ubooquity.yml b/apps/ubooquity.yml index 58861bb..6d1b048 100644 --- a/apps/ubooquity.yml +++ b/apps/ubooquity.yml @@ -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' diff --git a/apps/unifi.yml b/apps/unifi.yml index 10cf25a..a686d91 100644 --- a/apps/unifi.yml +++ b/apps/unifi.yml @@ -39,7 +39,7 @@ traefik.tags: 'frontend' traefik.frontend.passHostHeader: 'true' traefik.backend: '{{pgrole}}' - traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + traefik.admin.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}' traefik.admin.port: '{{intport5}}' traefik.admin.protocol: 'https' traefik.frontend.headers.SSLRedirect: 'true' diff --git a/apps/varken.yml b/apps/varken.yml index 775e772..b18b6e4 100644 --- a/apps/varken.yml +++ b/apps/varken.yml @@ -32,7 +32,7 @@ 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' diff --git a/apps/vnc-xfce.yml b/apps/vnc-xfce.yml index f1aba3b..3c33680 100644 --- a/apps/vnc-xfce.yml +++ b/apps/vnc-xfce.yml @@ -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' diff --git a/apps/xteve.yml b/apps/xteve.yml index b771227..9027d05 100644 --- a/apps/xteve.yml +++ b/apps/xteve.yml @@ -30,7 +30,7 @@ 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' diff --git a/apps/zammad.yml b/apps/zammad.yml index 931ad2f..22348f8 100644 --- a/apps/zammad.yml +++ b/apps/zammad.yml @@ -32,7 +32,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' From 940cb8e39450ac4b837f2925058192551845c730 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 20 Jul 2019 06:59:19 -0700 Subject: [PATCH 23/39] hide error --- apps/_core.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/_core.yml b/apps/_core.yml index 66557d5..baa315b 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -43,10 +43,16 @@ register: program ignore_errors: True -- name: Register ucname +- name: check if user cname file exists + stat: + path: /var/plexguide/{{program.stdout}}.cname + register: ucname_check + +- name: Register user cname shell: 'cat /var/plexguide/{{program.stdout}}.cname' register: ucname ignore_errors: True + when: ucname_check.stat.exists == true - name: Register CName set_fact: @@ -57,11 +63,17 @@ cname: ",{{ucname.stdout}}.{{domain.stdout}}" when: ucname is succeeded and ucname.stdout != "" +- name: check if user port file exists + stat: + path: /var/plexguide/{{program.stdout}}.port + register: ueport_check + - name: Register External Port shell: 'cat /var/plexguide/{{program.stdout}}.port' register: ueport ignore_errors: True - + when: ueport_check.stat.exists == true + - name: Change extport set_fact: extport: "{{ueport.stdout}}" From 510968b3bf36c7dde011675dc4abaaa2d4cf49e7 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 20 Jul 2019 07:04:32 -0700 Subject: [PATCH 24/39] fix --- apps/_core.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/_core.yml b/apps/_core.yml index baa315b..776908c 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -61,7 +61,7 @@ - name: Set cname set_fact: cname: ",{{ucname.stdout}}.{{domain.stdout}}" - when: ucname is succeeded and ucname.stdout != "" + when: ucname_check.stat.exists == true and ucname.stdout != "" - name: check if user port file exists stat: @@ -77,7 +77,7 @@ - name: Change extport set_fact: extport: "{{ueport.stdout}}" - when: ueport is succeeded and ueport.stdout != "" + when: ueport_check.stat.exists and ueport.stdout != "" - name: Remove {{pgrole}} Container docker_container: From 9bf9d8baf0831ef50cb18b89331e5f6c45d7bc3f Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 20 Jul 2019 07:06:58 -0700 Subject: [PATCH 25/39] fix --- apps/_core.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/_core.yml b/apps/_core.yml index 776908c..8cb85e6 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -77,7 +77,7 @@ - name: Change extport set_fact: extport: "{{ueport.stdout}}" - when: ueport_check.stat.exists and ueport.stdout != "" + when: ueport_check.stat.exists and ueport.stdout != "" - name: Remove {{pgrole}} Container docker_container: From 497b7169ab2135599e8ebd2a0d894a7e7e64d008 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sun, 21 Jul 2019 00:27:50 -0700 Subject: [PATCH 26/39] add mp4 templates --- apps/templates/broken/kodi-headless.yml | 78 ------------------- apps/templates/broken/nzbthrottle.yml | 76 ------------------ .../config_mp4_automator/autoProcess.ini | 55 +++++++++++++ .../radarr4k/scripts/cleanup-radarr.sh | 5 ++ .../config_mp4_automator/autoProcess.ini | 55 +++++++++++++ .../radarrhdr/scripts/cleanup-radarr.sh | 5 ++ .../config_mp4_automator/autoProcess.ini | 55 +++++++++++++ .../config_mp4_automator/autoProcess.ini | 55 +++++++++++++ 8 files changed, 230 insertions(+), 154 deletions(-) delete mode 100644 apps/templates/broken/kodi-headless.yml delete mode 100644 apps/templates/broken/nzbthrottle.yml create mode 100644 apps/templates/radarr4k/config_mp4_automator/autoProcess.ini create mode 100644 apps/templates/radarr4k/scripts/cleanup-radarr.sh create mode 100644 apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini create mode 100644 apps/templates/radarrhdr/scripts/cleanup-radarr.sh create mode 100644 apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini create mode 100644 apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini diff --git a/apps/templates/broken/kodi-headless.yml b/apps/templates/broken/kodi-headless.yml deleted file mode 100644 index 33aeb0a..0000000 --- a/apps/templates/broken/kodi-headless.yml +++ /dev/null @@ -1,78 +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}}{{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' - - '{{path.stdout}}:{{path.stdout}}' - - '/mnt:/mnt' - - '/opt/appdata/{{pgrole}}/config:/config/.kodi:rw' - - - name: 'Setting PG ENV' - set_fact: - pg_env: - PUID: '1000' - PGID: '1000' - - # 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}}' diff --git a/apps/templates/broken/nzbthrottle.yml b/apps/templates/broken/nzbthrottle.yml deleted file mode 100644 index 785547d..0000000 --- a/apps/templates/broken/nzbthrottle.yml +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash -# -# Title: PGBlitz (Reference Title File) -# Author(s): Admin9705 -# 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: 'nzbthrottle' - intport: '0' - extport: '0' - image: 'daghaian/nzbthrottle' - - # CORE (MANDATORY) ############################################################ - - name: 'Including cron job' - include_tasks: '/opt/communityapps/apps/_core.yml' - - - name: 'Checking {{pgrole}} for existing app data' - stat: - path: '/opt/communityapps/apps/templates/{{pgrole}}/config.json' - register: jsoncheck - - # 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}}{{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}}:/{{pgrole}}' - - - name: 'Setting PG ENV' - set_fact: - pg_env: - PUID: '1000' - PGID: '1000' - - # MAIN DEPLOYMENT ############################################################# - - name: 'Deploying {{pgrole}}' - docker_container: - name: '{{pgrole}}' - image: '{{image}}' - pull: yes - published_ports: - - '{{ports.stdout}}{{extport}}:{{intport}}' - volumes: '{{pg_volumes}}' - env: '{{pg_env}}' - restart_policy: unless-stopped - networks: - - name: plexguide - aliases: - - '{{pgrole}}' - state: started - labels: '{{pg_labels}}' diff --git a/apps/templates/radarr4k/config_mp4_automator/autoProcess.ini b/apps/templates/radarr4k/config_mp4_automator/autoProcess.ini new file mode 100644 index 0000000..9683be4 --- /dev/null +++ b/apps/templates/radarr4k/config_mp4_automator/autoProcess.ini @@ -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 diff --git a/apps/templates/radarr4k/scripts/cleanup-radarr.sh b/apps/templates/radarr4k/scripts/cleanup-radarr.sh new file mode 100644 index 0000000..b4c38f5 --- /dev/null +++ b/apps/templates/radarr4k/scripts/cleanup-radarr.sh @@ -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 \ No newline at end of file diff --git a/apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini b/apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini new file mode 100644 index 0000000..9683be4 --- /dev/null +++ b/apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini @@ -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 diff --git a/apps/templates/radarrhdr/scripts/cleanup-radarr.sh b/apps/templates/radarrhdr/scripts/cleanup-radarr.sh new file mode 100644 index 0000000..b4c38f5 --- /dev/null +++ b/apps/templates/radarrhdr/scripts/cleanup-radarr.sh @@ -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 \ No newline at end of file diff --git a/apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini b/apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini new file mode 100644 index 0000000..14efd40 --- /dev/null +++ b/apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini @@ -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 diff --git a/apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini b/apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini new file mode 100644 index 0000000..14efd40 --- /dev/null +++ b/apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini @@ -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 From 36c26768b99573fc16377118c9a47e9f889c9e5f Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sun, 21 Jul 2019 09:03:25 -0700 Subject: [PATCH 27/39] fix --- apps/radarr4k.yml | 3 ++- apps/radarrhdr.yml | 3 ++- apps/sonarr4k.yml | 3 ++- apps/sonarrhdr.yml | 3 ++- .../{config_mp4_automator => mp4_automator}/autoProcess.ini | 0 .../{config_mp4_automator => mp4_automator}/autoProcess.ini | 0 .../{config_mp4_automator => mp4_automator}/autoProcess.ini | 0 .../{config_mp4_automator => mp4_automator}/autoProcess.ini | 0 8 files changed, 8 insertions(+), 4 deletions(-) rename apps/templates/radarr4k/{config_mp4_automator => mp4_automator}/autoProcess.ini (100%) rename apps/templates/radarrhdr/{config_mp4_automator => mp4_automator}/autoProcess.ini (100%) rename apps/templates/sonarr4k/{config_mp4_automator => mp4_automator}/autoProcess.ini (100%) rename apps/templates/sonarrhdr/{config_mp4_automator => mp4_automator}/autoProcess.ini (100%) diff --git a/apps/radarr4k.yml b/apps/radarr4k.yml index 7834e31..82d97f6 100644 --- a/apps/radarr4k.yml +++ b/apps/radarr4k.yml @@ -46,7 +46,8 @@ - '{{path.stdout}}:{{path.stdout}}' - '/mnt:/mnt' - '/opt/appdata/{{pgrole}}:/config' - + - '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator' + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/radarrhdr.yml b/apps/radarrhdr.yml index c6e691c..b2273f4 100644 --- a/apps/radarrhdr.yml +++ b/apps/radarrhdr.yml @@ -46,7 +46,8 @@ - '{{path.stdout}}:{{path.stdout}}' - '/mnt:/mnt' - '/opt/appdata/{{pgrole}}:/config' - + - '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator' + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/sonarr4k.yml b/apps/sonarr4k.yml index df5dc42..6af800c 100644 --- a/apps/sonarr4k.yml +++ b/apps/sonarr4k.yml @@ -47,7 +47,8 @@ - '{{path.stdout}}:{{path.stdout}}' - '/mnt:/mnt' - '/opt/appdata/{{pgrole}}:/config' - + - '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator' + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/sonarrhdr.yml b/apps/sonarrhdr.yml index c622477..c415e31 100644 --- a/apps/sonarrhdr.yml +++ b/apps/sonarrhdr.yml @@ -47,7 +47,8 @@ - '{{path.stdout}}:{{path.stdout}}' - '/mnt:/mnt' - '/opt/appdata/{{pgrole}}:/config' - + - '/opt/appdata/{{pgrole}}/mp4_automator:/config_mp4_automator' + - name: 'Setting PG ENV' set_fact: pg_env: diff --git a/apps/templates/radarr4k/config_mp4_automator/autoProcess.ini b/apps/templates/radarr4k/mp4_automator/autoProcess.ini similarity index 100% rename from apps/templates/radarr4k/config_mp4_automator/autoProcess.ini rename to apps/templates/radarr4k/mp4_automator/autoProcess.ini diff --git a/apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini b/apps/templates/radarrhdr/mp4_automator/autoProcess.ini similarity index 100% rename from apps/templates/radarrhdr/config_mp4_automator/autoProcess.ini rename to apps/templates/radarrhdr/mp4_automator/autoProcess.ini diff --git a/apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini b/apps/templates/sonarr4k/mp4_automator/autoProcess.ini similarity index 100% rename from apps/templates/sonarr4k/config_mp4_automator/autoProcess.ini rename to apps/templates/sonarr4k/mp4_automator/autoProcess.ini diff --git a/apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini b/apps/templates/sonarrhdr/mp4_automator/autoProcess.ini similarity index 100% rename from apps/templates/sonarrhdr/config_mp4_automator/autoProcess.ini rename to apps/templates/sonarrhdr/mp4_automator/autoProcess.ini From 8dd4239322f672953611785abfda0d019577f427 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sun, 21 Jul 2019 09:15:39 -0700 Subject: [PATCH 28/39] add more Arr images --- apps/image/radarr | 2 ++ apps/image/sonarr | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 apps/image/radarr create mode 100644 apps/image/sonarr diff --git a/apps/image/radarr b/apps/image/radarr new file mode 100644 index 0000000..0f4200b --- /dev/null +++ b/apps/image/radarr @@ -0,0 +1,2 @@ +linuxserver/radarr +aront/radarr diff --git a/apps/image/sonarr b/apps/image/sonarr new file mode 100644 index 0000000..aa31af2 --- /dev/null +++ b/apps/image/sonarr @@ -0,0 +1,3 @@ +linuxserver/sonarr:preview +linuxserver/sonarr +aront/sonarr From 7d331f866997d01bd99d658b28867d09bef4d18a Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 22 Jul 2019 11:09:31 -0700 Subject: [PATCH 29/39] fix --- apps/_core.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/_core.yml b/apps/_core.yml index 8cb85e6..a471eff 100644 --- a/apps/_core.yml +++ b/apps/_core.yml @@ -45,11 +45,11 @@ - name: check if user cname file exists stat: - path: /var/plexguide/{{program.stdout}}.cname + path: /var/plexguide/{{pgrole}}.cname register: ucname_check - name: Register user cname - shell: 'cat /var/plexguide/{{program.stdout}}.cname' + shell: 'cat /var/plexguide/{{pgrole}}.cname' register: ucname ignore_errors: True when: ucname_check.stat.exists == true @@ -65,11 +65,11 @@ - name: check if user port file exists stat: - path: /var/plexguide/{{program.stdout}}.port + path: /var/plexguide/{{pgrole}}.port register: ueport_check - name: Register External Port - shell: 'cat /var/plexguide/{{program.stdout}}.port' + shell: 'cat /var/plexguide/{{pgrole}}.port' register: ueport ignore_errors: True when: ueport_check.stat.exists == true From 750107efd7fa279170c7b89c643c7626dfa1aad4 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Tue, 23 Jul 2019 15:58:59 -0700 Subject: [PATCH 30/39] fix --- apps/image/{radarr => radarr4k} | 0 apps/image/radarrhdr | 2 ++ apps/image/{sonarr => sonarr4k} | 0 apps/image/sonarrhdr | 3 +++ 4 files changed, 5 insertions(+) rename apps/image/{radarr => radarr4k} (100%) create mode 100644 apps/image/radarrhdr rename apps/image/{sonarr => sonarr4k} (100%) create mode 100644 apps/image/sonarrhdr diff --git a/apps/image/radarr b/apps/image/radarr4k similarity index 100% rename from apps/image/radarr rename to apps/image/radarr4k diff --git a/apps/image/radarrhdr b/apps/image/radarrhdr new file mode 100644 index 0000000..0f4200b --- /dev/null +++ b/apps/image/radarrhdr @@ -0,0 +1,2 @@ +linuxserver/radarr +aront/radarr diff --git a/apps/image/sonarr b/apps/image/sonarr4k similarity index 100% rename from apps/image/sonarr rename to apps/image/sonarr4k diff --git a/apps/image/sonarrhdr b/apps/image/sonarrhdr new file mode 100644 index 0000000..aa31af2 --- /dev/null +++ b/apps/image/sonarrhdr @@ -0,0 +1,3 @@ +linuxserver/sonarr:preview +linuxserver/sonarr +aront/sonarr From 5f1019e94fc4d1eebe3bb63892406b100e583bc5 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 29 Jul 2019 15:46:50 -0700 Subject: [PATCH 31/39] deluge port fix --- apps/deluge-vpn.yml | 47 ++++++++++++++++++++++++++++++++++++++++++--- apps/deluge.yml | 43 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 4 deletions(-) diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index c244065..d4969b9 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -19,8 +19,12 @@ extport2: '58846' intport3: '58946' extport3: '58946' - intport4: '8118' - extport4: '8118' + intport4: '5418' + extport4: '5418' + intport5: '5419' + extport5: '5419' + intport6: '8118' + extport6: '8118' image: 'binhex/arch-delugevpn' # CORE (MANDATORY) ############################################################ @@ -84,7 +88,9 @@ - '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{ports.stdout}}{{extport3}}:{{intport3}}' - - '{{ports.stdout}}{{extport4}}:{{intport4}}' + - '{{extport4}}:{{intport4}}' + - '{{extport5}}:{{intport5}}' + - '{{ports.stdout}}{{extport6}}:{{intport6}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped @@ -274,6 +280,41 @@ regexp: '"seed_time_ratio_limit".*' line: '"seed_time_ratio_limit": 1.0,' state: present + + - name: set outgoing_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"outgoing_ports".*' + line: '"outgoing_ports": [{{intport5}}, {{intport5}}],' + state: present + + - name: set random_port + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"random_port".*' + line: '"random_port": false,' + state: present + + - name: set random_outgoing_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"random_outgoing_ports".*' + line: '"random_outgoing_ports": false,' + state: present + + - name: set listen_random_port + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"listen_random_port".*' + line: '"listen_random_port": null,' + state: present + + - name: set listen_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"listen_ports".*' + line: '"listen_ports": [{{intport4}},{{intport4}}],' + state: present when: not confcheck.stat.exists - name: Restart {{pgrole}} diff --git a/apps/deluge.yml b/apps/deluge.yml index b8bb4d8..f0f4b9d 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -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 ################################################################################ @@ -19,6 +19,10 @@ extport2: '58846' intport3: '58946' extport3: '58946' + intport4: '5418' + extport4: '5418' + intport5: '5419' + extport5: '5419' image: 'linuxserver/deluge' # CORE (MANDATORY) ############################################################ @@ -78,6 +82,8 @@ - '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}' - '{{extport3}}:{{intport3}}' + - '{{extport4}}:{{intport4}}' + - '{{extport5}}:{{intport5}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped @@ -267,6 +273,41 @@ regexp: '"seed_time_ratio_limit".*' line: '"seed_time_ratio_limit": 1.0,' state: present + + - name: set outgoing_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"outgoing_ports".*' + line: '"outgoing_ports": [{{intport5}}, {{intport5}}],' + state: present + + - name: set random_port + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"random_port".*' + line: '"random_port": false,' + state: present + + - name: set random_outgoing_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"random_outgoing_ports".*' + line: '"random_outgoing_ports": false,' + state: present + + - name: set listen_random_port + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"listen_random_port".*' + line: '"listen_random_port": null,' + state: present + + - name: set listen_ports + lineinfile: + path: '/opt/appdata/{{pgrole}}/core.conf' + regexp: '"listen_ports".*' + line: '"listen_ports": [{{intport4}},{{intport4}}],' + state: present when: not confcheck.stat.exists - name: Restart {{pgrole}} From c079bf8cd286b672bb319d6d72d3f56b73e79a66 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 29 Jul 2019 16:24:54 -0700 Subject: [PATCH 32/39] fix fix fix fix --- apps/deluge-vpn.yml | 61 ++++++--------------------------------------- apps/deluge.yml | 54 +++------------------------------------ 2 files changed, 11 insertions(+), 104 deletions(-) diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index d4969b9..8facc55 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -15,16 +15,8 @@ pgrole: 'deluge' intport: '8112' extport: '8112' - intport2: '58846' - extport2: '58846' - intport3: '58946' - extport3: '58946' - intport4: '5418' - extport4: '5418' - intport5: '5419' - extport5: '5419' - intport6: '8118' - extport6: '8118' + intport2: '8118' + extport2: '8118' image: 'binhex/arch-delugevpn' # CORE (MANDATORY) ############################################################ @@ -34,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 @@ -87,10 +82,6 @@ published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' - '{{ports.stdout}}{{extport2}}:{{intport2}}' - - '{{ports.stdout}}{{extport3}}:{{intport3}}' - - '{{extport4}}:{{intport4}}' - - '{{extport5}}:{{intport5}}' - - '{{ports.stdout}}{{extport6}}:{{intport6}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped @@ -177,11 +168,10 @@ - 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: @@ -280,41 +270,6 @@ regexp: '"seed_time_ratio_limit".*' line: '"seed_time_ratio_limit": 1.0,' state: present - - - name: set outgoing_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"outgoing_ports".*' - line: '"outgoing_ports": [{{intport5}}, {{intport5}}],' - state: present - - - name: set random_port - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"random_port".*' - line: '"random_port": false,' - state: present - - - name: set random_outgoing_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"random_outgoing_ports".*' - line: '"random_outgoing_ports": false,' - state: present - - - name: set listen_random_port - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"listen_random_port".*' - line: '"listen_random_port": null,' - state: present - - - name: set listen_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"listen_ports".*' - line: '"listen_ports": [{{intport4}},{{intport4}}],' - state: present when: not confcheck.stat.exists - name: Restart {{pgrole}} diff --git a/apps/deluge.yml b/apps/deluge.yml index f0f4b9d..4c6c116 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -15,14 +15,6 @@ pgrole: 'deluge' intport: '8112' extport: '8112' - intport2: '58846' - extport2: '58846' - intport3: '58946' - extport3: '58946' - intport4: '5418' - extport4: '5418' - intport5: '5419' - extport5: '5419' image: 'linuxserver/deluge' # CORE (MANDATORY) ############################################################ @@ -80,10 +72,6 @@ pull: yes published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' - - '{{ports.stdout}}{{extport2}}:{{intport2}}' - - '{{extport3}}:{{intport3}}' - - '{{extport4}}:{{intport4}}' - - '{{extport5}}:{{intport5}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped @@ -170,11 +158,10 @@ - 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: @@ -273,41 +260,6 @@ regexp: '"seed_time_ratio_limit".*' line: '"seed_time_ratio_limit": 1.0,' state: present - - - name: set outgoing_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"outgoing_ports".*' - line: '"outgoing_ports": [{{intport5}}, {{intport5}}],' - state: present - - - name: set random_port - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"random_port".*' - line: '"random_port": false,' - state: present - - - name: set random_outgoing_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"random_outgoing_ports".*' - line: '"random_outgoing_ports": false,' - state: present - - - name: set listen_random_port - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"listen_random_port".*' - line: '"listen_random_port": null,' - state: present - - - name: set listen_ports - lineinfile: - path: '/opt/appdata/{{pgrole}}/core.conf' - regexp: '"listen_ports".*' - line: '"listen_ports": [{{intport4}},{{intport4}}],' - state: present when: not confcheck.stat.exists - name: Restart {{pgrole}} From 83ebf86515691d1a925bcf35d759ebb496b8ba26 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 29 Jul 2019 16:48:08 -0700 Subject: [PATCH 33/39] fix --- apps/qbittorrent-vpn.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index fa70890..a4bdce8 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -14,12 +14,8 @@ - name: 'Set Known Facts' set_fact: pgrole: 'qbittorrent' - intport: '8998' - extport: '8998' - intport1: '8118' - extport1: '8118' - intport2: '6881' - extport2: '6881' + intport: '8080' + extport: '8080' dnsserver1: '1.1.1.1' dnsserver2: '84.200.69.80' dnsserver3: '37.235.1.174' @@ -95,8 +91,6 @@ pull: yes published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' - - '{{ports.stdout}}{{extport1}}:{{intport1}}' - - '{{ports.stdout}}{{extport2}}:{{intport2}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped From 9c23a08a613072f73dc45507ce7d1677c7bd24d6 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 29 Jul 2019 16:58:17 -0700 Subject: [PATCH 34/39] fixes ports --- apps/calibre-web.yml | 2 +- apps/qbittorrent-vpn.yml | 13 ++++++++++++- apps/synclounge.yml | 2 +- apps/unifi.yml | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/apps/calibre-web.yml b/apps/calibre-web.yml index b52cfed..76df15b 100644 --- a/apps/calibre-web.yml +++ b/apps/calibre-web.yml @@ -14,7 +14,7 @@ set_fact: pgrole: 'calibre-web' intport: '8083' - extport: '8083' + extport: '8104' image: 'technosoft2000/calibre-web' # CORE (MANDATORY) ############################################################ diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index a4bdce8..419dc3c 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -15,7 +15,9 @@ set_fact: pgrole: 'qbittorrent' intport: '8080' - extport: '8080' + extport: '8098' + intport2: '8118' + extport2: '8118' dnsserver1: '1.1.1.1' dnsserver2: '84.200.69.80' dnsserver3: '37.235.1.174' @@ -91,6 +93,7 @@ pull: yes published_ports: - '{{ports.stdout}}{{extport}}:{{intport}}' + - '{{ports.stdout}}{{extport2}}:{{intport2}}' volumes: '{{pg_volumes}}' env: '{{pg_env}}' restart_policy: unless-stopped @@ -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' diff --git a/apps/synclounge.yml b/apps/synclounge.yml index 80eb4fa..98be016 100644 --- a/apps/synclounge.yml +++ b/apps/synclounge.yml @@ -17,7 +17,7 @@ intport: '8088' extport: '8088' intport2: '8089' - extport2: '8089' + extport2: '8102' image: 'starbix/synclounge' # CORE (MANDATORY) ############################################################ diff --git a/apps/unifi.yml b/apps/unifi.yml index a686d91..36948ff 100644 --- a/apps/unifi.yml +++ b/apps/unifi.yml @@ -18,7 +18,7 @@ intport2: '10001/udp' extport2: '10001' intport3: '8080/tcp' - extport3: '8088' + extport3: '8103' intport4: '8081/tcp' extport4: '8081' intport5: '8443/tcp' From bc553ab818e789c6a2458464997c15e51acc3513 Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Mon, 29 Jul 2019 17:13:53 -0700 Subject: [PATCH 35/39] fixes --- apps/deluge-vpn.yml | 4 +- apps/deluge.yml | 2 +- .../{jd2-openvpn.yml => jdownloader2-vpn.yml} | 2 +- apps/qbittorrent-vpn.yml | 2 +- apps/rutorrent-vpn.yml | 239 +++++++++++++++++- apps/templates/deluge/plugins/extractor.conf | 2 +- 6 files changed, 241 insertions(+), 10 deletions(-) rename apps/{jd2-openvpn.yml => jdownloader2-vpn.yml} (98%) diff --git a/apps/deluge-vpn.yml b/apps/deluge-vpn.yml index 8facc55..1e1dff9 100644 --- a/apps/deluge-vpn.yml +++ b/apps/deluge-vpn.yml @@ -12,7 +12,7 @@ # FACTS ####################################################################### - name: 'Set Known Facts' set_fact: - pgrole: 'deluge' + pgrole: 'deluge-vpn' intport: '8112' extport: '8112' intport2: '8118' @@ -161,7 +161,7 @@ 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 #################################################### diff --git a/apps/deluge.yml b/apps/deluge.yml index 4c6c116..c9d62c3 100644 --- a/apps/deluge.yml +++ b/apps/deluge.yml @@ -151,7 +151,7 @@ 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 #################################################### diff --git a/apps/jd2-openvpn.yml b/apps/jdownloader2-vpn.yml similarity index 98% rename from apps/jd2-openvpn.yml rename to apps/jdownloader2-vpn.yml index 1888d5d..6ad7f9f 100644 --- a/apps/jd2-openvpn.yml +++ b/apps/jdownloader2-vpn.yml @@ -13,7 +13,7 @@ - name: 'Set Known Facts' set_fact: - pgrole: 'jd2-openvpn' + pgrole: 'jdownloader2-vpn' intport: '5800' extport: '5802' intport2: '5902' diff --git a/apps/qbittorrent-vpn.yml b/apps/qbittorrent-vpn.yml index 419dc3c..032a005 100644 --- a/apps/qbittorrent-vpn.yml +++ b/apps/qbittorrent-vpn.yml @@ -13,7 +13,7 @@ - name: 'Set Known Facts' set_fact: - pgrole: 'qbittorrent' + pgrole: 'qbittorrent-vpn' intport: '8080' extport: '8098' intport2: '8118' diff --git a/apps/rutorrent-vpn.yml b/apps/rutorrent-vpn.yml index 563b9ce..fe411a6 100644 --- a/apps/rutorrent-vpn.yml +++ b/apps/rutorrent-vpn.yml @@ -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' @@ -84,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 diff --git a/apps/templates/deluge/plugins/extractor.conf b/apps/templates/deluge/plugins/extractor.conf index 32e8ff4..f2c8076 100644 --- a/apps/templates/deluge/plugins/extractor.conf +++ b/apps/templates/deluge/plugins/extractor.conf @@ -3,5 +3,5 @@ "format": 1 }{ "use_name_folder": true, - "extract_path": "/downloads/deluge/" + "extract_path": "/mnt/downloads/{{pgrole}}/" } From 7563f90704f2b6824d8c80193848df5860037f4c Mon Sep 17 00:00:00 2001 From: LooseSeal2 Date: Sat, 3 Aug 2019 13:10:12 -0700 Subject: [PATCH 36/39] fixes --- apps/bitwarden.yml | 2 +- apps/home-assistant.yml | 2 +- apps/mcmyadmin.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/bitwarden.yml b/apps/bitwarden.yml index e7a29b0..e38d861 100644 --- a/apps/bitwarden.yml +++ b/apps/bitwarden.yml @@ -28,7 +28,7 @@ traefik.enable: 'true' 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: diff --git a/apps/home-assistant.yml b/apps/home-assistant.yml index b6f94a3..446b3bf 100644 --- a/apps/home-assistant.yml +++ b/apps/home-assistant.yml @@ -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: diff --git a/apps/mcmyadmin.yml b/apps/mcmyadmin.yml index ff4957e..f41c309 100644 --- a/apps/mcmyadmin.yml +++ b/apps/mcmyadmin.yml @@ -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: From 565ac15c09b93397b23fc2d31fdd546f66cfdc13 Mon Sep 17 00:00:00 2001 From: MrDoobPG <46342172+MrDoobPG@users.noreply.github.com> Date: Wed, 7 Aug 2019 16:53:59 +0200 Subject: [PATCH 37/39] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 64834bd..70b78a5 100644 --- a/README.md +++ b/README.md @@ -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 From 8d708c22276425f87a35c52aaca448bb64562318 Mon Sep 17 00:00:00 2001 From: Timekills Date: Wed, 23 Oct 2019 21:57:09 +0300 Subject: [PATCH 38/39] Removed Google Authentication Ombi uses built-in Plex authentication so not strictly necessary. Would prefer to keep, but once it is disabled through PGBlitz in the "base" Ombi, PGBlitz no longer allows you to remove from Ombi mods. --- apps/ombi4k.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ombi4k.yml b/apps/ombi4k.yml index 3b6a343..5edad07 100644 --- a/apps/ombi4k.yml +++ b/apps/ombi4k.yml @@ -44,7 +44,7 @@ pg_labels: traefik.enable: 'true' traefik.port: '{{intport}}' - traefik.frontend.auth.forward.address: '{{gauth}}' + #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' From e951ae1c1438493a16ddf665c4d040165ebb6474 Mon Sep 17 00:00:00 2001 From: Timekills Date: Wed, 23 Oct 2019 22:01:31 +0300 Subject: [PATCH 39/39] Removed Google Authentication from Ombi mods Ombi uses built-in Plex authentication so not strictly necessary. Would prefer to keep, but once it is disabled through PGBlitz in the "base" Ombi, PGBlitz no longer allows you to remove from Ombi mods. --- apps/ombiHDR.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ombiHDR.yml b/apps/ombiHDR.yml index 25d7adf..60fa774 100644 --- a/apps/ombiHDR.yml +++ b/apps/ombiHDR.yml @@ -44,7 +44,7 @@ pg_labels: traefik.enable: 'true' traefik.port: '{{intport}}' - traefik.frontend.auth.forward.address: '{{gauth}}' + #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'