mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| #!/command/with-contenv /usr/bin/bash
 | |
| # shellcheck shell=bash
 | |
| 
 | |
| declare -r log_prefix="[init-db-wait]"
 | |
| 
 | |
| wait_for_postgres() {
 | |
| 	local attempt_num=1
 | |
| 	local -r max_attempts=5
 | |
| 
 | |
| 	echo "${log_prefix} Waiting for PostgreSQL to start..."
 | |
| 
 | |
| 	local -r host="${PAPERLESS_DBHOST:-localhost}"
 | |
| 	local -r port="${PAPERLESS_DBPORT:-5432}"
 | |
| 	local -r user="${PAPERLESS_DBUSER:-paperless}"
 | |
| 
 | |
| 	# Disable warning, host and port can't have spaces
 | |
| 	# shellcheck disable=SC2086
 | |
| 	while [ ! "$(pg_isready -h ${host} -p ${port} --username ${user})" ]; do
 | |
| 
 | |
| 		if [ $attempt_num -eq $max_attempts ]; then
 | |
| 			echo "${log_prefix} Unable to connect to database."
 | |
| 			exit 1
 | |
| 		else
 | |
| 			echo "${log_prefix} Attempt $attempt_num failed! Trying again in 5 seconds..."
 | |
| 		fi
 | |
| 
 | |
| 		attempt_num=$(("$attempt_num" + 1))
 | |
| 		sleep 5
 | |
| 	done
 | |
| 	# Extra in case this is a first start
 | |
| 	sleep 5
 | |
| 	echo "Connected to PostgreSQL"
 | |
| }
 | |
| 
 | |
| wait_for_mariadb() {
 | |
| 	echo "${log_prefix} Waiting for MariaDB to start..."
 | |
| 
 | |
| 	local -r host="${PAPERLESS_DBHOST:=localhost}"
 | |
| 	local -r port="${PAPERLESS_DBPORT:=3306}"
 | |
| 
 | |
| 	local attempt_num=1
 | |
| 	local -r max_attempts=5
 | |
| 
 | |
| 	# Disable warning, host and port can't have spaces
 | |
| 	# shellcheck disable=SC2086
 | |
| 	while ! true > /dev/tcp/$host/$port; do
 | |
| 
 | |
| 		if [ $attempt_num -eq $max_attempts ]; then
 | |
| 			echo "${log_prefix} Unable to connect to database."
 | |
| 			exit 1
 | |
| 		else
 | |
| 			echo "${log_prefix} Attempt $attempt_num failed! Trying again in 5 seconds..."
 | |
| 
 | |
| 		fi
 | |
| 
 | |
| 		attempt_num=$(("$attempt_num" + 1))
 | |
| 		sleep 5
 | |
| 	done
 | |
| 	echo "Connected to MariaDB"
 | |
| }
 | |
| 
 | |
| if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
 | |
| 	echo "${log_prefix} Waiting for MariaDB to report ready"
 | |
| 	wait_for_mariadb
 | |
| elif [[ -n "${PAPERLESS_DBHOST}" ]]; then
 | |
| 	echo "${log_prefix} Waiting for postgresql to report ready"
 | |
| 	wait_for_postgres
 | |
| fi
 | |
| 
 | |
| 	echo "${log_prefix} Database is ready"
 | 
