mirror of
https://git.freebsd.org/ports.git
synced 2025-05-25 23:46:28 -04:00
* Introduce non-default SENTRY option. Kudos to Thomas Kurschel for some extra testing. Changelog: It contains many bugfixes/enhancements and the following new features: * VPN Tunnels * Event Rules * Virtual Machine Disks * Object Protection Rules * Improved Custom Field Visibility Controls * Improved Global Search Results * Table Column Registration for Plugins * Data Backend Registration for Plugins https://netbox.readthedocs.io/en/stable/release-notes/version-3.7/ MFH: No (feature release)
110 lines
3.7 KiB
Bash
110 lines
3.7 KiB
Bash
#!/bin/sh
|
|
|
|
# This sample rc script eliminate the need to use sysutils/py-supervisor to
|
|
# run NetBox as a system service. Only www/py-gunicorn is needed as a WSGI.
|
|
#
|
|
# Of course a working HTTP server like Apache/nginx is still required to make
|
|
# use of the gunicorn WSGI.
|
|
|
|
#
|
|
# PROVIDE: netbox
|
|
# REQUIRE: DAEMON
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add the following line to /etc/rc.conf.local or /etc/rc.conf
|
|
# to enable netbox:
|
|
#
|
|
# netbox_enable (bool): Set to NO by default.
|
|
# Set it to YES to enable netbox.
|
|
# netbox_use_config (bool): Set to NO by default.
|
|
# If set, read the configuration parameter from file defined in
|
|
# "netbox_config" instead using rc variables.
|
|
# netbox_config (str): Default to "%%LOCALBASE%%/etc/${name}.conf.py}"
|
|
# Config file for gunicorn's netbox config file
|
|
# netbox_command (str): Default to "%%LOCALBASE%%/bin/gunicorn"
|
|
# Path to gunicorn to run netbox
|
|
# netbox_bind (str): Default to "localhost:8001"
|
|
# Interface and port to bind to
|
|
# netbox_workers (int): Default to "5"
|
|
# Number of gunicorn workers
|
|
# netbox_threads (int): Default to "3"
|
|
# Number of worker threads per handling request
|
|
# netbox_timeout (int): Default to "120"
|
|
# Worker timeout for gunicorn
|
|
# netbox_max_requests (int): Default to "5000"
|
|
# Maximum number of requests a worker process will process before respawning
|
|
# netbox_max_requests_jitter (int): Default to "500"
|
|
# Maximum number jitter to add to "netbox_max_requests"
|
|
# netbox_extra_args (str): Not set by default
|
|
# Extra arguments that are passed to gunicorn
|
|
#
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="netbox"
|
|
rcvar=netbox_enable
|
|
netbox_path=%%DATADIR%%
|
|
extra_commands="upgrade"
|
|
|
|
load_rc_config $name
|
|
|
|
start_precmd="netbox_precmd"
|
|
upgrade_cmd="netbox_upgrade"
|
|
command=${netbox_program:-%%LOCALBASE%%/bin/gunicorn}
|
|
procname=${netbox_procname:-%%PYTHON_CMD%%}
|
|
netbox_chdir=${netbox_path}
|
|
pidfile=${netbox_pidfile:-/var/run/${name}/${name}.pid}
|
|
netbox_user=${netbox_user:-%%WWWOWN%%}
|
|
netbox_use_config=${netbox_use_config:-no}
|
|
netbox_config=${netbox_config:-%%LOCALBASE%%/etc/${name}.conf.py}
|
|
netbox_bind=${netbox_bind:-localhost:8001}
|
|
netbox_workers=${netbox_workers:-5}
|
|
netbox_threads=${netbox_threads:-3}
|
|
netbox_timeout=${netbox_timeout:-120}
|
|
netbox_max_requests=${netbox_max_requests:-5000}
|
|
netbox_max_requests_jitter=${netbox_max_requests_jitter:-500}
|
|
|
|
# Read settings from confguration file if set
|
|
if checkyesno netbox_use_config && [ -f "${netbox_config}" ]; then
|
|
command_args="${netbox_args} -D \
|
|
--log-syslog --log-syslog-prefix ${name} \
|
|
--log-syslog-to unix:///var/run/log#dgram \
|
|
--disable-redirect-access-to-syslog \
|
|
-p ${pidfile} --pythonpath ${netbox_path} \
|
|
-c ${netbox_config} \
|
|
netbox.wsgi"
|
|
else
|
|
command_args="${netbox_args} -D \
|
|
--log-syslog --log-syslog-prefix ${name} \
|
|
--log-syslog-to unix:///var/run/log#dgram \
|
|
--disable-redirect-access-to-syslog \
|
|
-p ${pidfile} --pythonpath ${netbox_path} \
|
|
-b ${netbox_bind} -w ${netbox_workers} --threads ${netbox_threads} -t ${netbox_timeout} \
|
|
--max-requests ${netbox_max_requests} --max-requests-jitter ${netbox_max_requests_jitter} \
|
|
${netbox_extra_args} \
|
|
netbox.wsgi"
|
|
fi
|
|
|
|
netbox_precmd()
|
|
{
|
|
install -d -o ${netbox_user} `dirname ${pidfile}`
|
|
}
|
|
|
|
netbox_upgrade()
|
|
{
|
|
if [ -f ${pidfile} ]; then
|
|
cd ${netbox_path}
|
|
%%PYTHON_CMD%% manage.py migrate
|
|
%%PYTHON_CMD%% manage.py trace_paths --no-input
|
|
%%LOCALBASE%%/bin/mkdocs build
|
|
%%PYTHON_CMD%% manage.py collectstatic --no-input
|
|
%%PYTHON_CMD%% manage.py remove_stale_contenttypes --no-input
|
|
%%PYTHON_CMD%% manage.py reindex --lazy
|
|
%%PYTHON_CMD%% manage.py clearsessions
|
|
echo "Please restart NetBox and the WSGI environment."
|
|
else
|
|
echo "NetBox is not running!"
|
|
fi
|
|
}
|
|
|
|
run_rc_command "$1"
|