diff options
| author | Kumar <kumar@kumardamani.xyz> | 2021-11-23 14:59:08 +0000 |
|---|---|---|
| committer | Kumar Damani <me@kumardamani.net> | 2022-03-25 19:45:25 +0000 |
| commit | a857eb82ec9c4a79ad5e41462e2ab82c2660982e (patch) | |
| tree | 9ca51ddfb551322bd4d2fa3f949fa8898032632d /roles/jellyfin | |
initial commit
Diffstat (limited to 'roles/jellyfin')
| -rw-r--r-- | roles/jellyfin/README.md | 34 | ||||
| -rw-r--r-- | roles/jellyfin/defaults/main.yaml | 2 | ||||
| -rw-r--r-- | roles/jellyfin/handlers/main.yaml | 7 | ||||
| -rw-r--r-- | roles/jellyfin/tasks/main.yaml | 45 |
4 files changed, 88 insertions, 0 deletions
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' |
