Advertisement
Guest User

jellyfin.yml host mode

a guest
Jan 29th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # Title: PGBlitz (Reference Title File)
  4. # Author(s): Admin9705
  5. # URL: https://pgblitz.com - http://github.pgblitz.com
  6. # GNU: General Public License v3.0
  7. ################################################################################
  8. ---
  9. - hosts: localhost
  10. gather_facts: false
  11. tasks:
  12. # FACTS #######################################################################
  13. - name: 'Set Known Facts'
  14. set_fact:
  15. pgrole: 'jellyfin'
  16. intport: '8096'
  17. extport: '9096'
  18. image: 'jellyfin/jellyfin:latest'
  19.  
  20. # CORE (MANDATORY) ############################################################
  21. - name: 'Including cron job'
  22. include_tasks: '/opt/coreapps/apps/_core.yml'
  23.  
  24. - name: 'XML Check'
  25. stat:
  26. path: /opt/appdata/{{pgrole}}/config/system.xml
  27. register: xmlcheck
  28.  
  29. # LABELS ######################################################################
  30. - name: 'Adding Traefik'
  31. set_fact:
  32. pg_labels:
  33. traefik.enable: 'false'
  34. traefik.port: '{{intport}}'
  35. traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}}{{tldset}}{{cname}}'
  36. traefik.frontend.headers.SSLHost: '{{domain.stdout}}'
  37. traefik.frontend.headers.SSLRedirect: 'true'
  38. traefik.frontend.headers.STSIncludeSubdomains: 'true'
  39. traefik.frontend.headers.STSPreload: 'true'
  40. traefik.frontend.headers.STSSeconds: '315360000'
  41. traefik.frontend.headers.browserXSSFilter: 'true'
  42. traefik.frontend.headers.contentTypeNosniff: 'true'
  43. traefik.frontend.headers.customResponseHeaders: 'X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex'
  44. traefik.frontend.headers.forceSTSHeader: 'true'
  45.  
  46. - name: 'Setting PG Volumes'
  47. set_fact:
  48. pg_volumes:
  49. - '/etc/localtime:/etc/localtime:ro'
  50. - '{{path.stdout}}:{{path.stdout}}'
  51. - '/mnt:/mnt'
  52. - '/opt/appdata/{{pgrole}}:/config'
  53. - '/opt/transcodes:/transcode'
  54. - '/var/run/docker.sock:/var/run/docker.sock'
  55.  
  56. - name: 'Setting PG ENV'
  57. set_fact:
  58. pg_env:
  59. GIDLIST: '1000'
  60. PUID: '1000'
  61. PGID: '1000'
  62.  
  63. # MAIN DEPLOYMENT #############################################################
  64. - name: 'Check'
  65. stat:
  66. path: '/dev/dri'
  67. register: dev_dri
  68.  
  69. - name: 'Deploying {{pgrole}}'
  70. docker_container:
  71. name: '{{pgrole}}'
  72. image: '{{image}}'
  73. pull: yes
  74. user: 1000:1000
  75. devices: "{{ '/dev/dri:/dev/dri' if dev_dri.stat.exists == True | default(false) else omit }}"
  76. volumes: '{{pg_volumes}}'
  77. env: '{{pg_env}}'
  78. network_mode: 'host'
  79. state: started
  80. labels: '{{pg_labels}}'
  81.  
  82. # FIRST TIME CONFIGURATION ###########################################################
  83. - name: 'Configuring {{pgrole}} for first time use'
  84. block:
  85. - name: 'Pending XML Generation'
  86. wait_for:
  87. path: '/opt/appdata/{{pgrole}}/config/system.xml'
  88. state: present
  89.  
  90. - name: 'Wait 5 Seconds'
  91. wait_for:
  92. timeout: 5
  93.  
  94. - name: 'Stop {{pgrole}}'
  95. docker_container:
  96. name: '{{pgrole}}'
  97. state: stopped
  98.  
  99. - name: 'Turn Off Reporting'
  100. xml:
  101. path: '/opt/appdata/{{pgrole}}/config/system.xml'
  102. xpath: /ServerConfiguration/EnableAnonymousUsageReporting
  103. value: 'false'
  104.  
  105. - name: 'Restart {{pgrole}}'
  106. docker_container:
  107. name: '{{pgrole}}'
  108. state: started
  109. when: not xmlcheck.stat.exists
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement