#!/bin/sh
#
# Uptime-Kuma FreeBSD Service Script
#
# PROVIDE: uptimekuma
# REQUIRE: DAEMON NETWORKING
# KEYWORD: shutdown
#
# Optional settings:
# uptimekuma_enable (YES/NO): Enable or disable the service.
# uptimekuma_user (system user): User to run the service as.
# uptimekuma_group (system group): Group to run the service as.
# uptimekuma_datadir (path): Path to application data.
# uptimekuma_host (IP address): Service host.
# uptimekuma_port (port): Service port.
# uptimekuma_chdir (path): Path to cloned github repo.

. /etc/rc.subr

name=uptimekuma
desc="Uptime-Kuma Website Monitoring"
rcvar=uptimekuma_enable

load_rc_config $name

: ${uptimekuma_enable:="NO"}
: ${uptimekuma_datadir:="/mnt/data"}
: ${uptimekuma_host:="0.0.0.0"}
: ${uptimekuma_port:="3001"}
: ${uptimekuma_chdir:="/usr/local/uptime-kuma"}
: ${uptimekuma_user:="uptimekuma"}
: ${uptimekuma_group:="uptimekuma"}

pidfile="/var/run/${name}/${name}.pid"
uptimekuma_env="PLAYWRIGHT_BROWSERS_PATH=/nonexistent"
node="/usr/local/bin/node"
command=/usr/sbin/daemon
command_args="-P ${pidfile} -H -o /var/log/${name}/${name}.log ${node} server/server.js --host=${uptimekuma_host} --port=${uptimekuma_port} --data-dir=${uptimekuma_datadir}"

start_precmd=uptimekuma_startprecmd

uptimekuma_startprecmd()
{
    mkdir -p /var/run/${name}
    mkdir -p /var/log/${name}
    chown -R ${uptimekuma_user}:${uptimekuma_group} /var/run/${name}
    chown -R ${uptimekuma_user}:${uptimekuma_group} /var/log/${name}
}

run_rc_command "$1"
