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"
|