aboutsummaryrefslogtreecommitdiff
path: root/deskutils/py-paperless-ngx/files/paperless-webui.in
blob: 19330fe57996bd373ebfbf8d8f0d240932b3a3bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/sh

# PROVIDE: paperless-webui
# REQUIRE: LOGIN
# BEFORE:  paperless-worker
# KEYWORD: shutdown
#
# Add the following line(s) to /etc/rc.conf to enable the paperless
# celery webui process:
#
# paperless_webui_enable (bool):	Set to "NO" by default.
#					Set it to "YES" to enable
#					paperless_webui
# paperless_webui_log_facility(str):	Set to "daemon" by default.
#					WebUI logging syslog facility.
# paperless_webui_log_priority(str):	Set to "notice" by default.
#					WebUI logging syslog priority.
# paperless_webui_log_tag(str):		Set to "paperless-webui" by default.
#					WebUI logging syslog tag.
# paperless_webui_restart_delay(int):	Set to "5" by default.
#					WebUI automatic restart delay in
#					seconds.
# paperless_webui_secret_key(str):	Set to
#					"%%PREFIX%%/etc/paperless_secret_key"
#					by default. Load PAPERLESS_SECRET_KEY
#					from this file from start, in case it
#					is not in the environment already.
#					Will be created on start in case it
#					does not exist.
#					Content of PAPERLESS_SECRET_KEY can be
#					overridden in
#					%%PREFIX%%/etc/paperless.conf.

. /etc/rc.subr

name="paperless_webui"
rcvar="${name}_enable"

# Set defaults
paperless_webui_enable=${paperless_webui_enable:-"NO"}
paperless_webui_daemon_user=${paperless_webui_user:-"paperless"}
paperless_webui_log_facility=${paperless_webui_log_facility:-"daemon"}
paperless_webui_log_priority=${paperless_webui_log_priority:-"notice"}
paperless_webui_log_tag=${paperless_webui_log_tag:-"paperless-webui"}
paperless_webui_listen_address=${paperless_webui_listen_address:-"127.0.0.1"}
paperless_webui_listen_port=${paperless_webui_listen_port:-"8000"}
paperless_webui_restart_delay=${paperless_webui_restart_delay:-"5"}
paperless_webui_secret_key=${\
paperless_webui_secret_key:-"%%PREFIX%%/etc/paperless_secret_key"}

paperless_webui_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin\
  PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless \
  PAPERLESS_BIND_ADDR=${paperless_webui_listen_address} \
  PAPERLESS_PORT=${paperless_webui_listen_port}"

start_precmd="paperless_webui_prestart"
pidfile="/var/run/paperless/webui.pid"
command="/usr/sbin/daemon"
command_args="-cS -u ${paperless_webui_daemon_user} \
	-P ${pidfile} \
	-t paperless-webui \
	-l ${paperless_webui_log_facility} \
	-s ${paperless_webui_log_priority} \
	-T ${paperless_webui_log_tag} \
	-R ${paperless_webui_restart_delay} \
	%%PREFIX%%/bin/gunicorn \
	-c %%PYTHONPREFIX_SITELIBDIR%%/paperless/gunicorn.conf.py \
	paperless.asgi:application"

paperless_webui_prestart()
{
	if [ -z "$PAPERLESS_SECRET_KEY" ]; then
		if [ ! -s "$paperless_webui_secret_key" ]; then
			echo "Creating $paperless_webui_secret_key"
			(
				set -eo pipefail; umask 077
				uuidgen -crn 10 | xargs | tr ' ' 'x' \
				>"$paperless_webui_secret_key"
			) || return 1
		fi
		PAPERLESS_SECRET_KEY=$(cat "$paperless_webui_secret_key")
		export PAPERLESS_SECRET_KEY
	fi
	if [ "${#PAPERLESS_SECRET_KEY}" -lt "128" ]; then
		>&2 echo "PAPERLESS_SECRET_KEY is shorter than 128 chars"
		return 1
	fi
}

load_rc_config ${name}
run_rc_command "$1"