commit 8a0a49dd5766094f60462fbfbe62e9921fbd2373 Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 23:02:47 2023 -0800 Fix formatting commit 66b2d90c507b8afd9507813ff555e46198ea33b9 Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 22:36:35 2023 -0800 Refactor frontend data models commit 5723bd8dd823ee855625e250df39393e26709d48 Author: Adam Bogdał <adam@bogdal.pl> Date: Wed Dec 20 01:17:43 2023 +0100 Fix: speed up admin panel for installs with a large number of documents (#5052) commit 9b08ce176199bf9011a6634bb88f616846150d2b Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 15:18:51 2023 -0800 Update PULL_REQUEST_TEMPLATE.md commit a6248bec2d793b7690feed95fcaf5eb34a75bfb6 Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 15:02:05 2023 -0800 Chore: Update Angular to v17 (#4980) commit b1f6f52486d5ba5c04af99b41315eb6428fd1fa8 Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 13:53:56 2023 -0800 Fix: Dont allow null custom_fields property via API (#5063) commit 638d9970fd468d8c02c91d19bd28f8b0796bdcb1 Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 13:43:50 2023 -0800 Enhancement: symmetric document links (#4907) commit 5e8de4c1da6eb4eb8f738b20962595c7536b30ec Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Dec 19 12:45:04 2023 -0800 Enhancement: shared icon & shared by me filter (#4859) commit 088bad90306025d3f6b139cbd0ad264a1cbecfe5 Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Dec 19 12:04:03 2023 -0800 Bulk updates all the backend libraries (#5061)
119 lines
2.5 KiB
Bash
Executable File
119 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
wait_for_postgres() {
|
|
local attempt_num=1
|
|
local -r max_attempts=5
|
|
|
|
echo "Waiting for PostgreSQL to start..."
|
|
|
|
local -r host="${PAPERLESS_DBHOST:-localhost}"
|
|
local -r port="${PAPERLESS_DBPORT:-5432}"
|
|
|
|
# Disable warning, host and port can't have spaces
|
|
# shellcheck disable=SC2086
|
|
while [ ! "$(pg_isready -h ${host} -p ${port})" ]; do
|
|
|
|
if [ $attempt_num -eq $max_attempts ]; then
|
|
echo "Unable to connect to database."
|
|
exit 1
|
|
else
|
|
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
|
|
fi
|
|
|
|
attempt_num=$(("$attempt_num" + 1))
|
|
sleep 5
|
|
done
|
|
}
|
|
|
|
wait_for_mariadb() {
|
|
echo "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 "Unable to connect to database."
|
|
exit 1
|
|
else
|
|
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
|
|
|
|
fi
|
|
|
|
attempt_num=$(("$attempt_num" + 1))
|
|
sleep 5
|
|
done
|
|
}
|
|
|
|
wait_for_redis() {
|
|
# We use a Python script to send the Redis ping
|
|
# instead of installing redis-tools just for 1 thing
|
|
if ! python3 /sbin/wait-for-redis.py; then
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
migrations() {
|
|
(
|
|
# flock is in place to prevent multiple containers from doing migrations
|
|
# simultaneously. This also ensures that the db is ready when the command
|
|
# of the current container starts.
|
|
flock 200
|
|
echo "Apply database migrations..."
|
|
python3 manage.py migrate --skip-checks --no-input
|
|
) 200>"${DATA_DIR}/migration_lock"
|
|
}
|
|
|
|
django_checks() {
|
|
# Explicitly run the Django system checks
|
|
echo "Running Django checks"
|
|
python3 manage.py check
|
|
}
|
|
|
|
search_index() {
|
|
|
|
local -r index_version=8
|
|
local -r index_version_file=${DATA_DIR}/.index_version
|
|
|
|
if [[ (! -f "${index_version_file}") || $(<"${index_version_file}") != "$index_version" ]]; then
|
|
echo "Search index out of date. Updating..."
|
|
python3 manage.py document_index reindex --no-progress-bar
|
|
echo ${index_version} | tee "${index_version_file}" >/dev/null
|
|
fi
|
|
}
|
|
|
|
superuser() {
|
|
if [[ -n "${PAPERLESS_ADMIN_USER}" ]]; then
|
|
python3 manage.py manage_superuser
|
|
fi
|
|
}
|
|
|
|
do_work() {
|
|
if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
|
|
wait_for_mariadb
|
|
elif [[ -n "${PAPERLESS_DBHOST}" ]]; then
|
|
wait_for_postgres
|
|
fi
|
|
|
|
wait_for_redis
|
|
|
|
migrations
|
|
|
|
django_checks
|
|
|
|
search_index
|
|
|
|
superuser
|
|
|
|
}
|
|
|
|
do_work
|