#!/bin/bash # # Title: PGBlitz (Reference Title File) # Author(s): Admin9705 # CoAuthor: halomore # Upgrades: pazport # 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: 'autoscan' intport: '3030' extport: '3030' image: 'cloudb0x/autoscan' # CORE (MANDATORY) ############################################################ - name: 'Including cron job' include_tasks: '/opt/coreapps/apps/_core.yml' # LABELS ###################################################################### - name: 'Adding Traefik for {{pgrole}}' set_fact: pg_labels: 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' ## VALUES for {{pgrole} - name: 'Create {{pgrole}} folders' file: "path={{ item }} state=directory mode=0775 owner=1000 group=1000 recurse=yes" with_items: - '/opt/appdata/{{pgrole}}' - '/mnt/unionfs/.anchors/' - name: 'Create {{pgrole}} anchors file' file: "path={{ item }} state=touch mode=0775 owner=1000 group=1000" with_items: - '/mnt/unionfs/.anchors/cloud.anchor' - '/mnt/unionfs/.anchors/local.anchor' - name: 'Setting {{pgrole}} Volumes' set_fact: pg_volumes: - '/opt/appdata/{{pgrole}}:/config' - '/opt/appdata/plex:/data/plex:ro' - '/opt/appdata/emby:/data/emby:ro' - '/mnt:/mnt:ro' - '/etc/localtime:/etc/localtime:ro' - name: 'Setting {{pgrole}} ENV' set_fact: pg_env: PUID: '1000' PGID: '1000' AUTOSCAN_VERBOSITY: '1' - name: 'Checking for existing {{pgrole}}/config.yml' stat: path: /opt/appdata/{{pgrole}}/config.yml register: confcheck - name: 'Creating {{pgrole}}/config.yml' file: "path={{ item }} state=file mode=0775 owner=1000 group=1000 recurse=yes" with_items: - '/opt/appdata/{{pgrole}}/config.yml' ignore_errors: yes when: confcheck.stat.exists == false # 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: - 'autoscan' state: started labels: '{{pg_labels}}'