From 0317817891643351f051b968cc3ce33cdad7cacf Mon Sep 17 00:00:00 2001 From: Arne Petersen Date: Sat, 16 Nov 2019 23:18:56 +0100 Subject: [PATCH] Jellyfin (#19) jellyfin 10.4.1 (linuxserver/jellyfin:v10.4.1-ls24) --- azure-pipelines.yml | 13 +++++++ jellyfin/CHANGELOG.md | 3 ++ jellyfin/Dockerfile | 15 +++++++++ jellyfin/README.md | 27 +++++++++++++++ jellyfin/config.json | 41 +++++++++++++++++++++++ jellyfin/icon.png | Bin 0 -> 2649 bytes jellyfin/logo.png | Bin 0 -> 2649 bytes jellyfin/root/etc/cont-init.d/20-folders | 37 ++++++++++++++++++++ 8 files changed, 136 insertions(+) create mode 100644 jellyfin/CHANGELOG.md create mode 100644 jellyfin/Dockerfile create mode 100644 jellyfin/README.md 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/20-folders diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a598e5424..cdc4d7723 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -101,4 +101,17 @@ jobs: - template: .azure-pipelines/addon-template.yml parameters: addon: 'radarr' + arch: '--all' + +- job: 'jellyfin' + condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ')) + dependsOn: + - 'Hadolint' + - 'JQ' + pool: + vmImage: 'ubuntu-16.04' + steps: + - template: .azure-pipelines/addon-template.yml + parameters: + addon: 'jellyfin' arch: '--all' \ No newline at end of file diff --git a/jellyfin/CHANGELOG.md b/jellyfin/CHANGELOG.md new file mode 100644 index 000000000..158960c73 --- /dev/null +++ b/jellyfin/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.1.0 + + - jellyfin 10.4.1 (linuxserver/jellyfin:v10.4.1-ls24) \ No newline at end of file diff --git a/jellyfin/Dockerfile b/jellyfin/Dockerfile new file mode 100644 index 000000000..ad703368c --- /dev/null +++ b/jellyfin/Dockerfile @@ -0,0 +1,15 @@ +FROM linuxserver/jellyfin:v10.4.1-ls24 + +RUN sed -i "s|/config/data|/share/jellyfin/data|g" /etc/services.d/jellyfin/run \ + && sed -i "s|/config/log|/share/jellyfin/log|g" /etc/services.d/jellyfin/run \ + && sed -i "s|/config/cache|/share/jellyfin/cache|g" /etc/services.d/jellyfin/run \ + && sed -i "s|/config|/config/jellyfin|g" /etc/services.d/jellyfin/run \ + && sed -i "s|/config/{log,data,cache}|/xxx/jellyfin|g" /etc/cont-init.d/30-config \ + && sed -i "s|/config|/config/jellyfin|g" /etc/cont-init.d/30-config \ + && sed -i "s|/xxx|/config|g" /etc/cont-init.d/30-config \ + && sed -i "s|/data|/share/jellyfin/data|g" /etc/cont-init.d/30-config + +RUN cat /etc/services.d/jellyfin/run && cat /etc/cont-init.d/30-config + +# copy local files +COPY root/ / diff --git a/jellyfin/README.md b/jellyfin/README.md new file mode 100644 index 000000000..d6367bf1d --- /dev/null +++ b/jellyfin/README.md @@ -0,0 +1,27 @@ +# Hassio Add-ons by petersendev: Jellyfin + +## About + +[Jellyfin](https://jellyfin.github.io/) 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. + +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 `:8989`. + + +[repository]: https://github.com/petersendev/hassio-addons \ No newline at end of file diff --git a/jellyfin/config.json b/jellyfin/config.json new file mode 100644 index 000000000..022459c5a --- /dev/null +++ b/jellyfin/config.json @@ -0,0 +1,41 @@ +{ + "name": "jellyfin", + "version": "0.1.0", + "slug": "jellyfin", + "legacy": true, + "maintenance": { + "github_release": "https://github.com/linuxserver/docker-jellyfin", + "version_regex": "v(\\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/jellyfin", + "startup": "services", + "arch": [ + "aarch64", + "amd64", + "armhf" + ], + "ports": { + "8096/tcp": 8096 + }, + "ports_description": { + "8096/tcp": "web interface" + }, + "map": [ + "config:rw", + "share:rw", + "ssl" + ], + "webui": "http://[HOST]:[PORT:8096]", + "boot": "auto", + "options": { + "PUID": 1001, + "PGID": 1001 + }, + "schema": { + "PUID": "int", + "PGID": "int", + "TZ": "str?" + }, + "image": "petersendev/hassio-jellyfin-{arch}" +} diff --git a/jellyfin/icon.png b/jellyfin/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2d57e82b768d5baaa0fbcf1260253e71a15fef56 GIT binary patch literal 2649 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 Hu0mjfjBibQ literal 0 HcmV?d00001 diff --git a/jellyfin/logo.png b/jellyfin/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d57e82b768d5baaa0fbcf1260253e71a15fef56 GIT binary patch literal 2649 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 Hu0mjfjBibQ literal 0 HcmV?d00001 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..40dfa87f8 --- /dev/null +++ b/jellyfin/root/etc/cont-init.d/20-folders @@ -0,0 +1,37 @@ +#!/usr/bin/with-contenv bash + +if [ ! -d /share/storage/tv ]; then + echo "Creating /share/storage/tv" + mkdir -p /share/storage/tv + chown -R abc:abc /share/storage/tv +fi + +if [ ! -d /share/storage/movies ]; then + echo "Creating /share/storage/movies" + mkdir -p /share/storage/movies + chown -R abc:abc /share/storage/movies +fi + +if [ ! -d /share/jellyfin/data ]; then + echo "Creating /share/jellyfin/data" + mkdir -p /share/jellyfin/data + chown -R abc:abc /share/jellyfin/data +fi + +if [ ! -d /share/jellyfin/cache ]; then + echo "Creating /share/jellyfin/cache" + mkdir -p /share/jellyfin/cache + chown -R abc:abc /share/jellyfin/cache +fi + +if [ ! -d /share/jellyfin/log ]; then + echo "Creating /share/jellyfin/log" + mkdir -p /share/jellyfin/log + chown -R abc:abc /share/jellyfin/log +fi + +if [ ! -d /config/jellyfin ]; then + echo "Creating /config/jellyfin" + mkdir -p /config/jellyfin + chown -R abc:abc /config/jellyfin +fi