#!/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