diff --git a/menu/pgui/dynamic.yml b/menu/pgui/dynamic.yml new file mode 100644 index 00000000..6397d88e --- /dev/null +++ b/menu/pgui/dynamic.yml @@ -0,0 +1,21 @@ + - name: Update APT package cache + apt: update_cache=yes cache_valid_time=600 + + - name: Upgrade APT to the latest packages + apt: upgrade=dist + register: apt_result + + - name: Install a list of packages + command: apt-get install -y jq dnsutils ctop + register: apt_result + changed_when: "'packages will be installed' in apt_result.stdout" + + - name: Autoremove unused packages + command: apt-get -y autoremove + register: apt_result + changed_when: "'packages will be REMOVED' in apt_result.stdout" + + - name: Purge residual kernel packages + shell: apt-get remove -y --purge $(dpkg -l | grep "^rc\s*linux-image-" | awk '{print $2}' | tr '\n' ' ') + register: apt_result + changed_when: "'packages will be REMOVED' in apt_result.stdout" diff --git a/menu/pgui/pgui.yml b/menu/pgui/pgui.yml new file mode 100644 index 00000000..9d82197d --- /dev/null +++ b/menu/pgui/pgui.yml @@ -0,0 +1,122 @@ +#!/bin/bash +# +# Title: Community UI +# original Author(s): Admin9705 +# moded from MrDoob for ptSCOMM +# GNU: General Public License v3.0 +################################################################################ +--- +- hosts: localhost + gather_facts: false + tasks: + # FACTS ####################################################################### + - name: 'Set Known Facts' + set_fact: + pgrole: 'pgui' + intport: '80' + extport: '8555' + image: 'mrdoob/dngele:latest' + + # CORE (MANDATORY) ############################################################ + - name: 'Including cron job' + include_tasks: '/opt/coreapps/apps/_core.yml' + + - name: 'Including cron job' + include_tasks: '/opt/plexguide/menu/pgui/_cron.yml' + + - name: 'Including Tasks' + include_tasks: '/opt/plexguide/menu/pgui/dynamic.yml' + + # refix the UI ############################################################ + + - name: 'Install File new UI' + template: + src: /opt/plexguide/menu/pgui/index.php + dest: /opt/appdata/pgui/index.php + force: yes + owner: '1000' + group: '1000' + + ### mountcheck replace + + - name: replacing MountCheck Service + template: + src: /opt/plexguide/menu/pgui/mountcheck.service + dest: /etc/systemd/system/mountcheck.service + force: yes + + - name: Daemon-Reload + systemd: state=stopped name=mountcheck daemon_reload=yes enabled=no + + - name: Start pgscan + systemd: state=started name=mountcheck enabled=yes + + ### localspace replace + + - name: replacing localspace Service + template: + src: /opt/plexguide/menu/pgui/localspace.service + dest: /etc/systemd/system/localspace.service + force: yes + + - name: Daemon-Reload + systemd: state=stopped name=localspace daemon_reload=yes enabled=no + + - name: Start pgscan + systemd: state=started name=localspace enabled=yes + + + # 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: + - '/opt/appdata/pgui/index.php:/var/www/html/index.php' + - '/var/plexguide:/plexguide' + - '/opt/appdata/plexguide:/log' + + - name: 'Setting PG ENV' + set_fact: + pg_env: + PUID: '1000' + PGID: '1000' + + # first catchup data ########################################################## + + - name: Please wait this will need some minutes + shell: 'bash /opt/plexguide/menu/pgui/check.sh' + + # 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}}' +