From a857eb82ec9c4a79ad5e41462e2ab82c2660982e Mon Sep 17 00:00:00 2001 From: Kumar Date: Tue, 23 Nov 2021 09:59:08 -0500 Subject: initial commit --- roles/jellyfin/README.md | 34 +++++++++++++++++++++++++++++ roles/jellyfin/defaults/main.yaml | 2 ++ roles/jellyfin/handlers/main.yaml | 7 ++++++ roles/jellyfin/tasks/main.yaml | 45 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 roles/jellyfin/README.md create mode 100644 roles/jellyfin/defaults/main.yaml create mode 100644 roles/jellyfin/handlers/main.yaml create mode 100644 roles/jellyfin/tasks/main.yaml (limited to 'roles/jellyfin') diff --git a/roles/jellyfin/README.md b/roles/jellyfin/README.md new file mode 100644 index 0000000..79d061e --- /dev/null +++ b/roles/jellyfin/README.md @@ -0,0 +1,34 @@ +# Ansible - Jellyfin + +## Example Playbook +``` +# Direct Access: http://art-jr:8096/ +# Domain Access: http://kumardamani.xyz/media +# Create login from GUI. +# While doing initial setup set the base url to '/media' in Networking settings. +- hosts: compute + gather_facts: false + tags: 'jellyfin' + become: true + roles: + - role: jellyfin + vars: + jellyfin_domain: 'kumardamani.xyz' +``` + +## Nginx Conf +``` + location /media/ { + proxy_pass http://127.0.0.1:8096/media/; + proxy_pass_request_headers on; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + # Disable buffering when the nginx proxy gets very resource heavy upon streaming + proxy_buffering off; + } +``` diff --git a/roles/jellyfin/defaults/main.yaml b/roles/jellyfin/defaults/main.yaml new file mode 100644 index 0000000..9a163d4 --- /dev/null +++ b/roles/jellyfin/defaults/main.yaml @@ -0,0 +1,2 @@ +# Default Values +--- diff --git a/roles/jellyfin/handlers/main.yaml b/roles/jellyfin/handlers/main.yaml new file mode 100644 index 0000000..7613b54 --- /dev/null +++ b/roles/jellyfin/handlers/main.yaml @@ -0,0 +1,7 @@ +--- + +- name: 'Restart nginx' + systemd: + name: 'nginx' + state: 'restarted' + listen: 'nginx_restart' diff --git a/roles/jellyfin/tasks/main.yaml b/roles/jellyfin/tasks/main.yaml new file mode 100644 index 0000000..647c1f1 --- /dev/null +++ b/roles/jellyfin/tasks/main.yaml @@ -0,0 +1,45 @@ +# https://jellyfin.org/docs/general/administration/installing.html +# https://jellyfin.org/docs/general/networking/nginx.html +--- + +- name: 'Install required apt packages' + apt: + name: + - 'apt-transport-https' + - 'gnupg' + - 'lsb-release' + state: 'present' + update_cache: true + +- name: Add an Apt signing key, uses whichever key is at the URL + apt_key: + url: https://repo.jellyfin.org/debian/jellyfin_team.gpg.key + state: present + +- name: Add specified repository into sources list + apt_repository: + repo: deb [arch=armhf] https://repo.jellyfin.org/debian bullseye main + state: present + filename: jellyfin + +- name: 'Install Jellyfin' + apt: + name: + - 'jellyfin' + state: 'present' + update_cache: true + +- name: 'Add jellyfin user to video group' + user: + name: 'jellyfin' + groups: 'video' + append: true + state: 'present' + +- name: 'Start Jellyfin' + systemd: + name: '{{ item }}' + state: 'started' + enabled: true + loop: + - 'jellyfin' -- cgit v1.2.3