From b982d7c239bc88f32dc2545e4f2b843e9124a3e6 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 31 Jan 2019 21:50:50 -0500 Subject: Update to long opts and add cache dirs --- deployment/debian-package-x64/pkg-src/conf/jellyfin | 3 ++- deployment/debian-package-x64/pkg-src/jellyfin.service | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin b/deployment/debian-package-x64/pkg-src/conf/jellyfin index 861865aae..92bc0bab2 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin @@ -19,6 +19,7 @@ JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin" JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin" JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin" +JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin" # Restart script for in-app server control JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh" # Additional options for the binary @@ -31,4 +32,4 @@ JELLYFIN_ADD_OPTS="" # Application username JELLYFIN_USER="jellyfin" # Full application command -JELLYFIN_ARGS="-programdata $JELLYFIN_DATA_DIRECTORY -configdir $JELLYFIN_CONFIG_DIRECTORY -logdir $JELLYFIN_LOG_DIRECTORY -restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" +JELLYFIN_ARGS="--programdata $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY --restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" diff --git a/deployment/debian-package-x64/pkg-src/jellyfin.service b/deployment/debian-package-x64/pkg-src/jellyfin.service index c17422029..bb77571f7 100644 --- a/deployment/debian-package-x64/pkg-src/jellyfin.service +++ b/deployment/debian-package-x64/pkg-src/jellyfin.service @@ -6,7 +6,7 @@ After = network.target Type = simple EnvironmentFile = /etc/default/jellyfin User = jellyfin -ExecStart = /usr/bin/jellyfin -programdata ${JELLYFIN_DATA_DIRECTORY} -configdir ${JELLYFIN_CONFIG_DIRECTORY} -logdir ${JELLYFIN_LOG_DIRECTORY} -restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} +ExecStart = /usr/bin/jellyfin --programdata ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} --restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} Restart = on-failure TimeoutSec = 15 -- cgit v1.2.3 From f6227e99ccde84914cf596fb6cf08023c7e8b862 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 31 Jan 2019 21:57:25 -0500 Subject: Add cachedir to deployment scripts; fix bad logdir --- deployment/debian-package-x64/pkg-src/postinst | 6 ++++++ deployment/debian-package-x64/pkg-src/postrm | 8 +++++++- deployment/debian-package-x64/pkg-src/preinst | 8 ++++++-- deployment/debian-package-x64/pkg-src/prerm | 3 ++- 4 files changed, 21 insertions(+), 4 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/postinst b/deployment/debian-package-x64/pkg-src/postinst index 3690d20ba..44d944ccb 100644 --- a/deployment/debian-package-x64/pkg-src/postinst +++ b/deployment/debian-package-x64/pkg-src/postinst @@ -13,6 +13,7 @@ fi PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} +CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} case "$1" in configure) @@ -37,10 +38,15 @@ case "$1" in if [[ ! -d $LOGDATA ]]; then mkdir $LOGDATA fi + # ensure $CACHEDATA exists + if [[ ! -d $CACHEDATA ]]; then + mkdir $CACHEDATA + fi # Ensure permissions are correct on all config directories chown -R jellyfin:jellyfin $PROGRAMDATA chown -R jellyfin:jellyfin $CONFIGDATA chown -R jellyfin:jellyfin $LOGDATA + chown -R jellyfin:jellyfin $CACHEDATA chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true diff --git a/deployment/debian-package-x64/pkg-src/postrm b/deployment/debian-package-x64/pkg-src/postrm index 690f5d587..1d00a984e 100644 --- a/deployment/debian-package-x64/pkg-src/postrm +++ b/deployment/debian-package-x64/pkg-src/postrm @@ -12,7 +12,8 @@ fi # Data directories for program data (cache, db), configs, and logs PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} +LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} +CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -44,6 +45,10 @@ case "$1" in if [[ -d $LOGDATA ]]; then rm -rf $LOGDATA fi + # Remove cache dir + if [[ -d $CACHEDATA ]]; then + rm -rf $CACHEDATA + fi # Remove program data dir if [[ -d $PROGRAMDATA ]]; then rm -rf $PROGRAMDATA @@ -55,6 +60,7 @@ case "$1" in # Remove anything at the default locations; catches situations where the user moved the defaults [[ -e /etc/jellyfin ]] && rm -rf /etc/jellyfin [[ -e /var/log/jellyfin ]] && rm -rf /var/log/jellyfin + [[ -e /var/cache/jellyfin ]] && rm -rf /var/cache/jellyfin [[ -e /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin ;; remove) diff --git a/deployment/debian-package-x64/pkg-src/preinst b/deployment/debian-package-x64/pkg-src/preinst index 0063e0e63..2713fb9b8 100644 --- a/deployment/debian-package-x64/pkg-src/preinst +++ b/deployment/debian-package-x64/pkg-src/preinst @@ -12,7 +12,8 @@ fi # Data directories for program data (cache, db), configs, and logs PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} +LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} +CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -53,13 +54,16 @@ case "$1" in # Clean up old Emby cruft that can break the user's system [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby - # If we have existing config or log dirs in /var/lib/jellyfin, move them into the right place + # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place if [[ -d $PROGRAMDATA/config ]]; then mv $PROGRAMDATA/config $CONFIGDATA fi if [[ -d $PROGRAMDATA/logs ]]; then mv $PROGRAMDATA/logs $LOGDATA fi + if [[ -d $PROGRAMDATA/logs ]]; then + mv $PROGRAMDATA/cache $CACHEDATA + fi ;; abort-upgrade) diff --git a/deployment/debian-package-x64/pkg-src/prerm b/deployment/debian-package-x64/pkg-src/prerm index 4770c03c4..e965cb7d7 100644 --- a/deployment/debian-package-x64/pkg-src/prerm +++ b/deployment/debian-package-x64/pkg-src/prerm @@ -12,7 +12,8 @@ fi # Data directories for program data (cache, db), configs, and logs PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} -LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} +LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} +CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} case "$1" in remove|upgrade|deconfigure) -- cgit v1.2.3 From 5e4697802f813d1c2c35c8cc4d57fcd89d39b745 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 31 Jan 2019 22:03:55 -0500 Subject: Replace programdata with datadir everywhere --- deployment/debian-package-x64/pkg-src/conf/jellyfin | 2 +- deployment/debian-package-x64/pkg-src/jellyfin.service | 2 +- deployment/fedora-package-x64/pkg-src/jellyfin.service | 2 +- deployment/win-generic/install-jellyfin.ps1 | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin b/deployment/debian-package-x64/pkg-src/conf/jellyfin index 92bc0bab2..7626328c2 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin @@ -32,4 +32,4 @@ JELLYFIN_ADD_OPTS="" # Application username JELLYFIN_USER="jellyfin" # Full application command -JELLYFIN_ARGS="--programdata $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY --restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" +JELLYFIN_ARGS="--datadir $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY --restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" diff --git a/deployment/debian-package-x64/pkg-src/jellyfin.service b/deployment/debian-package-x64/pkg-src/jellyfin.service index bb77571f7..b7ee4e193 100644 --- a/deployment/debian-package-x64/pkg-src/jellyfin.service +++ b/deployment/debian-package-x64/pkg-src/jellyfin.service @@ -6,7 +6,7 @@ After = network.target Type = simple EnvironmentFile = /etc/default/jellyfin User = jellyfin -ExecStart = /usr/bin/jellyfin --programdata ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} --restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} +ExecStart = /usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} --restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} Restart = on-failure TimeoutSec = 15 diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.service b/deployment/fedora-package-x64/pkg-src/jellyfin.service index 0c0867967..56703a98a 100644 --- a/deployment/fedora-package-x64/pkg-src/jellyfin.service +++ b/deployment/fedora-package-x64/pkg-src/jellyfin.service @@ -5,7 +5,7 @@ Description=Jellyfin is a free software media system that puts you in control of [Service] EnvironmentFile=/etc/sysconfig/jellyfin WorkingDirectory=/var/lib/jellyfin -ExecStart=/usr/bin/jellyfin --programdata ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_ADD_OPTS} ${JELLYFIN_FFMPEG} +ExecStart=/usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_ADD_OPTS} ${JELLYFIN_FFMPEG} TimeoutSec=15 Restart=on-failure User=jellyfin diff --git a/deployment/win-generic/install-jellyfin.ps1 b/deployment/win-generic/install-jellyfin.ps1 index 3888f5255..b6e00e056 100644 --- a/deployment/win-generic/install-jellyfin.ps1 +++ b/deployment/win-generic/install-jellyfin.ps1 @@ -93,12 +93,12 @@ if($Quiet.IsPresent -or $Quiet -eq $true){ Copy-Item -Path $PSScriptRoot/* -DestinationPath "$Script:DefaultJellyfinInstallDirectory/" -Force -Recurse if($Script:InstallAsService){ if($Script:InstallServiceAsUser){ - &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --programdata `"$Script:JellyfinDataDir`" + &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`" Start-Sleep -Milliseconds 500 &sc.exe config Jellyfin obj=".\$($Script:UserCredentials.UserName)" password="$($Script:UserCredentials.GetNetworkCredential().Password)" &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START }else{ - &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --programdata `"$Script:JellyfinDataDir`" + &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`" Start-Sleep -Milliseconds 500 #&"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin ObjectName $Script:UserCredentials.UserName $Script:UserCredentials.GetNetworkCredential().Password #Set-Service -Name Jellyfin -Credential $Script:UserCredentials @@ -171,13 +171,13 @@ function InstallJellyfin { if($Script:InstallAsService){ if($Script:InstallServiceAsUser){ Write-Host "Installing Service as user $($Script:UserCredentials.UserName)" - &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --programdata `"$Script:JellyfinDataDir`" + &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`" Start-Sleep -Milliseconds 2000 &sc.exe config Jellyfin obj=".\$($Script:UserCredentials.UserName)" password="$($Script:UserCredentials.GetNetworkCredential().Password)" &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START }else{ Write-Host "Installing Service as LocalSystem" - &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --programdata `"$Script:JellyfinDataDir`" + &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" install Jellyfin `"$Script:DefaultJellyfinInstallDirectory\jellyfin.exe`" --datadir `"$Script:JellyfinDataDir`" Start-Sleep -Milliseconds 2000 &"$Script:DefaultJellyfinInstallDirectory\nssm.exe" set Jellyfin Start SERVICE_DELAYED_AUTO_START } -- cgit v1.2.3 From 45d8ace9bb05ec290bb2642d4e5b279f2eb3f65a Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 31 Jan 2019 22:06:03 -0500 Subject: Use good ideas from Fedora systemd in Debian --- deployment/debian-package-x64/pkg-src/conf/jellyfin | 18 ++++++++++-------- deployment/debian-package-x64/pkg-src/jellyfin.service | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin b/deployment/debian-package-x64/pkg-src/conf/jellyfin index 7626328c2..ebc11ca5c 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin @@ -1,4 +1,5 @@ # Jellyfin default configuration options +# This is a POSIX shell fragment # Use this file to override the default configurations; add additional # options with JELLYFIN_ADD_OPTS. @@ -7,10 +8,6 @@ # /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf # to override the user or this config file's location. -# -# This is a POSIX shell fragment -# - # # General options # @@ -20,10 +17,15 @@ JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin" JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin" JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin" JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin" + # Restart script for in-app server control -JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh" -# Additional options for the binary -JELLYFIN_ADD_OPTS="" +JELLYFIN_RESTART_OPT="--restartpath /usr/lib/jellyfin/restart.sh" + +# [OPTIONAL] ffmpeg binary paths +#JELLYFIN_FFMPEG_OPTS="-ffmpeg /usr/bin/ffmpeg -ffprobe /usr/bin/ffprobe" + +# [OPTIONAL] Additional user-defined options for the binary +#JELLYFIN_ADD_OPTS="" # # SysV init/Upstart options @@ -32,4 +34,4 @@ JELLYFIN_ADD_OPTS="" # Application username JELLYFIN_USER="jellyfin" # Full application command -JELLYFIN_ARGS="--datadir $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY --restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" +JELLYFIN_ARGS="--datadir $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY $JELLYFIN_RESTART_OPT $JELLYFIN_FFMPEG_OPTS $JELLYFIN_ADD_OPTS" diff --git a/deployment/debian-package-x64/pkg-src/jellyfin.service b/deployment/debian-package-x64/pkg-src/jellyfin.service index b7ee4e193..ee89d7d4b 100644 --- a/deployment/debian-package-x64/pkg-src/jellyfin.service +++ b/deployment/debian-package-x64/pkg-src/jellyfin.service @@ -6,7 +6,7 @@ After = network.target Type = simple EnvironmentFile = /etc/default/jellyfin User = jellyfin -ExecStart = /usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} --restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} +ExecStart = /usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_FFMPEG_OPTS} ${JELLYFIN_ADD_OPTS} Restart = on-failure TimeoutSec = 15 -- cgit v1.2.3 From aad34e62ca32c822b69e81488729b8a1d3794fda Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 31 Jan 2019 22:28:12 -0500 Subject: Move jellyfin-sudoers to conf dir --- .../pkg-src/bin/jellyfin-sudoers | 37 ---------------------- .../pkg-src/conf/jellyfin-sudoers | 37 ++++++++++++++++++++++ deployment/debian-package-x64/pkg-src/install | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) delete mode 100644 deployment/debian-package-x64/pkg-src/bin/jellyfin-sudoers create mode 100644 deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/bin/jellyfin-sudoers b/deployment/debian-package-x64/pkg-src/bin/jellyfin-sudoers deleted file mode 100644 index 4eb91366b..000000000 --- a/deployment/debian-package-x64/pkg-src/bin/jellyfin-sudoers +++ /dev/null @@ -1,37 +0,0 @@ -#Allow jellyfin group to start, stop and restart itself -Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart -Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start -Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop -Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart jellyfin, /bin/systemctl restart jellyfin -Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start jellyfin, /bin/systemctl start jellyfin -Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop jellyfin, /bin/systemctl stop jellyfin -Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart -Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start -Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop - - -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD - -Defaults!RESTARTSERVER_SYSV !requiretty -Defaults!STARTSERVER_SYSV !requiretty -Defaults!STOPSERVER_SYSV !requiretty -Defaults!RESTARTSERVER_SYSTEMD !requiretty -Defaults!STARTSERVER_SYSTEMD !requiretty -Defaults!STOPSERVER_SYSTEMD !requiretty -Defaults!RESTARTSERVER_INITD !requiretty -Defaults!STARTSERVER_INITD !requiretty -Defaults!STOPSERVER_INITD !requiretty - -#Allow the server to mount iso images -%jellyfin ALL=(ALL) NOPASSWD: /bin/mount -%jellyfin ALL=(ALL) NOPASSWD: /bin/umount - -Defaults:%jellyfin !requiretty diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers b/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers new file mode 100644 index 000000000..4eb91366b --- /dev/null +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers @@ -0,0 +1,37 @@ +#Allow jellyfin group to start, stop and restart itself +Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart +Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start +Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop +Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart jellyfin, /bin/systemctl restart jellyfin +Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start jellyfin, /bin/systemctl start jellyfin +Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop jellyfin, /bin/systemctl stop jellyfin +Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart +Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start +Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop + + +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD + +Defaults!RESTARTSERVER_SYSV !requiretty +Defaults!STARTSERVER_SYSV !requiretty +Defaults!STOPSERVER_SYSV !requiretty +Defaults!RESTARTSERVER_SYSTEMD !requiretty +Defaults!STARTSERVER_SYSTEMD !requiretty +Defaults!STOPSERVER_SYSTEMD !requiretty +Defaults!RESTARTSERVER_INITD !requiretty +Defaults!STARTSERVER_INITD !requiretty +Defaults!STOPSERVER_INITD !requiretty + +#Allow the server to mount iso images +%jellyfin ALL=(ALL) NOPASSWD: /bin/mount +%jellyfin ALL=(ALL) NOPASSWD: /bin/umount + +Defaults:%jellyfin !requiretty diff --git a/deployment/debian-package-x64/pkg-src/install b/deployment/debian-package-x64/pkg-src/install index adaff7b26..994322d14 100644 --- a/deployment/debian-package-x64/pkg-src/install +++ b/deployment/debian-package-x64/pkg-src/install @@ -2,5 +2,5 @@ usr/lib/jellyfin usr/lib/ debian/conf/jellyfin etc/default/ debian/conf/logging.json etc/jellyfin/ debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/ -debian/bin/jellyfin-sudoers etc/sudoers.d/ +debian/conf/jellyfin-sudoers etc/sudoers.d/ debian/bin/restart.sh usr/lib/jellyfin/ -- cgit v1.2.3 From 7774977cdd3a8032e699be94badd1ed07265ba75 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Fri, 1 Feb 2019 19:12:12 -0500 Subject: Implement review feedback --- deployment/debian-package-x64/pkg-src/conf/jellyfin | 2 +- deployment/debian-package-x64/pkg-src/postinst | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin b/deployment/debian-package-x64/pkg-src/conf/jellyfin index ebc11ca5c..c237e2d69 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin @@ -22,7 +22,7 @@ JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin" JELLYFIN_RESTART_OPT="--restartpath /usr/lib/jellyfin/restart.sh" # [OPTIONAL] ffmpeg binary paths -#JELLYFIN_FFMPEG_OPTS="-ffmpeg /usr/bin/ffmpeg -ffprobe /usr/bin/ffprobe" +#JELLYFIN_FFMPEG_OPTS="--ffmpeg /usr/bin/ffmpeg --ffprobe /usr/bin/ffprobe" # [OPTIONAL] Additional user-defined options for the binary #JELLYFIN_ADD_OPTS="" diff --git a/deployment/debian-package-x64/pkg-src/postinst b/deployment/debian-package-x64/pkg-src/postinst index 44d944ccb..a784028eb 100644 --- a/deployment/debian-package-x64/pkg-src/postinst +++ b/deployment/debian-package-x64/pkg-src/postinst @@ -43,10 +43,8 @@ case "$1" in mkdir $CACHEDATA fi # Ensure permissions are correct on all config directories - chown -R jellyfin:jellyfin $PROGRAMDATA - chown -R jellyfin:jellyfin $CONFIGDATA - chown -R jellyfin:jellyfin $LOGDATA - chown -R jellyfin:jellyfin $CACHEDATA + chown -R jellyfin:jellyfin $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA + chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true -- cgit v1.2.3 From b630e9de82587d3e336813cdc8a82ef316813f3e Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Fri, 1 Feb 2019 19:13:50 -0500 Subject: Allow adm group to view Jellyfin resources This is pretty arbitrary and personal, but I detest services that lock out global access (which is good), but don't simultaneously make it easy for administrators to enter the directories. The adm group should only have actual system administrators as members, so this lets them view the secure directories. --- deployment/debian-package-x64/pkg-src/postinst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/postinst b/deployment/debian-package-x64/pkg-src/postinst index a784028eb..860222e05 100644 --- a/deployment/debian-package-x64/pkg-src/postinst +++ b/deployment/debian-package-x64/pkg-src/postinst @@ -43,7 +43,8 @@ case "$1" in mkdir $CACHEDATA fi # Ensure permissions are correct on all config directories - chown -R jellyfin:jellyfin $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA + chown -R jellyfin $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA + chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true -- cgit v1.2.3 From be89d53a9e16e16f434c35e22814f1d9fe3fc16d Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 3 Feb 2019 20:15:23 -0500 Subject: Handle new option parser properly --- deployment/debian-package-x64/pkg-src/conf/jellyfin | 16 ++++++++++------ .../debian-package-x64/pkg-src/jellyfin.service | 2 +- deployment/fedora-package-x64/pkg-src/jellyfin.env | 19 +++++++++++++------ .../fedora-package-x64/pkg-src/jellyfin.service | 2 +- 4 files changed, 25 insertions(+), 14 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin b/deployment/debian-package-x64/pkg-src/conf/jellyfin index c237e2d69..b052b2ec6 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin @@ -19,13 +19,17 @@ JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin" JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin" # Restart script for in-app server control -JELLYFIN_RESTART_OPT="--restartpath /usr/lib/jellyfin/restart.sh" +JELLYFIN_RESTART_OPT="--restartpath=/usr/lib/jellyfin/restart.sh" -# [OPTIONAL] ffmpeg binary paths -#JELLYFIN_FFMPEG_OPTS="--ffmpeg /usr/bin/ffmpeg --ffprobe /usr/bin/ffprobe" +# [OPTIONAL] ffmpeg binary paths, overriding the UI-configured values +#JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/bin/ffmpeg" +#JELLYFIN_FFPROBE_OPT="--ffprobe=/usr/bin/ffprobe" -# [OPTIONAL] Additional user-defined options for the binary -#JELLYFIN_ADD_OPTS="" +# [OPTIONAL] run Jellyfin as a headless service +#JELLYFIN_SERVICE_OPT="--service" + +# [OPTIONAL] run Jellyfin without the web app +#JELLYFIN_NOWEBAPP_OPT="--noautorunwebapp" # # SysV init/Upstart options @@ -34,4 +38,4 @@ JELLYFIN_RESTART_OPT="--restartpath /usr/lib/jellyfin/restart.sh" # Application username JELLYFIN_USER="jellyfin" # Full application command -JELLYFIN_ARGS="--datadir $JELLYFIN_DATA_DIRECTORY --configdir $JELLYFIN_CONFIG_DIRECTORY --logdir $JELLYFIN_LOG_DIRECTORY --cachedir $JELLYFIN_CACHE_DIRECTORY $JELLYFIN_RESTART_OPT $JELLYFIN_FFMPEG_OPTS $JELLYFIN_ADD_OPTS" +JELLYFIN_ARGS="--datadir=$JELLYFIN_DATA_DIRECTORY --configdir=$JELLYFIN_CONFIG_DIRECTORY --logdir=$JELLYFIN_LOG_DIRECTORY --cachedir=$JELLYFIN_CACHE_DIRECTORY $JELLYFIN_RESTART_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_FFPROBE_OPT $JELLYFIN_SERVICE_OPT $JELLFIN_NOWEBAPP_OPT" diff --git a/deployment/debian-package-x64/pkg-src/jellyfin.service b/deployment/debian-package-x64/pkg-src/jellyfin.service index ee89d7d4b..9c6c6667f 100644 --- a/deployment/debian-package-x64/pkg-src/jellyfin.service +++ b/deployment/debian-package-x64/pkg-src/jellyfin.service @@ -6,7 +6,7 @@ After = network.target Type = simple EnvironmentFile = /etc/default/jellyfin User = jellyfin -ExecStart = /usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_FFMPEG_OPTS} ${JELLYFIN_ADD_OPTS} +ExecStart = /usr/bin/jellyfin --datadir=${JELLYFIN_DATA_DIRECTORY} --configdir=${JELLYFIN_CONFIG_DIRECTORY} --logdir=${JELLYFIN_LOG_DIRECTORY} --cachedir=${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_FFMPEG_OPT} ${JELLYFIN_FFPROBE_OPT} ${JELLYFIN_SERVICE_OPT} ${JELLYFIN_NOWEBAPP_OPT} Restart = on-failure TimeoutSec = 15 diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.env b/deployment/fedora-package-x64/pkg-src/jellyfin.env index f7f041f75..11d5b0ab0 100644 --- a/deployment/fedora-package-x64/pkg-src/jellyfin.env +++ b/deployment/fedora-package-x64/pkg-src/jellyfin.env @@ -14,15 +14,22 @@ # General options # -# Tell jellyfin wich ffmpeg/ffprobe to use -# JELLYFIN_FFMPEG="--ffmpeg /usr/bin/ffmpeg --ffprobe /usr/bin/ffprobe" - # Program directories JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin" JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin" JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin" JELLYFIN_CACHE_DIRECTORY="/var/log/jellyfin" + # In-App service control -JELLYFIN_RESTART_OPT="--restartpath /usr/libexec/jellyfin/restart.sh" -# Additional options for the binary -JELLYFIN_ADD_OPTS="" +JELLYFIN_RESTART_OPT="--restartpath=/usr/libexec/jellyfin/restart.sh" + +# [OPTIONAL] ffmpeg binary paths, overriding the UI-configured values +#JELLYFIN_FFMPEG_OPT="--ffmpeg=/usr/bin/ffmpeg" +#JELLYFIN_FFPROBE_OPT="--ffprobe=/usr/bin/ffprobe" + +# [OPTIONAL] run Jellyfin as a headless service +#JELLYFIN_SERVICE_OPT="--service" + +# [OPTIONAL] run Jellyfin without the web app +#JELLYFIN_NOWEBAPP_OPT="--noautorunwebapp" + diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.service b/deployment/fedora-package-x64/pkg-src/jellyfin.service index 56703a98a..d58df9d94 100644 --- a/deployment/fedora-package-x64/pkg-src/jellyfin.service +++ b/deployment/fedora-package-x64/pkg-src/jellyfin.service @@ -5,7 +5,7 @@ Description=Jellyfin is a free software media system that puts you in control of [Service] EnvironmentFile=/etc/sysconfig/jellyfin WorkingDirectory=/var/lib/jellyfin -ExecStart=/usr/bin/jellyfin --datadir ${JELLYFIN_DATA_DIRECTORY} --configdir ${JELLYFIN_CONFIG_DIRECTORY} --logdir ${JELLYFIN_LOG_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_ADD_OPTS} ${JELLYFIN_FFMPEG} +ExecStart=/usr/bin/jellyfin --datadir=${JELLYFIN_DATA_DIRECTORY} --configdir=${JELLYFIN_CONFIG_DIRECTORY} --logdir=${JELLYFIN_LOG_DIRECTORY} --cachedir=${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_RESTART_OPT} ${JELLYFIN_FFMPEG_OPT} ${JELLYFIN_FFPROBE_OPT} ${JELLYFIN_SERVICE_OPT} ${JELLYFIN_NOWEBAPP_OPT} TimeoutSec=15 Restart=on-failure User=jellyfin -- cgit v1.2.3 From f0e74c2c6b3fa8c94f0da222cde20a6b173db0b0 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Mon, 4 Feb 2019 00:26:23 -0500 Subject: Fix restart script for Debian --- .../debian-package-x64/pkg-src/bin/restart.sh | 10 +++++---- .../pkg-src/conf/jellyfin-sudoers | 24 +++++++++++----------- 2 files changed, 18 insertions(+), 16 deletions(-) (limited to 'deployment/debian-package-x64/pkg-src') diff --git a/deployment/debian-package-x64/pkg-src/bin/restart.sh b/deployment/debian-package-x64/pkg-src/bin/restart.sh index a6f4632ba..738f86727 100644 --- a/deployment/debian-package-x64/pkg-src/bin/restart.sh +++ b/deployment/debian-package-x64/pkg-src/bin/restart.sh @@ -2,10 +2,12 @@ NAME=jellyfin -restart_cmds=("s6-svc -t /var/run/s6/services/${NAME}" \ - "systemctl restart ${NAME}" \ - "service ${NAME} restart" \ - "/etc/init.d/${NAME} restart") +restart_cmds=( + "systemctl restart ${NAME}" + "service ${NAME} restart" + "/etc/init.d/${NAME} restart" + "s6-svc -t /var/run/s6/services/${NAME}" +) for restart_cmd in "${restart_cmds[@]}"; do cmd=$(echo "$restart_cmd" | awk '{print $1}') diff --git a/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers b/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers index 4eb91366b..b481ba4ad 100644 --- a/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers +++ b/deployment/debian-package-x64/pkg-src/conf/jellyfin-sudoers @@ -10,15 +10,15 @@ Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD -%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD -%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD +jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV +jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV +jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV +jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD +jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD +jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD +jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD +jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD +jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD Defaults!RESTARTSERVER_SYSV !requiretty Defaults!STARTSERVER_SYSV !requiretty @@ -31,7 +31,7 @@ Defaults!STARTSERVER_INITD !requiretty Defaults!STOPSERVER_INITD !requiretty #Allow the server to mount iso images -%jellyfin ALL=(ALL) NOPASSWD: /bin/mount -%jellyfin ALL=(ALL) NOPASSWD: /bin/umount +jellyfin ALL=(ALL) NOPASSWD: /bin/mount +jellyfin ALL=(ALL) NOPASSWD: /bin/umount -Defaults:%jellyfin !requiretty +Defaults:jellyfin !requiretty -- cgit v1.2.3