ports/www/elog/files/elogd.in
Erik Jensen 334b84977f www/elog: Fast and lightweight, customizable weblog
The Electronic Logbook (ELOG) provides a Web interface to manage notes.
Its general purpose is to make it easy for people to put and access
information online; in the form of short, time stamped text messages
with optional HTML markup for presentation, and optional file
attachments.

WWW: https://elog.psi.ch/elog/

PR:		274813
2024-09-16 22:14:20 +02:00

50 lines
1.6 KiB
Bash

#!/bin/sh
# PROVIDE: elogd
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add these lines to /etc/rc.conf.local or /etc/rc.conf to enable this service:
#
# elogd_enable (bool): Set it to "YES" to enable elogd. Default: NO
# elogd_config (str): Path to elogd configuration file. Default: %%PREFIX%%/etc/elogd.cfg
# elogd_user (str): Elog daemon user. Default: elog
# elogd_group (str): Elog group. Default: elog
# elogd_resource_dir (str): Path to directory containing resource directory. Default: %%WWWDIR%%
# elogd_logbook_dir (str): Path to directory containing logbooks. Default: %%WWWDIR%%/logbooks
. /etc/rc.subr
name=elogd
desc="Electronic Logbook Daemon"
rcvar=elogd_enable
start_precmd="elogd_checkssl"
load_rc_config $name
: ${elogd_enable:="NO"}
: ${elogd_config="%%PREFIX%%/etc/elogd.cfg"}
: ${elogd_user="elog"}
: ${elogd_group="elog"}
: ${elogd_resource_dir="%%WWWDIR%%"}
: ${elogd_logbook_dir="%%WWWDIR%%/logbooks"}
elogd_ssl_dir="%%WWWDIR%%/ssl"
elogd_ssl_key="${elogd_ssl_dir}/server.key"
elogd_ssl_cert="${elogd_ssl_dir}/server.crt"
command=%%PREFIX%%/sbin/${name}
command_args="-D -c $elogd_config -s $elogd_resource_dir -d $elogd_logbook_dir"
elogd_checkssl() {
if ! [ -e "${elogd_ssl_key}" ] || ! [ -e "${elogd_ssl_cert}" ] ; then
echo "Server private key and certificate not present in ${elogd_ssl_dir} - creating..."
openssl ecparam -genkey -noout -name secp384r1 -out ${elogd_ssl_key}
openssl req -x509 -days 365 -subj "/C=DK/ST=Some-State/O=Bogus Inc./CN=localhost" \
-nodes -key ${elogd_ssl_key} -out ${elogd_ssl_cert}
chown elog:elog ${elogd_ssl_key} ${elogd_ssl_cert}
fi
}
run_rc_command "$1"