blob: 0fd79ec65c4a4ea022181f5a08c19742a4ed7968 (
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
92
93
94
95
96
97
98
99
100
101
102
103
|
#!/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_user (str): Set to "paperless" by default.
# User to run 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_listen_address (str): Set to "127.0.0.1" by default.
# IP address to listen on.
# paperless_webui_listen_port (int): Set to "8000" by default.
# Port to listen on.
# 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.
# paperless_webui_tmpdir (str): If set, overrides TMPDIR
. /etc/rc.subr
name="paperless_webui"
rcvar="${name}_enable"
# read configuration and set defaults
load_rc_config "$name"
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_tmpdir=${paperless_webui_tmpdir:-"$TMPDIR"}
paperless_webui_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin\
PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless \
GRANIAN_HOST=${paperless_webui_listen_address} \
GRANIAN_PORT=${paperless_webui_listen_port}"
if [ -n "$paperless_webui_tmpdir" ]; then
paperless_webui_env="$paperless_webui_env TMPDIR=\
$paperless_webui_tmpdir"
fi
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/granian --interface asginl \
--ws --loop uvloop 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
}
run_rc_command "$1"
|