35 lines
1.3 KiB
Plaintext
Executable File

#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
cd ${PAPERLESS_SRC_DIR}
# 1) Figure out the address we'll use:
if [[ -n "${PAPERLESS_BIND_ADDR:-}" && "${PAPERLESS_BIND_ADDR}" == \[*\] ]]; then
# PAPERLESS_BIND_ADDR is set and wrapped in [...]
echo "Warning: stripping surrounding brackets from PAPERLESS_BIND_ADDR='${PAPERLESS_BIND_ADDR}'" >&2
addr="${PAPERLESS_BIND_ADDR#[}" # remove leading “[”
addr="${addr%]}" # remove trailing “]”
elif [[ -n "${PAPERLESS_BIND_ADDR:-}" ]]; then
# PAPERLESS_BIND_ADDR is set but not bracketed
addr="$PAPERLESS_BIND_ADDR"
else
# neither PAPERLESS_BIND_ADDR nor GRANIAN_HOST was set → default
addr="::"
fi
# Translate between things, preferring GRANIAN_
export GRANIAN_HOST="${GRANIAN_HOST:-$addr}"
export GRANIAN_PORT=${GRANIAN_PORT:-${PAPERLESS_PORT:-8000}}
export GRANIAN_WORKERS=${GRANIAN_WORKERS:-${PAPERLESS_WEBSERVER_WORKERS:-1}}
# Only set GRANIAN_URL_PATH_PREFIX if PAPERLESS_FORCE_SCRIPT_NAME is set
if [[ -n "${PAPERLESS_FORCE_SCRIPT_NAME}" ]]; then
export GRANIAN_URL_PATH_PREFIX=${PAPERLESS_FORCE_SCRIPT_NAME}
fi
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
exec granian --interface asginl --ws --loop uvloop "paperless.asgi:application"
else
exec s6-setuidgid paperless granian --interface asginl --ws --loop uvloop "paperless.asgi:application"
fi