diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2021-04-10 17:05:14 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2021-04-10 17:05:30 +0200 |
commit | cd86772c196e6b256cbc336c5c5135ca88ca727f (patch) | |
tree | d2a0c4abb9ec97ee3ea6d60b0f0afdc952946311 /www-apps/nextcloud-notify_push/files | |
parent | sys-kernel/vanilla-sources: Linux version updates (diff) | |
download | gentoo-cd86772c196e6b256cbc336c5c5135ca88ca727f.tar.gz gentoo-cd86772c196e6b256cbc336c5c5135ca88ca727f.tar.bz2 gentoo-cd86772c196e6b256cbc336c5c5135ca88ca727f.zip |
www-apps/nextcloud-notify_push: new package
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
Diffstat (limited to 'www-apps/nextcloud-notify_push/files')
3 files changed, 226 insertions, 0 deletions
diff --git a/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.confd b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.confd new file mode 100644 index 000000000000..7653cf41b78c --- /dev/null +++ b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.confd @@ -0,0 +1,84 @@ +# /etc/conf.d/nextcloud-notify_push + +# User to run instance as +#NOTIFY_PUSH_USER=nobody + +# Group to run instance as +#NOTIFY_PUSH_GROUP=nobody + +# Nextcloud config file +# Set this to the Nextcloud configuration file this +# instance is used for. +NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE="/path/to/your/nextcloud/config.php" + +# Data Source Name (DSN) to the Nextcloud database +# E.g. mysql://user:password@db_host/db_name +# +# Note: If you set NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE, notify_push +# will read this information from config.php file. +#DATABASE_URL="" + +# Database prefix of the used Nextcloud database +# +# Note: If you set NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE, notify_push +# will read this information from config.php file. +#DATABASE_PREFIX="oc_" + +# Redis connection string +# To use notify_push, used Nextcloud instance must be configured +# to use Redis. Use this option to point to the same Redis instance. +# +# Note: If you set NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE, notify_push +# will read this information from config.php file. +#REDIS_URL="" + +# URL to used Nextcloud instance +# +# Note: If you set NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE, notify_push +# will read this information from config.php file. +#NEXTCLOUD_URL="" + +# IP address notify_push will bind to +#BIND="127.0.0.1" + +# Port notify_push will listen on +#PORT="7867" + +# Socket notify_push will listen on +SOCKET_PATH="/run/${SVCNAME}/notify_push.socket" + +# Port notify_push will listen on for metrics +#METRICS_PORT="9867" + +# Socket notify_push will listen on for metrics +#METRICS_SOCKET_PATH="/run/${SVCNAME}/notify_push_metrics.socket" + +# You can use this configuration option to pass additional options to the +# start-stop-daemon, see start-stop-daemon(8) for more details. +# Per default we wait 1000ms after we have started the service to ensure +# that the daemon is really up and running. +#NOTIFY_PUSH_SSDARGS="--wait 1000" + +# The termination timeout (start-stop-daemon parameter "retry") ensures +# that the service will be terminated within a given time (30 + 5 seconds +# per default) when you are stopping the service. +#NOTIFY_PUSH_TERMTIMEOUT="TERM/30/KILL/5" + +# Options to notify_push +# See `nextcloud-notify_push --help` for more details +#NOTIFY_PUSH_OPTS="" + +# Set log level +# E.g. error, warn, info, debug +#LOG="" + +# By default, a background service in OpenRC will produce no output. +# Uncomment the following option to log output to a file. +#output_log="/var/log/${SVCNAME}.log" + +# Configure service dependencies +# notify_push needs to connect to same mysql and redis instance +# like Nextcloud. By default we assume that Nextcloud is running +# on same host. Adjust when using different instances or when +# notify_push isn't using any listed local service. +RC_USE="mysql redis" diff --git a/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.init b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.init new file mode 100644 index 000000000000..b5469591ca76 --- /dev/null +++ b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.init @@ -0,0 +1,122 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# shellcheck disable=SC2034 + +: "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE:=}" +: "${NOTIFY_PUSH_PIDFILE:=/run/${SVCNAME}.pid}" +: "${NOTIFY_PUSH_SSDARGS:=--wait 1000}" +: "${NOTIFY_PUSH_TERMTIMEOUT:=TERM/30/KILL/5}" +: "${NOTIFY_PUSH_USER:=nobody}" +: "${NOTIFY_PUSH_GROUP:=nobody}" + +command="/usr/bin/nextcloud-notify_push" +command_args="${NOTIFY_PUSH_OPTS}" +command_background="yes" +command_user="${NOTIFY_PUSH_USER}:${NOTIFY_PUSH_GROUP}" +pidfile="${NOTIFY_PUSH_PIDFILE}" +retry="${NOTIFY_PUSH_TERMTIMEOUT}" +start_stop_daemon_args="${NOTIFY_PUSH_SSDARGS}" + +description="Push daemon for Nextcloud clients" + +depend() { + use dns +} + +start_pre() { + local has_errors= + + if [ -n "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}" ] ; then + if ! su -s /bin/sh -c "test -r \"${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}\"" ${NOTIFY_PUSH_USER} 1>/dev/null 2>&1 ; then + eerror "Config file \"${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}\" does not exist or is not accessible for user \"${NOTIFY_PUSH_USER}\"!" + return 1 + fi + + command_args="${command_args} \"${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}\"" + fi + + # Required options when no config file was specified + if [ -n "${DATABASE_URL}" ] ; then + export DATABASE_URL + elif [ -z "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}" ] && [ -z "${DATABASE_URL}" ] ; then + has_errors=yes + eerror "DATABASE_URL not set!" + fi + + if [ -n "${DATABASE_PREFIX}" ] ; then + export DATABASE_PREFIX + elif [ -z "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}" ] && [ -z "${DATABASE_PREFIX}" ] ; then + has_errors=yes + eerror "DATABASE_PREFIX not set!" + fi + + if [ -n "${REDIS_URL}" ] ; then + export REDIS_URL + elif [ -z "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}" ] && [ -z "${REDIS_URL}" ] ; then + has_errors=yes + eerror "REDIS_URL not set!" + fi + + if [ -z "${NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE}" ] && [ -z "${SOCKET_PATH}" ] && [ -z "${PORT}" ] ; then + has_errors=yes + eerror "Neither SOCKET_PATH nor PORT is set!" + elif [ -n "${SOCKET_PATH}" ] ; then + checkpath -q -d -o ${NOTIFY_PUSH_USER}:${NOTIFY_PUSH_GROUP} -m 0770 "$(dirname "${SOCKET_PATH}")" + service_set_value SOCKET_PATH "${SOCKET_PATH}" + export SOCKET_PATH + elif [ -n "${PORT}" ] ; then + export PORT + fi + + # Optional options + if [ -n "${ALLOW_SELF_SIGNED}" ] ; then + export ALLOW_SELF_SIGNED + fi + + if [ -n "${BIND}" ] ; then + export BIND + fi + + if [ -n "${LOG}" ] ; then + export LOG + fi + + if [ -n "${METRICS_PORT}" ] ; then + export METRICS_PORT + fi + + if [ -n "${METRICS_SOCKET_PATH}" ] ; then + checkpath -q -d -o ${NOTIFY_PUSH_USER}:${NOTIFY_PUSH_GROUP} -m 0770 "$(dirname "${METRICS_SOCKET_PATH}")" + service_set_value METRICS_SOCKET_PATH "${METRICS_SOCKET_PATH}" + export METRICS_SOCKET_PATH + fi + + # shellcheck disable=SC2154 + if [ -n "${output_log}" ] ; then + checkpath -q -f -o ${NOTIFY_PUSH_USER}:adm -m 0644 "${output_log}" + fi + + if [ -n "${has_errors}" ] ; then + eerror "" + eerror "Either set the variable above or specify NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE" + eerror "in /etc/conf.d/${SVCNAME}!" + return 1 + fi +} + +stop_post() { + local old_socket= + for old_socket in SOCKET_PATH METRICS_SOCKET_PATH ; do + old_socket=$(service_get_value ${old_socket}) + [ -n "${old_socket}" ] || continue + [ -e "${old_socket}" ] || continue + + ebegin "Cleaning up stale socket \"${old_socket}\"" + rm "${old_socket}" + eend $? + done + + return 0 +} diff --git a/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.service b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.service new file mode 100644 index 000000000000..27fc4e827df0 --- /dev/null +++ b/www-apps/nextcloud-notify_push/files/nextcloud-notify_push.service @@ -0,0 +1,20 @@ +[Unit] +Description=Push daemon for Nextcloud clients +After=mysqld.service +After=redis.service + +[Service] +Type=simple +Environment=NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE= +EnvironmentFile=-/etc/conf.d/nextcloud-notify_push +ExecStart=/usr/bin/nextcloud-notify_push $NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE +Restart=on-failure + +# Adjust user/group to match Nextcloud configuration. +# E.g. make sure that User is able to access NOTIFY_PUSH_NEXTCLOUD_CONFIGFILE +# when used; make sure that webserver is in Group when using sockets +User=nobody +Group=nobody + +[Install] +WantedBy=multi-user.target |