Index: GIDs =================================================================== --- GIDs +++ GIDs @@ -179,7 +179,7 @@ rspamd:*:236: paperless:*:237: sonic:*:238: -# free: 239 +restserver:*:239: aprsd:*:240: tnc:*:241: prosody:*:242: Index: UIDs =================================================================== --- UIDs +++ UIDs @@ -184,7 +184,7 @@ rspamd:*:236:236::0:0:rspamd pseudo-user:/nonexistent:/usr/sbin/nologin paperless:*:237:237::0:0:paperless user:/var/db/paperless:/bin/sh sonic:*:238:238::0:0:sonic user:/var/db/sonic:/usr/sbin/nologin -# free: 239 +restserver:*:239:239::0:0:restic rest-server Daemon:/var/db/restserver:/usr/sbin/nologin aprsd:*:240:240::0:0:aprsd:/nonexistent:/bin/sh tnc:*:241:241::0:0:aprsd:/nonexistent:/bin/sh prosody:*:242:242::0:0:Prosody Jabber Server:/nonexistent:/usr/sbin/nologin Index: sysutils/Makefile =================================================================== --- sysutils/Makefile +++ sysutils/Makefile @@ -1098,6 +1098,7 @@ SUBDIR += reoback SUBDIR += reptyr SUBDIR += respond + SUBDIR += rest-server SUBDIR += restic SUBDIR += retail SUBDIR += rex Index: sysutils/rest-server/Makefile =================================================================== --- /dev/null +++ sysutils/rest-server/Makefile @@ -0,0 +1,31 @@ +# $FreeBSD$ + +PORTNAME= rest-server +DISTVERSIONPREFIX= v +DISTVERSION= 0.9.8 +CATEGORIES= sysutils + +MAINTAINER= dch@FreeBSD.org +COMMENT= Performant HTTP server for sysutils/restic backend API + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go +USE_GITHUB= yes +GH_ACCOUNT= restic + +GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME} +GO_TARGET= ${GO_PKGNAME}/cmd/${PORTNAME} + +USE_RC_SUBR= restserver + +USERS= restserver +GROUPS= restserver + +PLIST_FILES= bin/${PORTNAME} + +do-install: + ${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} + +.include Index: sysutils/rest-server/distinfo =================================================================== --- /dev/null +++ sysutils/rest-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1563196957 +SHA256 (restic-rest-server-v0.9.8_GH0.tar.gz) = 2080012981c81b788f0aea302f5126b0b2ed89f0bdc9104166289ca167c38c75 +SIZE (restic-rest-server-v0.9.8_GH0.tar.gz) = 2398333 Index: sysutils/rest-server/files/restserver.in =================================================================== --- /dev/null +++ sysutils/rest-server/files/restserver.in @@ -0,0 +1,89 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: restserver +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# restserver_enable (bool): Set it to YES to enable restserver. +# Default is "NO". +# restserver_user (user): Set user to run restserver. +# Default is "restserver". +# restserver_group (group): Set group to run restserver. +# Default is "restserver". +# restserver_store (dir): Set restserver config file. +# Default is "/var/db/restserver". +# restserver_syslog_output_enable (bool): Set to enable syslog output. +# Default is "NO". See daemon(8). +# restserver_syslog_output_priority (str): Set syslog priority if syslog enabled. +# Default is "info". See daemon(8). +# restserver_syslog_output_facility (str): Set syslog facility if syslog enabled. +# Default is "daemon". See daemon(8). + +. /etc/rc.subr + +name=restserver +rcvar=restserver_enable +desc="network API server for sysutils/restic backup software" + +load_rc_config $name + +: ${restserver_enable:="NO"} +: ${restserver_user:="restserver"} +: ${restserver_group:="restserver"} +: ${restserver_store:="/var/db/restserver"} +: ${restserver_options:="--listen 127.0.0.1:8000 --no-auth"} + +DAEMON=$(/usr/sbin/daemon 2>&1 | grep -q syslog ; echo $?) +if [ ${DAEMON} -eq 0 ]; then + : ${restserver_syslog_output_enable:="NO"} + : ${restserver_syslog_output_priority:="info"} + : ${restserver_syslog_output_facility:="daemon"} + if checkyesno restserver_syslog_output_enable; then + restserver_syslog_output_flags="-t ${name} -T ${name}" + + if [ -n "${restserver_syslog_output_priority}" ]; then + restserver_syslog_output_flags="${restserver_syslog_output_flags} -s ${restserver_syslog_output_priority}" + fi + + if [ -n "${restserver_syslog_output_facility}" ]; then + restserver_syslog_output_flags="${restserver_syslog_output_flags} -l ${restserver_syslog_output_facility}" + fi + fi +else + restserver_syslog_output_enable="NO" + restserver_syslog_output_flags="" +fi + +pidfile=/var/run/restserver.pid +procname="%%PREFIX%%/bin/rest-server" +command="/usr/sbin/daemon" +command_args="-f ${restserver_syslog_output_flags} -p ${pidfile} -t ${name} /usr/bin/env ${restserver_env} ${procname} --path ${restserver_store} ${restserver_options}" + +extra_commands="reload monitor" +monitor_cmd=restserver_monitor +start_precmd=restserver_startprecmd +required_files="$restserver_config" + +restserver_monitor() +{ + sig_reload=USR1 + run_rc_command "reload" +} + +restserver_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${restserver_user} -g ${restserver_group} /dev/null ${pidfile}; + fi + + if [ ! -d ${restserver_dir} ]; then + install -d -o ${restserver_user} -g ${restserver_group} ${restserver_dir} + fi +} + +run_rc_command "$1" Index: sysutils/rest-server/pkg-descr =================================================================== --- /dev/null +++ sysutils/rest-server/pkg-descr @@ -0,0 +1,5 @@ +Rest Server is a high performance HTTP server that implements restic's +REST backend API. It provides secure and efficient way to backup data +remotely, using restic backup client via the rest: URI over the network. + +WWW: https://github.com/restic/rest-server