mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-03-31 13:35:08 -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"
|