mirror of
https://github.com/davestephens/ansible-nas
synced 2024-12-25 19:13:08 +00:00
Fix merge conflict
This commit is contained in:
commit
30b20768fe
7 changed files with 129 additions and 4 deletions
|
@ -13,7 +13,7 @@ Ansible config and a bunch of Docker containers.
|
|||
* A BitTorrent client
|
||||
* A Usenet downloader
|
||||
* 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
|
||||
* An RSS newsfeed reader - Miniflux
|
||||
* 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
|
||||
* [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
|
||||
* [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
|
||||
* [Miniflux](https://miniflux.app/) - An RSS news reader
|
||||
* [Mosquitto](https://mosquitto.org) - An open source MQTT broker
|
||||
|
@ -92,7 +93,7 @@ gained by automating it. Check out the [docs](https://davestephens.github.io/ans
|
|||
:skull: Before running anything, check out the playbook and understand what it
|
||||
does. Run it against a VM and make sure you're happy. ***Do not*** blindly
|
||||
download code from the internet and trust that it's going to work as you expect.
|
||||
:skull:
|
||||
:skull:
|
||||
|
||||
1. Enable the Ubuntu Universe repository: `sudo add-apt-repository universe`
|
||||
2. Install Ansible: `sudo apt install ansible`
|
||||
|
@ -124,7 +125,7 @@ Assuming that your Ubuntu system disk is separate from your storage (it should b
|
|||
## Requirements
|
||||
|
||||
* Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu
|
||||
Server 18.04.2 LTS.
|
||||
Server 18.04.2 LTS.
|
||||
* You can run Ansible-NAS on whatever you like, read the docs for more info. I
|
||||
use an HP Microserver.
|
||||
|
||||
|
|
71
docs/applications/jellyfin.md
Normal file
71
docs/applications/jellyfin.md
Normal 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.
|
|
@ -23,6 +23,8 @@ By default, applications can be found on the ports listed below.
|
|||
| Heimdall | 10080 | |
|
||||
| Home Assistant | 8123 | |
|
||||
| Jackett | 9117 | |
|
||||
| Jellyfin | 8896 | HTTP |
|
||||
| Jellyfin | 8928 | HTTPS |
|
||||
| MiniDLNA | 8201 | |
|
||||
| Miniflux | 8070 | |
|
||||
| Mosquitto | 1883 | MQTT |
|
||||
|
|
|
@ -27,6 +27,9 @@ tautulli_enabled: false
|
|||
# Emby
|
||||
emby_enabled: false
|
||||
|
||||
# Jellyfin
|
||||
jellyfin_enabled: false
|
||||
|
||||
# minidlna
|
||||
minidlna_enabled: false
|
||||
|
||||
|
@ -629,3 +632,17 @@ homeassistant_data_directory: "{{ docker_home }}/homeassistant"
|
|||
openhab_available_externally: "false"
|
||||
openhab_docker_image: openhab/openhab:latest
|
||||
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
|
||||
|
|
4
nas.yml
4
nas.yml
|
@ -188,4 +188,6 @@
|
|||
when: (openhab_enabled | default(False))
|
||||
tags: openhab
|
||||
|
||||
|
||||
- import_tasks: tasks/jellyfin.yml
|
||||
when: (jellyfin_enabled | default(False))
|
||||
tags: jellyfin
|
||||
|
|
31
tasks/jellyfin.yml
Normal file
31
tasks/jellyfin.yml
Normal 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"
|
|
@ -194,6 +194,7 @@ onDemand = false # create certificate when container is created
|
|||
"heimdall.{{ ansible_nas_domain }}",
|
||||
"homeassistant.{{ ansible_nas_domain }}",
|
||||
"jackett.{{ ansible_nas_domain }}",
|
||||
"jellyfin.{{ ansible_nas_domain }}",
|
||||
"miniflux.{{ ansible_nas_domain }}",
|
||||
"netdata.{{ ansible_nas_domain }}",
|
||||
"nextcloud.{{ ansible_nas_domain }}",
|
||||
|
|
Loading…
Reference in a new issue