Skip to content

Ansible role to install and configure Jellyfin on Debian-like systems.

License

Notifications You must be signed in to change notification settings

sleepy-nols/ansible-jellyfin

Repository files navigation

ansible-jellyfin

Ansible role to install and configure Jellyfin on Debian-like systems.

ansible-lint push-galaxy Ansible Galaxy

The default deployment without any variables changed is not a vanilla deployment as several quality of life improvements are made.

Features:

  • fully configurable config files (ansible management of settings normally tweaked in webUI)
  • fail2ban support
  • logrotate support
  • deployment of webserver(reverse-proxy) (currently only nginx)
  • configuration of ssl with webserver

Role Variables and Defaults

jellyfin_user: "jellyfin"

User that Jellyfin runs as.

jellyfin_skip_restart: false

Skip restarting Jellyfin, even on config change.


fail2ban

jellyfin_enable_fail2ban: false

Enable fail2ban integration for the Jellyfin login.

jellyfin_fail2ban_ports:
  - "80"
  - "443"

Set these if you use custom ports for Jellyfin.

jellyfin_fail2ban_maxretry: "3"
jellyfin_fail2ban_bantime: "6000"
jellyfin_fail2ban_findtime: "600"

Configuration of fail2ban parameters. You probably want to tweak these according to your userbase and threatmodel.


Jellyfin

jellyfin_cache_dir: "/var/cache/jellyfin"
jellyfin_log_dir: "/var/log/jellyfin"
jellyfin_config_dir: "/etc/jellyfin"
jellyfin_data_dir: "/var/lib/jellyfin"

Jellyfin directories.

jellyfin_restart_bin: "/usr/lib/jellyfin/restart.sh"
jellyfin_ffmpeg_bin: "/usr/lib/jellyfin-ffmpeg/ffmpeg"
jellyfin_web_bin: "/usr/share/jellyfin/web"

Jellyfin binary paths.

jellyfin_additional_opts: str

Optional: Additional Jellyfin options as in Main Configuration Options

jellyfin_service: bool

Optional: Run Jellyfin as a headless service.

jellyfin_nowebapp: bool

Optional: Run Jellyfin without the web app.


Advanced

jellyfin_complus_gcserver: int

Optional: Run Jellyfin with ASP.NET Server Garbage Collection (uses more RAM and less CPU than Workstation GC). 0=Workstation, 1=Server.

jellyfin_malloc_trim_threshold: 131072

Disable glibc dynamic heap adjustment.


Installing

Install via Ansible Galaxy or clone the Repo

ansible-galaxy role install sleepy-nols.jellyfin

git clone [email protected]:sleepy-nols/ansible-jellyfin.git

Example Playbook

- hosts: jellyfin-hosts
  roles:
    - sleepy-nols.jellyfin

Contributing

Contributions on are welcome. :)


License

GPLv3

About

Ansible role to install and configure Jellyfin on Debian-like systems.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages