[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit * Migrating jails to blueprints, first steps. Tested Working: - Transmission - Lidarr - Sonarr - Radarr fix lidarr config (+10 squashed commit) Squashed commit: [5f14653] always link ports folders [f18f2f0] Optional (blueprint) ports mount Fixes #89 [96ef7e7] chmod all the things [129e707] same mistake... again... [e1596dc] missing reference [6da3567] Forgot one reference [d78b5b6] Update wiki.yml [cecc53a] Update filecheck.yml [5244abd] basic settings changed. More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb [6568e92] jails -> blueprints * Added Tested Working: - KMS - Plex - Tautulli - Organizr - InfluxDB - MariaDB Many squashed small fixes included: Make *.rc executable (+13 squashed commit) Squashed commit: [b28aa83] use .rc for rc.d config files [e940a48] some mariadb cleanup [dc27aff] testing another way [83bd91b] Mariadb root password alter instead of update, initial config for unifi [0ca3074] some light config cleanup [a0d4352] also remove database from influxdb example config (db should be created when required) [2c218cc] Prepare influxdb and remove unneeded content [1b34109] more shellcheck fixups [c96566c] Some shellcheck cleanup [8969ca7] bitwarden mostly done, some work on nextcloud and unifi [7f89bfa] initial mariadb patch [dd7e85f] missed one problem [f814cb7] Initial pseudo-compatibility patch for unifi * Enable Bitwarden support and some small fixes/tweaks Fixes #95 more bugs and typo's (+3 squashed commit) Squashed commit: [3b5213e] Bitwarden not correctly installing db [b7438a5] yeah thats not gonna cut it... >.< [e7987c2] some slight bitwarden tweaks * Enable Unifi support and some small fixes/tweaks small unifi cleanup. Unifi is working (+3 squashed commit) Squashed commit: [d906d2d] chmod unifi [545e999] Add extra sanity, remove unneeded variables from example [b8c0b24] Some small Unifi Tweaks * Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem Fixes #96 Fixes #97 Fixes #98 some bloat and syntax fixes (+5 squashed commit) Squashed commit: [78f6428] Some more nextcloud cleanup and tweaks - combines multiple variables for cert system selection (Fixes #98 ) - Default to self signed cert - Force manual admin password [7cacae4] slight fixes [3d81cda] More cleanup [50496cc] small mariadb fix and more nextcloud cleanup [c1b2c20] Cleaning nextcloud - Remove external DB (Fixes #97 ) - Remove Postgresql (Fixes #96 ) - Some preparation for blueprint * Nextcloud done and.. another... (+5 squashed commit) Squashed commit: [c65751b] caddy not installed right. [e5da66b] more fixes [a33300e] Damnit, two typo's same scentence [4292a7a] another typo [1b820cf] typo and example hotfix * Introduce version checking for config file
This commit is contained in:
committed by
GitHub
parent
66e997069a
commit
dbfbd489fa
64
blueprints/unifi/includes/rc/mongod.rc
Executable file
64
blueprints/unifi/includes/rc/mongod.rc
Executable file
@ -0,0 +1,64 @@
|
||||
#!/bin/sh
|
||||
# shellcheck disable=SC1091,SC2034,SC2223,SC2154,SC1090,SC2046,SC2086,SC2155,SC2181,SC2006
|
||||
|
||||
# PROVIDE: mongod
|
||||
# REQUIRE: NETWORK ldconfig
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# mongod_enable (bool): Set to "NO" by default.
|
||||
# Set it to "YES" to enable mongod.
|
||||
# mongod_limits (bool): Set to "NO" by default.
|
||||
# Set it to yes to run `limits -e -U mongodb`
|
||||
# just before mongod starts.
|
||||
# mongod_dbpath (str): Default to "/var/db/mongodb"
|
||||
# Base database directory.
|
||||
# mongod_flags (str): Custom additional arguments to be passed to mongod.
|
||||
# Default to "--logpath ${mongod_dbpath}/mongod.log --logappend".
|
||||
# mongod_config (str): Default to "/usr/local/etc/mongodb.conf"
|
||||
# Path to config file
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="mongod"
|
||||
rcvar=mongod_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${mongod_enable="NO"}
|
||||
: ${mongod_limits="NO"}
|
||||
: ${mongod_dbpath="/config/mongodb"}
|
||||
: ${mongod_flags="--logpath ${mongod_dbpath}/mongod.log --logappend --setParameter=disabledSecureAllocatorDomains=\*"}
|
||||
: ${mongod_user="mongodb"}
|
||||
: ${mongod_group="mongodb"}
|
||||
: ${mongod_config="/usr/local/etc/mongodb.conf"}
|
||||
|
||||
pidfile="${mongod_dbpath}/mongod.lock"
|
||||
command=/usr/local/bin/${name}
|
||||
command_args="--config $mongod_config --dbpath $mongod_dbpath --fork >/dev/null 2>/dev/null"
|
||||
start_precmd="${name}_prestart"
|
||||
|
||||
mongod_create_dbpath()
|
||||
{
|
||||
mkdir "${mongod_dbpath}" >/dev/null 2>/dev/null
|
||||
[ $? -eq 0 ] && chown -R "${mongod_user}":"${mongod_group}" "${mongod_dbpath}"
|
||||
}
|
||||
|
||||
mongod_prestart()
|
||||
{
|
||||
if [ ! -d "${mongod_dbpath}" ]; then
|
||||
mongod_create_dbpath || return 1
|
||||
fi
|
||||
if checkyesno mongod_limits; then
|
||||
# TODO check this and clean this up
|
||||
# Shellcheck disable=SC2046,SC2006
|
||||
eval `/usr/bin/limits -e -U ${mongod_user}` 2>/dev/null
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
87
blueprints/unifi/includes/rc/unifi.rc
Executable file
87
blueprints/unifi/includes/rc/unifi.rc
Executable file
@ -0,0 +1,87 @@
|
||||
#!/bin/sh
|
||||
# shellcheck disable=SC1091,SC2034,SC2223,SC2154,SC1090,SC2046,SC2086,SC2155,SC2237
|
||||
#
|
||||
# Created by: Mark Felder <feld@FreeBSD.org>
|
||||
# $FreeBSD: branches/2020Q2/net-mgmt/unifi5/files/unifi.in 512281 2019-09-18 17:37:59Z feld $
|
||||
#
|
||||
|
||||
# PROVIDE: unifi
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
|
||||
#
|
||||
# Add the following line to /etc/rc.conf to enable `unifi':
|
||||
#
|
||||
# unifi_enable="YES"
|
||||
#
|
||||
# Other configuration settings for unifi that can be set in /etc/rc.conf:
|
||||
#
|
||||
# unifi_user (str)
|
||||
# This is the user that unifi runs as
|
||||
# Set to unifi by default
|
||||
#
|
||||
# unifi_group (str)
|
||||
# This is the group that unifi runs as
|
||||
# Set to unifi by default
|
||||
#
|
||||
# unifi_chdir (str)
|
||||
# This is the directory that unifi chdirs into before starting
|
||||
# Set to /usr/local/share/java/unifi by default
|
||||
#
|
||||
# unifi_java_home (str)
|
||||
# The path to the base directory for the Java to use to run unifi
|
||||
# Defaults to /usr/local/openjdk8
|
||||
#
|
||||
# unifi_javaflags (str)
|
||||
# Flags passed to Java to run unifi
|
||||
# Set to "-Djava.awt.headless=true -Xmx1024M" by default
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
name=unifi
|
||||
|
||||
rcvar=unifi_enable
|
||||
load_rc_config ${name}
|
||||
|
||||
: ${unifi_enable:=NO}
|
||||
: ${unifi_user:=unifi}
|
||||
: ${unifi_group:=unifi}
|
||||
: ${unifi_chdir=/config/controller/unifi}
|
||||
: ${unifi_java_home=/usr/local/openjdk8}
|
||||
: ${unifi_javaflags="-Djava.awt.headless=true -Xmx1024M"}
|
||||
|
||||
pidfile="/var/run/unifi/${name}.pid"
|
||||
procname=${unifi_java_home}/bin/java
|
||||
command=/usr/sbin/daemon
|
||||
command_args="-f -p ${pidfile} ${unifi_java_home}/bin/java ${unifi_javaflags} com.ubnt.ace.Launcher start"
|
||||
start_precmd=start_precmd
|
||||
stop_precmd=stop_precmd
|
||||
stop_postcmd=stop_postcmd
|
||||
|
||||
export CLASSPATH=$(echo ${unifi_chdir}/lib/*.jar | tr ' ' ':')
|
||||
|
||||
start_precmd()
|
||||
{
|
||||
if [ ! -e /var/run/unifi ] ; then
|
||||
install -d -o unifi -g unifi /var/run/unifi;
|
||||
fi
|
||||
}
|
||||
|
||||
stop_precmd()
|
||||
{
|
||||
if [ -r ${pidfile} ]; then
|
||||
_UNIFIPID=$(check_pidfile ${pidfile} ${procname})
|
||||
export _UNIFI_CHILDREN=$(pgrep -P ${_UNIFIPID})
|
||||
fi
|
||||
}
|
||||
|
||||
stop_postcmd()
|
||||
{
|
||||
if ! [ -z ${_UNIFI_CHILDREN} ]; then
|
||||
echo "Cleaning up leftover child processes."
|
||||
kill $sig_stop ${_UNIFI_CHILDREN}
|
||||
wait_for_pids ${_UNIFI_CHILDREN}
|
||||
fi
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
36
blueprints/unifi/includes/rc/unifi_poller.rc
Executable file
36
blueprints/unifi/includes/rc/unifi_poller.rc
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
# shellcheck disable=SC1091,SC2034,SC2223,SC2154,SC1090,SC2046
|
||||
#
|
||||
# FreeBSD rc.d startup script for unifi-poller.
|
||||
#
|
||||
# PROVIDE: unifi-poller
|
||||
# REQUIRE: networking syslog
|
||||
# KEYWORD:
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="unifi_poller"
|
||||
real_name="unifi-poller"
|
||||
rcvar="unifi_poller_enable"
|
||||
unifi_poller_command="/usr/local/bin/${real_name}"
|
||||
unifi_poller_user="nobody"
|
||||
unifi_poller_config="/config/up.conf"
|
||||
pidfile="/var/run/${real_name}/pid"
|
||||
|
||||
# This runs `daemon` as the `unifi_poller_user` user.
|
||||
command="/usr/sbin/daemon"
|
||||
command_args="-P ${pidfile} -r -t ${real_name} -T ${real_name} -l daemon ${unifi_poller_command} -c ${unifi_poller_config}"
|
||||
|
||||
load_rc_config ${name}
|
||||
: ${unifi_poller_enable:=no}
|
||||
|
||||
# Make a place for the pid file.
|
||||
mkdir -p $(dirname ${pidfile})
|
||||
chown -R $unifi_poller_user $(dirname ${pidfile})
|
||||
|
||||
# Suck in optional exported override variables.
|
||||
# ie. add something like the following to this file: export UP_POLLER_DEBUG=true
|
||||
[ -f "/usr/local/etc/defaults/${real_name}" ] && . "/usr/local/etc/defaults/${real_name}"
|
||||
|
||||
# Go!
|
||||
run_rc_command "$1"
|
Reference in New Issue
Block a user