mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 10:37:22 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| set -e
 | |
| 
 | |
| NAME=jellyfin
 | |
| DEFAULT_FILE=/etc/default/${NAME}
 | |
| 
 | |
| # Source Jellyfin default configuration
 | |
| if [[ -f $DEFAULT_FILE ]]; then
 | |
|   . $DEFAULT_FILE
 | |
| fi
 | |
| 
 | |
| JELLYFIN_USER=${JELLYFIN_USER:-jellyfin}
 | |
| RENDER_GROUP=${RENDER_GROUP:-render}
 | |
| VIDEO_GROUP=${VIDEO_GROUP:-video}
 | |
| 
 | |
| # 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_LOG_DIRECTORY-/var/log/$NAME}
 | |
| CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME}
 | |
| 
 | |
| case "$1" in
 | |
|   configure)
 | |
|     # create jellyfin group if it does not exist
 | |
|     if [[ -z "$(getent group ${JELLYFIN_USER})" ]]; then
 | |
|       addgroup --quiet --system ${JELLYFIN_USER} > /dev/null 2>&1
 | |
|     fi
 | |
|     # create jellyfin user if it does not exist
 | |
|     if [[ -z "$(getent passwd ${JELLYFIN_USER})"  ]]; then
 | |
|       adduser --system --ingroup ${JELLYFIN_USER} --shell /bin/false ${JELLYFIN_USER} --no-create-home --home ${PROGRAMDATA} \
 | |
|         --gecos "Jellyfin default user" > /dev/null 2>&1
 | |
|     fi
 | |
|     # add jellyfin to the render group for hwa
 | |
|     if [[ ! -z "$(getent group ${RENDER_GROUP})" ]]; then
 | |
|       usermod -aG ${RENDER_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1
 | |
|     fi
 | |
|     # add jellyfin to the video group for hwa
 | |
|     if [[ ! -z "$(getent group ${VIDEO_GROUP})" ]]; then
 | |
|       usermod -aG ${VIDEO_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1
 | |
|     fi
 | |
|     # ensure $PROGRAMDATA exists
 | |
|     if [[ ! -d $PROGRAMDATA ]]; then
 | |
|       mkdir $PROGRAMDATA
 | |
|     fi
 | |
|     # ensure $CONFIGDATA exists
 | |
|     if [[ ! -d $CONFIGDATA ]]; then
 | |
|       mkdir $CONFIGDATA
 | |
|     fi
 | |
|     # ensure $LOGDATA exists
 | |
|     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_USER} $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
 | |
|     chgrp adm $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
 | |
|     chmod 0750 $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA
 | |
| 
 | |
|     # Install jellyfin symlink into /usr/bin
 | |
|     ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin
 | |
| 
 | |
|     ;;
 | |
|     abort-upgrade|abort-remove|abort-deconfigure)
 | |
|     ;;
 | |
|     *)
 | |
|       echo "postinst called with unknown argument \`$1'" >&2
 | |
|       exit 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| #DEBHELPER
 | |
| 
 | |
| if [[ -x "/usr/bin/deb-systemd-helper" ]]; then
 | |
|   # Manual init script handling
 | |
|   deb-systemd-helper unmask jellyfin.service >/dev/null || true
 | |
|   # was-enabled defaults to true, so new installations run enable.
 | |
|   if deb-systemd-helper --quiet was-enabled jellyfin.service; then
 | |
|     # Enables the unit on first installation, creates new
 | |
|     # symlinks on upgrades if the unit file has changed.
 | |
|     deb-systemd-helper enable jellyfin.service >/dev/null || true
 | |
|   else
 | |
|     # Update the statefile to add new symlinks (if any), which need to be
 | |
|     # cleaned up on purge. Also remove old symlinks.
 | |
|     deb-systemd-helper update-state jellyfin.service >/dev/null || true
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # End automatically added section
 | |
| # Automatically added by dh_installinit
 | |
| if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then
 | |
|   if [[ -d "/run/systemd/system" ]]; then
 | |
|     systemctl --system daemon-reload >/dev/null || true
 | |
|     deb-systemd-invoke start jellyfin >/dev/null || true
 | |
|   elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then
 | |
|     update-rc.d jellyfin defaults >/dev/null
 | |
|     invoke-rc.d jellyfin start || exit $?
 | |
|   fi
 | |
| fi
 | |
| exit 0
 |