Fix merge conflict

This commit is contained in:
David Stephens 2019-10-19 17:30:47 +01:00
commit 30b20768fe
7 changed files with 129 additions and 4 deletions

View file

@ -13,7 +13,7 @@ Ansible config and a bunch of Docker containers.
* A BitTorrent client * A BitTorrent client
* A Usenet downloader * A Usenet downloader
* Various media management tools - Sonarr, Sickchill, CouchPotato, Radarr, Bazarr * Various media management tools - Sonarr, Sickchill, CouchPotato, Radarr, Bazarr
* Media streaming via Plex or Emby * Media streaming via Plex, Emby or Jellyfin
* Music streaming with Airsonic * Music streaming with Airsonic
* An RSS newsfeed reader - Miniflux * An RSS newsfeed reader - Miniflux
* A Dropbox replacement via Nextcloud * A Dropbox replacement via Nextcloud
@ -47,6 +47,7 @@ Ansible config and a bunch of Docker containers.
* [Home Assistant](https://www.home-assistant.io) - Open source home automation * [Home Assistant](https://www.home-assistant.io) - Open source home automation
* [InfluxDB](https://github.com/influxdata/influxdb) - Time series database used for stats collection * [InfluxDB](https://github.com/influxdata/influxdb) - Time series database used for stats collection
* [Jackett](https://github.com/Jackett/Jackett) - API Support for your favorite torrent trackers * [Jackett](https://github.com/Jackett/Jackett) - API Support for your favorite torrent trackers
* [Jellyfin](https://jellyfin.github.io) - The Free Software Media System
* [MiniDlna](https://sourceforge.net/projects/minidlna/) - simple media server which is fully compliant with DLNA/UPnP-AV clients * [MiniDlna](https://sourceforge.net/projects/minidlna/) - simple media server which is fully compliant with DLNA/UPnP-AV clients
* [Miniflux](https://miniflux.app/) - An RSS news reader * [Miniflux](https://miniflux.app/) - An RSS news reader
* [Mosquitto](https://mosquitto.org) - An open source MQTT broker * [Mosquitto](https://mosquitto.org) - An open source MQTT broker

View file

@ -0,0 +1,71 @@
# Jellyfin
Homepage: [https://jellyfin.github.io/](https://jellyfin.github.io/)
Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!
Note that [Plex](https://www.plex.tv/), also included in Ansible-NAS, has a very
similar functionality.
## Usage
Set `jellyfin_enabled: true` in your `group_vars/all.yml` file. There are further
parameters you can edit such as `movies_root` and `tv_root` lower down.
## Specific Configuration
The jellyfin web interface can be found at port 8896 (http) or 8928 (https, if
configured) of your NAS.
By default, Ansible-NAS gives jellyfin read/write access to the folders where your
movies and TV shows are stored. To change this to read-only, edit the following
lines in `all.yml`:
```
jellyfin_movies_permissions: "rw"
jellyfin_tv_permissions: "rw"
```
so that they end in `ro` instead of `rw`. Note that jellyfin will not be able to
delete files then, which might be exactly what you want. However, you will not
have the option to store cover art in the related folders. Always leave the
configuration directory read/write.
## File system considerations
Movie and TV show files are almost alway very large and pre-compressed. If you
are using a specialized filesystem such as ZFS for bulk storage, you'll want to
set the parameters accordingly. The [ZFS configuration
documentation](../zfs/zfc_configuration.md) has an example of this.
## Naming movies and TV shows
jellyfin is very fussy about how movies and TV shows must be named to enable
automatic downloads of cover art and metadata. In short, movie files should
follow how movies are listed in the [IMDb](https://www.imdb.com/), including the
year of publication:
```
movies/Bride of Frankenstein (1935).mp4
```
Note the spaces. You should probably remove colons and other special characters.
TV shows require a folder structure with the name of the series - again if
possible with the year of publication - followed by sub-folders for the
individual seasons. For example, the first episode of the first season of
the original "Doctor Who" could be stored as:
```
tv/Doctor Who (1963)/Season 1/Doctor Who - s01e01.mp4
```
The [TVDB](https://www.thetvdb.com/) is one source for the exact names of TV
shows.
Unfortunately, there are number of special cases, especially related to split
movies and older series. See the [movie
naming](https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming) and [TV
naming](https://github.com/MediaBrowser/Wiki/wiki/TV-naming) guides for further
information.

View file

@ -23,6 +23,8 @@ By default, applications can be found on the ports listed below.
| Heimdall | 10080 | | | Heimdall | 10080 | |
| Home Assistant | 8123 | | | Home Assistant | 8123 | |
| Jackett | 9117 | | | Jackett | 9117 | |
| Jellyfin | 8896 | HTTP |
| Jellyfin | 8928 | HTTPS |
| MiniDLNA | 8201 | | | MiniDLNA | 8201 | |
| Miniflux | 8070 | | | Miniflux | 8070 | |
| Mosquitto | 1883 | MQTT | | Mosquitto | 1883 | MQTT |

View file

@ -27,6 +27,9 @@ tautulli_enabled: false
# Emby # Emby
emby_enabled: false emby_enabled: false
# Jellyfin
jellyfin_enabled: false
# minidlna # minidlna
minidlna_enabled: false minidlna_enabled: false
@ -629,3 +632,17 @@ homeassistant_data_directory: "{{ docker_home }}/homeassistant"
openhab_available_externally: "false" openhab_available_externally: "false"
openhab_docker_image: openhab/openhab:latest openhab_docker_image: openhab/openhab:latest
openhab_data_directory: "{{ docker_home }}/openhab" openhab_data_directory: "{{ docker_home }}/openhab"
###
### Jellyfin
###
# If you're paranoid, set permissions to "ro" so jellyfin won't ever be able to
# delete your files
jellyfin_available_externally: "false"
jellyfin_config_directory: "{{ docker_home }}/jellyfin/config"
jellyfin_movies_directory: "{{ movies_root }}"
jellyfin_movies_permissions: "rw"
jellyfin_tv_directory: "{{ tv_root }}"
jellyfin_tv_permissions: "rw"
jellyfin_user_id: 0
jellyfin_group_id: 0

View file

@ -188,4 +188,6 @@
when: (openhab_enabled | default(False)) when: (openhab_enabled | default(False))
tags: openhab tags: openhab
- import_tasks: tasks/jellyfin.yml
when: (jellyfin_enabled | default(False))
tags: jellyfin

31
tasks/jellyfin.yml Normal file
View file

@ -0,0 +1,31 @@
- name: Create Jellyfin Directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ jellyfin_config_directory }}"
- name: Jellyfin Docker Container
docker_container:
name: jellyfin
image: linuxserver/jellyfin
pull: true
volumes:
- "{{ jellyfin_config_directory }}:/config:rw"
- "{{ jellyfin_movies_directory }}:/movies:{{ jellyfin_movies_permissions }}"
- "{{ jellyfin_tv_directory }}:/tv:{{ jellyfin_tv_permissions }}"
ports:
- "8896:8096" # HTTP port
- "8928:8920" # HTTPS port
network_mode: host
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ jellyfin_user_id }}"
PGID: "{{ jellyfin_group_id }}"
restart_policy: unless-stopped
memory: 1g
labels:
traefik.backend: "jellyfin"
traefik.frontend.rule: "Host:jellyfin.{{ ansible_nas_domain }}"
traefik.enable: "{{ jellyfin_available_externally }}"
traefik.port: "8896"

View file

@ -194,6 +194,7 @@ onDemand = false # create certificate when container is created
"heimdall.{{ ansible_nas_domain }}", "heimdall.{{ ansible_nas_domain }}",
"homeassistant.{{ ansible_nas_domain }}", "homeassistant.{{ ansible_nas_domain }}",
"jackett.{{ ansible_nas_domain }}", "jackett.{{ ansible_nas_domain }}",
"jellyfin.{{ ansible_nas_domain }}",
"miniflux.{{ ansible_nas_domain }}", "miniflux.{{ ansible_nas_domain }}",
"netdata.{{ ansible_nas_domain }}", "netdata.{{ ansible_nas_domain }}",
"nextcloud.{{ ansible_nas_domain }}", "nextcloud.{{ ansible_nas_domain }}",