mbrubeck / agate

Very simple server for the Gemini hypertext protocol
Apache License 2.0
605 stars 37 forks source link

FreeBSD startup script #13

Closed gegeweb closed 3 years ago

gegeweb commented 3 years ago

Hi,

I've made a startup script for FreeBSD, you can find it here: gemini://home.gegeweb.org/freebsd/start_agate.gmi (article in French)

#!/bin/sh

# $FreeBSD$
#
# PROVIDE: agate
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add these lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# agate_enable (bool):  Set to NO by default.
#                       Set it to YES to enable agate.
# agate_user:           default www
# agate_content:        default /usr/local/www/gemini
# agate_key:            default /usr/local/etc/gemini/ssl/key.rsa
# agate_cert:           default /usr/local/etc/gemini/ssl/cert.pem
# agate_hostname:       e.g., gemini.example.tld, default hostname
# agate_addr:           default [::], listen on IPV4 and IPV6
# agate_port:           default 1965
# agate_lang:           default en_US
# agate_logfile:        default /var/log/gemini/agate.log

. /etc/rc.subr

desc="Agate Gemini server"
name=agate
rcvar=$name_enable

load_rc_config $name

: ${agate_enable:="NO"}
: ${agate_user:="www"}
: ${agate_content:="/usr/local/www/gemini/"}
: ${agate_key:="/usr/local/etc/gemini/ssl/key.rsa"}
: ${agate_cert:="/usr/local/etc/gemini/ssl/cert.pem"}
: ${agate_hostname:=`uname -n`}
: ${agate_addr:="[::]"}
: ${agate_port:="1965"}
: ${agate_lang:="en-US"}
: ${agate_logfile:="/var/log/gemini/agate.log"}

agate_user=${agate_user}

command="/usr/local/bin/agate"
command_args="--content ${agate_content} \
       --key ${agate_key} \
       --cert ${agate_cert} \
       --addr ${agate_addr}:${agate_port} \
       --hostname ${agate_hostname} \
       --lang ${agate_lang} >> ${agate_logfile} 2>&1 &"

run_rc_command "$1"
Johann150 commented 3 years ago

Hi @gegeweb, maybe you could make a pull request with this in a new tools/freebsd folder. I imagine some other supporting material could be put there too, like other startup scripts, fail2ban filters and the like.