--- /dev/null
+#!/bin/sh
+# PROVIDE: pleroma
+# REQUIRE: DAEMON pgsql
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="pleroma"
+rcvar=${name}
+command="/usr/pkg/bin/elixir"
+command_args="/usr/pkg/bin/mix phx.server &"
+start_cmd=pleroma_start
+start_precmd="ulimit -n unlimited"
+pidfile="${pleroma_home}/pleroma/pid"
+
+pleroma_chdir="${pleroma_home}/pleroma"
+pleroma_env="HOME=${pleroma_home} MIX_ENV=prod"
+pleroma_user="pleroma"
+
+pleroma_start()
+{
+ echo "Starting ${name}."
+ ${start_precmd}
+ su -m ${pleroma_user} -c "cd ${pleroma_chdir} && \
+ ${pleroma_env} ${command} ${command_args}"
+ echo $! > ${pidfile}
+}
+
+check_pidfile()
+{
+ read _pid _junk < ${pidfile}
+ echo -n "$(ps -axo pid | grep ${_pid})"
+}
+
+if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then # newer NetBSD
+ load_rc_config ${name}
+ run_rc_command "$1"
+else # ancient NetBSD, Solaris and illumos, Linux, etc...
+ cmd=${1:-start}
+
+ case ${cmd} in
+ start)
+ echo "Starting ${name}."
+ ${start_cmd}
+ ;;
+
+ stop)
+ echo "Stopping ${name}."
+ kill `cat ${pidfile}`
+ rm ${pidfile}
+ ;;
+
+ restart)
+ ( $0 stop )
+ sleep 5
+ $0 start
+ ;;
+
+ *)
+ echo 1>&2 "Usage: $0 [start|stop|restart]"
+ exit 1
+ ;;
+ esac
+ exit 0
+fi