From e56b49ed898bcda16dafff86ac85119f24694554 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 29 Nov 2020 20:13:05 +0100 Subject: [PATCH] Addition of Jellyfin --- jellyfin/CHANGELOG.md | 32 +++++++++++ jellyfin/Dockerfile | 33 +++++++++++ jellyfin/README.md | 31 ++++++++++ jellyfin/build.json | 14 +++++ jellyfin/config.json | 55 ++++++++++++++++++ jellyfin/icon.png | Bin 0 -> 26234 bytes jellyfin/logo.png | Bin 0 -> 26234 bytes jellyfin/root/etc/cont-init.d/00-ha-env | 5 ++ jellyfin/root/etc/cont-init.d/20-folders | 70 +++++++++++++++++++++++ jellyfin/root/etc/cont-init.d/50-mounts | 46 +++++++++++++++ 10 files changed, 286 insertions(+) create mode 100644 jellyfin/CHANGELOG.md create mode 100644 jellyfin/Dockerfile create mode 100644 jellyfin/README.md create mode 100644 jellyfin/build.json create mode 100644 jellyfin/config.json create mode 100644 jellyfin/icon.png create mode 100644 jellyfin/logo.png create mode 100644 jellyfin/root/etc/cont-init.d/00-ha-env create mode 100644 jellyfin/root/etc/cont-init.d/20-folders create mode 100644 jellyfin/root/etc/cont-init.d/50-mounts diff --git a/jellyfin/CHANGELOG.md b/jellyfin/CHANGELOG.md new file mode 100644 index 000000000..c730cc82e --- /dev/null +++ b/jellyfin/CHANGELOG.md @@ -0,0 +1,32 @@ +## 0.7.1 + + - Mount /media folder + +## 0.7.0 + + - Update emby to 4.5.2.0 (linuxserver/emby:4.5.2.0-ls58) + +## 0.6.0 + + - Update emby to 4.5.1.0 (linuxserver/emby:4.5.1.0-ls58) + +## 0.5.0 + + - Update emby to 4.5.0.50 (linuxserver/emby:4.5.0.50-ls56) + +## 0.4.0 + + - Update emby to 4.4.3.0 (linuxserver/emby:4.4.3.0-ls45) + +## 0.3.0 + + - Update emby to 4.4.2.0 (linuxserver/emby:4.4.2.0-ls40) + +## 0.2.0 + + - not a legacy addon anymore + - Update base image to linuxserver/emby:4.3.1.0-ls31 + +## 0.1.0 + + - emby to 4.3.1.0 (linuxserver/emby:4.3.1.0-ls26) \ No newline at end of file diff --git a/jellyfin/Dockerfile b/jellyfin/Dockerfile new file mode 100644 index 000000000..d90be9960 --- /dev/null +++ b/jellyfin/Dockerfile @@ -0,0 +1,33 @@ +ARG BUILD_FROM +# hadolint ignore=DL3006 +FROM $BUILD_FROM + +# Set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN apt-get update \ + \ + && apt-get install -y --no-install-recommends \ + jq=1.5+dfsg-2 \ + \ + && apt-get -y upgrade cifs-utils \ + && curl -J -L -o /tmp/bashio.tar.gz \ + "https://github.com/hassio-addons/bashio/archive/v0.7.1.tar.gz" \ + && mkdir /tmp/bashio \ + && tar zxvf \ + /tmp/bashio.tar.gz \ + --strip 1 -C /tmp/bashio \ + \ + && mv /tmp/bashio/lib /usr/lib/bashio \ + && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ + && rm -fr \ + /tmp/* \ + /var/{cache,log}/* \ + /var/lib/apt/lists/* + +# copy local files +COPY root/ / + +RUN sed -i "s|/config|/jellyfin|g" /etc/services.d/jellyfin/run \ + && sed -i "s|/config|/jellyfin|g" /etc/cont-init.d/30-config + diff --git a/jellyfin/README.md b/jellyfin/README.md new file mode 100644 index 000000000..f6e143db6 --- /dev/null +++ b/jellyfin/README.md @@ -0,0 +1,31 @@ +# Hassio Add-ons by alexbelgium: Jellyfin + +## About + +Forked to add latest versions, smb and local hdd mount. +- Inital version : https://github.com/petersendev/hassio-addons +- CIFS code : https://github.com/dianlight/hassio-addons + +[Jellyfin](https://Jellyfin.media/) organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Jellyfin Media Server. + +This addon is based on the [docker image](https://github.com/linuxserver/docker-Jellyfin) from linuxserver.io. + +## Installation + +The installation of this add-on is pretty straightforward and not different in +comparison to installing any other Hass.io add-on. + +1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance. +1. Install this add-on. +1. Click the `Save` button to store your configuration. +1. Start the add-on. +1. Check the logs of the add-on to see if everything went well. +1. Carefully configure the add-on to your preferences, see the official documentation for for that. + + +## Configuration + +Webui can be found at `:8096`. + + +[repository]: https://github.com/alexbelgium/hassio-addons diff --git a/jellyfin/build.json b/jellyfin/build.json new file mode 100644 index 000000000..536993622 --- /dev/null +++ b/jellyfin/build.json @@ -0,0 +1,14 @@ +{ + "build_from_template": { + "image": "linuxserver/jellyfin", + "version": "latest" + }, + "build_from": { + "armv7": "linuxserver/jellyfin:arm32v7-latest", + "armhf": "linuxserver/jellyfin:arm32v7-latest", + "aarch64": "linuxserver/jellyfin:arm64v8-latest", + "amd64": "linuxserver/jellyfin:amd64-latest" + }, + "squash": false, + "args": {} +} diff --git a/jellyfin/config.json b/jellyfin/config.json new file mode 100644 index 000000000..918a51c9c --- /dev/null +++ b/jellyfin/config.json @@ -0,0 +1,55 @@ +{ + "name": "Jellyfin with smb and hdd", + "version": "2.0", + "slug": "jellyfin_nas", + "legacy": false, + "maintenance": { + "github_release": "https://github.com/linuxserver/docker-jellyfin", + "version_regex": "(\\d+\\.\\d+\\.\\d+.\\d+)-(ls\\d+)" + }, + "description": "A Free Software Media System that puts you in control of managing and streaming your media.", + "url": "https://github.com/petersendev/hassio-addons/tree/master/jellyfin#readme", + "startup": "services", + "arch": [ + "aarch64", + "amd64", + "armv7", + "armhf" + ], + "ports": { + "8096/tcp": 8096, + "8920/tcp": null + }, + "ports_description": { + "8096/tcp": "web interface", + "8920/tcp": "https web interface (optional)" + }, + "map": [ + "config:rw", + "share:rw", + "media:rw", + "ssl" + ], + "webui": "http://[HOST]:[PORT:8096]", + "boot": "auto", + "privileged": ["SYS_ADMIN", "DAC_READ_SEARCH"], + "full_access": true, + "options": { + "PUID": 1001, + "PGID": 1001, + "localdisks": "/dev/sdb1", + "networkdisks": "", + "cifsusername": "", + "cifspassword": "" + }, + "schema": { + "PUID": "int", + "PGID": "int", + "TZ": "str?", + "localdisks": "str", + "networkdisks": "str", + "cifsusername": "str", + "cifspassword": "str" + } + +} diff --git a/jellyfin/icon.png b/jellyfin/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fe71933dacc37daf0c76e815269963e66d5f56da GIT binary patch literal 26234 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 mcJax-_TTM /var/run/s6/container_environment/$k +done \ No newline at end of file diff --git a/jellyfin/root/etc/cont-init.d/20-folders b/jellyfin/root/etc/cont-init.d/20-folders new file mode 100644 index 000000000..9df7c6936 --- /dev/null +++ b/jellyfin/root/etc/cont-init.d/20-folders @@ -0,0 +1,70 @@ +#!/usr/bin/with-contenv bash + +if [ ! -d /jellyfin ]; then + echo "Creating /jellyfin" + mkdir -p /jellyfin + chown -R abc:abc /jellyfin +fi + +if [ ! -d /share/jellyfin ]; then + echo "Creating /share/jellyfin" + mkdir -p /share/jellyfin + chown -R abc:abc /share/jellyfin +fi + +if [ ! -d /config/jellyfin ]; then + echo "Creating /config/jellyfin" + mkdir -p /config/jellyfin + chown -R abc:abc /config/jellyfin +fi + +# links + +if [ ! -d /jellyfin/cache ]; then + echo "Creating link for /jellyfin/cache" + mkdir -p /share/jellyfin/cache + chown -R abc:abc /share/jellyfin/cache + ln -s /share/jellyfin/cache /jellyfin/cache +fi + +if [ ! -d /jellyfin/config ]; then + echo "Creating link for /jellyfin/config" + mkdir -p /config/jellyfin + chown -R abc:abc /config/jellyfin + ln -s /config/jellyfin /jellyfin/config +fi + +if [ ! -d /jellyfin/data ]; then + echo "Creating link for /jellyfin/data" + mkdir -p /share/jellyfin/data + chown -R abc:abc /share/jellyfin/data + ln -s /share/jellyfin/data /jellyfin/data +fi + +if [ ! -d /jellyfin/logs ]; then + echo "Creating link for /jellyfin/logs" + mkdir -p /share/jellyfin/logs + chown -R abc:abc /share/jellyfin/logs + ln -s /share/jellyfin/logs /jellyfin/logs +fi + +if [ ! -d /jellyfin/metadata ]; then + echo "Creating link for /jellyfin/metadata" + mkdir -p /share/jellyfin/metadata + chown -R abc:abc /share/jellyfin/metadata + ln -s /share/jellyfin/metadata /jellyfin/metadata +fi + +if [ ! -d /jellyfin/plugins ]; then + echo "Creating link for /jellyfin/plugins" + mkdir -p /share/jellyfin/plugins + chown -R abc:abc /share/jellyfin/plugins + ln -s /share/jellyfin/plugins /jellyfin/plugins +fi + +if [ ! -d /jellyfin/root ]; then + echo "Creating link for /jellyfin/root" + mkdir -p /share/jellyfin/root + chown -R abc:abc /share/jellyfin/root + ln -s /share/jellyfin/root /jellyfin/root +fi diff --git a/jellyfin/root/etc/cont-init.d/50-mounts b/jellyfin/root/etc/cont-init.d/50-mounts new file mode 100644 index 000000000..ab6c54ec2 --- /dev/null +++ b/jellyfin/root/etc/cont-init.d/50-mounts @@ -0,0 +1,46 @@ +#!/usr/bin/with-contenv bashio + +#!/usr/bin/with-contenv bashio +bashio::log.info 'Mounting external hdd...' + +# Mount local Share if configured and if Protection Mode is active +if bashio::config.has_value 'localdisks'; then + MOREDISKS=$(bashio::config 'localdisks') + bashio::log.info "Local Disks mounting.. ${MOREDISKS}" && \ + for disk in $MOREDISKS + do + bashio::log.info "Mount ${disk}" + mkdir -p /share/storage && \ + if [ ! -d /share/storage ]; then + echo "Creating /share/storage" + mkdir -p /share/storage + chown -R abc:abc /share/storage + fi + + mount $disk /share/storage && \ + bashio::log.info "Success!" + done || \ + bashio::log.warning "Protection mode is ON. Unable to mount local drives!" +fi + +# Mount CIFS Share if configured and if Protection Mode is active +if bashio::config.has_value 'networkdisks'; then + MOREDISKS=$(bashio::config 'networkdisks') + CIFS_USERNAME=$(bashio::config 'cifsusername') + CIFS_PASSWORD=$(bashio::config 'cifspassword') + bashio::log.info "Network Disks mounting.. ${MOREDISKS}" && \ + for disk in $MOREDISKS + do + bashio::log.info "Mount ${disk}" + mkdir -p /share/storagecifs && \ + if [ ! -d /share/storagecifs ]; then + echo "Creating /share/storagecifs" + mkdir -p /share/storagecifs + chown -R abc:abc /share/storagecifs + fi + + mount -t cifs -o username=$CIFS_USERNAME,password=$CIFS_PASSWORD $disk /share/storagecifs && \ + bashio::log.info "Success!" + done || \ + bashio::log.warning "Protection mode is ON. Unable to mount external drives!" +fi