commit
8e22d87175
|
@ -0,0 +1,89 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# PROVIDE: caddy
|
||||
# REQUIRE: networking
|
||||
# KEYWORD: shutdown
|
||||
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf to enable caddy:
|
||||
# caddy_enable (bool): Set to "NO" by default.
|
||||
# Set it to "YES" to enable caddy
|
||||
#
|
||||
# caddy_cert_email (str): Set to "" by default.
|
||||
# Defines the SSL certificate issuer email. By providing an
|
||||
# email address you automatically agree to letsencrypt.org's
|
||||
# general terms and conditions
|
||||
#
|
||||
# caddy_bin_path (str): Set to "/usr/local/bin/caddy" by default.
|
||||
# Provides the path to the caddy server executable
|
||||
#
|
||||
# caddy_cpu (str): Set to "99%" by default.
|
||||
# Configures, how much CPU capacity caddy may gain
|
||||
#
|
||||
# caddy_config_path (str): Set to "/usr/local/www/Caddyfile" by default.
|
||||
# Defines the path for the configuration file caddy will load on boot
|
||||
#
|
||||
# caddy_user (str): Set to "root" by default.
|
||||
# Defines the user that caddy will run on
|
||||
#
|
||||
# caddy_group (str): Set to "wheel" by default.
|
||||
# Defines the group that caddy files will be attached to
|
||||
#
|
||||
# caddy_syslog_facility (str) Set to "local7" by default.
|
||||
# Defines the syslog facility used to log output from the caddy process.
|
||||
# This is NOT the web access log.
|
||||
#
|
||||
# caddy_syslog_level (str) Set to "notice" by default.
|
||||
# Defines the syslog level used to log output from the caddy process.
|
||||
# This is NOT the web access log.
|
||||
#
|
||||
# caddy_env (str) Set to "" by default.
|
||||
# This allows environment variable to be set that may be required, for example when using "DNS Challenge" account credentials are required.
|
||||
# e.g. (in your rc.conf) caddy_env="CLOUDFLARE_EMAIL=me@domain.com CLOUDFLARE_API_KEY=my_api_key"
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="caddy"
|
||||
rcvar="${name}_enable"
|
||||
|
||||
load_rc_config ${name}
|
||||
|
||||
: ${caddy_enable:="NO"}
|
||||
: ${caddy_cert_email=""}
|
||||
: ${caddy_bin_path="/usr/local/bin/caddy"}
|
||||
: ${caddy_cpu="99%"} # was a bug for me that caused a crash within jails
|
||||
: ${caddy_config_path="/usr/local/www/Caddyfile"}
|
||||
: ${caddy_syslog_facility="local7"}
|
||||
: ${caddy_syslog_level="notice"}
|
||||
: ${caddy_user="root"}
|
||||
: ${caddy_group="wheel"}
|
||||
: ${caddy_flags=""}
|
||||
: ${caddy_options="-cpu ${caddy_cpu} -log stdout -conf ${caddy_config_path} -agree -email ${caddy_cert_email} ${caddy_flags}"}
|
||||
|
||||
if [ "$caddy_cert_email" = "" ]
|
||||
then
|
||||
echo "rc variable \$caddy_cert_email is not set. Please provide a valid SSL certificate issuer email."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pidfile="/var/run/${name}.pid"
|
||||
procname="${caddy_bin_path}" #enabled builtin pid checking for start / stop
|
||||
command="/usr/sbin/daemon"
|
||||
command_args="-p ${pidfile} -T ${name} -l ${caddy_syslog_facility} -s ${caddy_syslog_level} /usr/bin/env ${caddy_env} ${procname} ${caddy_options} < /dev/null"
|
||||
|
||||
start_precmd="caddy_startprecmd"
|
||||
|
||||
caddy_startprecmd()
|
||||
{
|
||||
# Clear flags provided by caddy_flags to prevent them being passed to daemon(8)
|
||||
rc_flags=""
|
||||
|
||||
if [ ! -e "${pidfile}" ]; then
|
||||
install -o "${caddy_user}" -g "${caddy_group}" "/dev/null" "${pidfile}"
|
||||
fi
|
||||
}
|
||||
|
||||
required_files="${caddy_config_path}"
|
||||
|
||||
run_rc_command "$1"
|
Loading…
Reference in New Issue