From 8e22d871753a3e9d4f317ccd583e1e0ab4b8c1ad Mon Sep 17 00:00:00 2001 From: basilhendroff <63370329+basilhendroff@users.noreply.github.com> Date: Thu, 21 May 2020 04:36:42 +0800 Subject: [PATCH] Add files via upload The original Caddy V1 rc.d script --- caddy | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 caddy diff --git a/caddy b/caddy new file mode 100644 index 0000000..82c2e04 --- /dev/null +++ b/caddy @@ -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"