mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-31 10:27:01 -04:00 
			
		
		
		
	Debian package builder
This commit is contained in:
		
							parent
							
								
									4de3ffac63
								
							
						
					
					
						commit
						0d33ed98d9
					
				
							
								
								
									
										1
									
								
								build/debian/DEBIAN/conffiles
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								build/debian/DEBIAN/conffiles
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | /etc/default/audiobookshelf | ||||||
							
								
								
									
										8
									
								
								build/debian/DEBIAN/control
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								build/debian/DEBIAN/control
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | Package: audiobookshelf | ||||||
|  | Version: 1.2.1 | ||||||
|  | Section: base | ||||||
|  | Priority: optional | ||||||
|  | Architecture: amd64 | ||||||
|  | Depends: | ||||||
|  | Maintainer: advplyr | ||||||
|  | Description: Self-hosted audiobook server for managing and playing audiobooks | ||||||
							
								
								
									
										84
									
								
								build/debian/DEBIAN/postinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								build/debian/DEBIAN/postinst
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | set -o pipefail | ||||||
|  | 
 | ||||||
|  | declare -r init_type='auto' | ||||||
|  | declare -ri no_rebuild='0' | ||||||
|  | 
 | ||||||
|  | add_user() { | ||||||
|  |   : "${1:?'User was not defined'}" | ||||||
|  |   declare -r user="$1" | ||||||
|  |   declare -r uid="$2" | ||||||
|  | 
 | ||||||
|  |   if [ -z "$uid" ]; then | ||||||
|  |     declare -r uid_flags="" | ||||||
|  |   else | ||||||
|  |     declare -r uid_flags="--uid $uid" | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   declare -r group="${3:-$user}" | ||||||
|  |   declare -r descr="${4:-No description}" | ||||||
|  |   declare -r shell="${5:-/bin/false}" | ||||||
|  | 
 | ||||||
|  |   if ! getent passwd | grep -q "^$user:"; then | ||||||
|  |     echo "Creating system user: $user in $group with $descr and shell $shell" | ||||||
|  |     useradd $uid_flags --gid $group --no-create-home --system --shell $shell -c "$descr" $user | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | add_group() { | ||||||
|  |   : "${1:?'Group was not defined'}" | ||||||
|  |   declare -r group="$1" | ||||||
|  |   declare -r gid="$2" | ||||||
|  | 
 | ||||||
|  |   if [ -z "$gid" ]; then | ||||||
|  |     declare -r gid_flags="" | ||||||
|  |   else | ||||||
|  |     declare -r gid_flags="--gid $gid" | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   if ! getent group | grep -q "^$group:" ; then | ||||||
|  |     echo "Creating system group: $group" | ||||||
|  |     groupadd $gid_flags --system $group | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | start_service () { | ||||||
|  |   : "${1:?'Service name was not defined'}" | ||||||
|  |   declare -r service_name="$1" | ||||||
|  | 
 | ||||||
|  |   if hash systemctl 2> /dev/null; then | ||||||
|  |     if [[ "$init_type" == 'auto' || "$init_type" == 'systemd' ]]; then | ||||||
|  |       { | ||||||
|  |         systemctl enable "$service_name.service" && \ | ||||||
|  |         systemctl start "$service_name.service" | ||||||
|  |       } || echo "$service_name could not be registered or started" | ||||||
|  |     fi | ||||||
|  |   elif hash service 2> /dev/null; then | ||||||
|  |     if [[ "$init_type" == 'auto' || "$init_type" == 'upstart' || "$init_type" == 'sysv' ]]; then | ||||||
|  |       service "$service_name" start || echo "$service_name could not be registered or started" | ||||||
|  |     fi | ||||||
|  |   elif hash start 2> /dev/null; then | ||||||
|  |     if [[ "$init_type" == 'auto' || "$init_type" == 'upstart' ]]; then | ||||||
|  |       start "$service_name" || echo "$service_name could not be registered or started" | ||||||
|  |     fi | ||||||
|  |   elif hash update-rc.d 2> /dev/null; then | ||||||
|  |       if [[ "$init_type" == 'auto' || "$init_type" == 'sysv' ]]; then | ||||||
|  |       { | ||||||
|  |         update-rc.d "$service_name" defaults && \ | ||||||
|  |         "/etc/init.d/$service_name" start | ||||||
|  |       } || echo "$service_name could not be registered or started" | ||||||
|  |     fi | ||||||
|  |   else | ||||||
|  |     echo 'Your system does not appear to use systemd, Upstart, or System V, so the service could not be started' | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | add_group 'audiobookshelf' '' | ||||||
|  | add_user 'audiobookshelf' '' 'audiobookshelf' 'audiobookshelf user-daemon' '/bin/false' | ||||||
|  | 
 | ||||||
|  | mkdir -p '/var/log/audiobookshelf' | ||||||
|  | chown -R 'audiobookshelf:audiobookshelf' '/var/log/audiobookshelf' | ||||||
|  | 
 | ||||||
|  | start_service 'audiobookshelf' | ||||||
							
								
								
									
										26
									
								
								build/debian/DEBIAN/prerm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								build/debian/DEBIAN/prerm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | set -o pipefail | ||||||
|  | 
 | ||||||
|  | declare -r init_type='auto' | ||||||
|  | declare -r service_name='audiobookshelf' | ||||||
|  | 
 | ||||||
|  | if [[ "$init_type" == 'auto' || "$init_type" == 'systemd' || "$init_type" == 'upstart' || "$init_type" == 'sysv' ]]; then | ||||||
|  |   if hash systemctl 2> /dev/null; then | ||||||
|  |     systemctl disable "$service_name.service" && \ | ||||||
|  |     systemctl stop "$service_name.service" || \ | ||||||
|  |     echo "$service_name wasn't even running!" | ||||||
|  |   elif hash service 2> /dev/null; then | ||||||
|  |     service "$service_name" stop || echo "$service_name wasn't even running!" | ||||||
|  |   elif hash stop 2> /dev/null; then | ||||||
|  |     stop "$service_name" || echo "$service_name wasn't even running!" | ||||||
|  |   elif hash update-rc.d 2> /dev/null; then | ||||||
|  |     { | ||||||
|  |       update-rc.d "$service_name" remove && \ | ||||||
|  |       "/etc/init.d/$service_name" stop | ||||||
|  |     } || "$service_name wasn't even running!" | ||||||
|  |   else | ||||||
|  |     echo "Your system does not appear to use upstart, systemd or sysv, so $service_name could not be stopped" | ||||||
|  |     echo 'Unless these systems were removed since install, no processes have been left running' | ||||||
|  |   fi | ||||||
|  | fi | ||||||
							
								
								
									
										4
									
								
								build/debian/etc/default/audiobookshelf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								build/debian/etc/default/audiobookshelf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | AUDIOBOOK_PATH=/usr/share/audiobookshelf/audiobooks | ||||||
|  | METADATA_PATH=/usr/share/audiobookshelf/metadata | ||||||
|  | CONFIG_PATH=/usr/share/audiobookshelf/config | ||||||
|  | PORT=1337 | ||||||
							
								
								
									
										16
									
								
								build/debian/lib/systemd/system/audiobookshelf.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								build/debian/lib/systemd/system/audiobookshelf.service
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | [Unit] | ||||||
|  | Description=Self-hosted audiobook server for managing and playing audiobooks | ||||||
|  | Requires=network.target | ||||||
|  | 
 | ||||||
|  | [Service] | ||||||
|  | Type=simple | ||||||
|  | EnvironmentFile=/etc/default/audiobookshelf | ||||||
|  | WorkingDirectory=/usr/share/audiobookshelf | ||||||
|  | ExecStart=/usr/share/audiobookshelf/audiobookshelf | ||||||
|  | ExecReload=/bin/kill -HUP $MAINPID | ||||||
|  | Restart=always | ||||||
|  | User=audiobookshelf | ||||||
|  | PermissionsStartOnly=true | ||||||
|  | 
 | ||||||
|  | [Install] | ||||||
|  | WantedBy=multi-user.target | ||||||
| @ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|   "name": "audiobookshelf", |   "name": "audiobookshelf", | ||||||
|   "version": "1.2.1", |   "version": "1.2.1", | ||||||
|   "description": "Self-hosted audiobook server for managing and playing audiobooks.", |   "description": "Self-hosted audiobook server for managing and playing audiobooks", | ||||||
|   "main": "index.js", |   "main": "index.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "dev": "node index.js", |     "dev": "node index.js", | ||||||
| @ -9,12 +9,12 @@ | |||||||
|     "client": "cd client && npm install && npm run generate-client", |     "client": "cd client && npm install && npm run generate-client", | ||||||
|     "generate-client": "cd client && npm run generate", |     "generate-client": "cd client && npm run generate", | ||||||
|     "prod": "npm run client && npm install && node prod.js", |     "prod": "npm run client && npm install && node prod.js", | ||||||
|     "build-client": "cd client && rm -rf node_modules && npm i --unsafe-perm=true --allow-root && npm run generate", |     "build-client": "cd client && rm -rf node_modules && npm ci --unsafe-perm=true --allow-root && npm run generate", | ||||||
|     "build-server": "rm -rf node_modules && npm i --unsafe-perm=true --allow-root && npm i ffmpeg-static --unsafe-perm=true --allow-root", |     "build-server": "rm -rf node_modules && npm ci --unsafe-perm=true --allow-root && npm i ffmpeg-static --unsafe-perm=true --allow-root", | ||||||
|     "build-prep": "npm run build-client && npm run build-server", |     "build-prep": "npm run build-client && npm run build-server", | ||||||
|     "build-win": "npm run build-prep && pkg -t node12-win-x64 -o ./dist/win/audiobookshelf .", |     "build-win": "npm run build-prep && pkg -t node12-win-x64 -o ./dist/win/audiobookshelf .", | ||||||
|     "build-linuxarm": "npm run build-prep && pkg -t node12-linux-arm64 -o ./dist/linuxarm/audiobookshelf .", |     "build-linuxarm": "npm run build-prep && pkg -t node12-linux-arm64 -o ./dist/linuxarm/audiobookshelf .", | ||||||
|     "build-linux": "npm run build-prep && pkg -t node12-linux-x64 -o ./dist/linux/audiobookshelf ." |     "build-linux": "npm run build-prep && pkg -t node12-linux-x64 -o dist/linux/audiobookshelf . && cp dist/linux/audiobookshelf build/debian/usr/share/" | ||||||
|   }, |   }, | ||||||
|   "bin": "prod.js", |   "bin": "prod.js", | ||||||
|   "pkg": { |   "pkg": { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user