From 3f743def26b00d2bc545247a35755d4b960c08cc Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Sun, 28 Dec 2025 12:14:09 +0100 Subject: [PATCH] feat(playbooks/jellyfin): add playbook --- README.md | 1 + playbooks/jellyfin.md | 6 ++++++ playbooks/jellyfin.yml | 42 ++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 playbooks/jellyfin.md diff --git a/README.md b/README.md index b64db0c..dac4384 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ concise area of concern. ## Playbooks - [`hedgedoc`](playbooks/hedgedoc.md) +- [`jellyfin`](playbooks/jellyfin.md) - [`gitea`](playbooks/gitea.md) - [`vaultwarden`](playbooks/vaultwarden.md) diff --git a/playbooks/jellyfin.md b/playbooks/jellyfin.md new file mode 100644 index 0000000..5fa13b6 --- /dev/null +++ b/playbooks/jellyfin.md @@ -0,0 +1,6 @@ +# `finallycoffee.services.jellyfin` ansible playbook + +## Feature toggles + +- `jellyfin_configure_lego_rfc2136` (default `false`) +- `jellyfin_configure_caddy_reverse_proxy` (default `false`) diff --git a/playbooks/jellyfin.yml b/playbooks/jellyfin.yml index 88e38ab..85362b3 100644 --- a/playbooks/jellyfin.yml +++ b/playbooks/jellyfin.yml @@ -1,6 +1,44 @@ --- -- name: Install and configure jellyfin +- import_playbook: finallycoffee.base.lego_certificate + when: jellyfin_configure_lego_rfc2136 | default(false) + vars: + target_domains: + - "{{ jellyfin_domain }}" + target_acme_zone: "{{ acme_domain }}" + target_acme_account_email: "{{ jellyfin_lego_acme_account_email }}" + target_dns_server: "{{ dns_server }}" + target_dns_tsig_key: "{{ dns_tsig_keydata }}" + target_dns_additional_records: "{{ jellyfin_dns_records }}" + target_hosts: >-2 + {{ jelllyfin_lego_hosts | default(jellyfin_hosts | default('jellyfin')) }} + target_become: >-2 + {{ jellyfin_lego_become | default(jellyfin_become | default(false)) }} + target_gather_facts: >-2 + {{ jellyfin_lego_gather_facts | default(false) }} + tags: + - jellyfin + - jellyfin-lego + +- name: Install jellyfin, a selfhosted media streaming platform hosts: "{{ jellyfin_hosts | default('jellyfin') }}" - become: "{{ jellyfin_become | default(true, false) }}" + become: "{{ jellyfin_become | default(false) }}" + gather_facts: "{{ jellyfin_gather_facts | default(false) }}" roles: - role: finallycoffee.services.jellyfin + tags: + - jellyfin + +- import_playbook: finallycoffee.base.caddy_reverse_proxy + when: jellyfin_configure_caddy_reverse_proxy | default(false) + vars: + caddy_site_name: "{{ jellyfin_domain }}" + caddy_reverse_proxy_backend_addr: "http://{{ jellyfin_host_bind_ip }}" + target_hosts: >-2 + {{ jellyfin_caddy_hosts | default(jellyfin_hosts | default('jellyfin')) }} + target_become: >-2 + {{ jellyfin_caddy_become | default(jellyfin_become | default(false)) }} + target_gather_facts: >-2 + {{ jellyfin_caddy_gather_facts | default(false) }} + tags: + - jellyfin + - jellyfin-caddy