aboutsummaryrefslogtreecommitdiff
path: root/roles/jellyfin
diff options
context:
space:
mode:
authorKumar <kumar@kumardamani.xyz>2021-11-23 14:59:08 +0000
committerKumar Damani <me@kumardamani.net>2022-03-25 19:45:25 +0000
commita857eb82ec9c4a79ad5e41462e2ab82c2660982e (patch)
tree9ca51ddfb551322bd4d2fa3f949fa8898032632d /roles/jellyfin
initial commit
Diffstat (limited to 'roles/jellyfin')
-rw-r--r--roles/jellyfin/README.md34
-rw-r--r--roles/jellyfin/defaults/main.yaml2
-rw-r--r--roles/jellyfin/handlers/main.yaml7
-rw-r--r--roles/jellyfin/tasks/main.yaml45
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'