diff --git a/www/bunkerweb/Makefile b/www/bunkerweb/Makefile index b1ea16204bab..0106240a2296 100644 --- a/www/bunkerweb/Makefile +++ b/www/bunkerweb/Makefile @@ -1,85 +1,85 @@ PORTNAME= bunkerweb DISTVERSION= 1.6.13 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= www security MAINTAINER= joneum@FreeBSD.org COMMENT= Self-hosted web application firewall and security platform WWW= https://github.com/bunkerity/bunkerweb LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE.md USES= lua:51 python:3.11+,run shebangfix USE_GITHUB= yes GH_ACCOUNT= bunkerity GH_PROJECT= bunkerweb GH_TAGNAME= v${DISTVERSION} RUN_DEPENDS= openresty:www/openresty \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>0:devel/py-pydantic-settings@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}schedule>0:devel/py-schedule@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}user_agents>0:devel/py-user_agents@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>0:databases/py-sqlalchemy20@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pymysql>0:databases/py-pymysql@${PY_FLAVOR} \ ${LUA_MODLIBDIR}/cjson.so:devel/lua-cjson@${LUA_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}bcrypt>0:security/py-bcrypt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}biscuit-auth>0:security/py-biscuit-auth@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}passlib>0:security/py-passlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}docker>0:sysutils/py-docker@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}kubernetes>0:sysutils/py-kubernetes@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}defusedcsv>=3.0.0:devel/py-defusedcsv@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openpyxl>0:textproc/py-openpyxl@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}qrcode>0:textproc/py-qrcode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}regex>0:textproc/py-regex@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cachelib>0:www/py-cachelib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}fastapi>0:www/py-fastapi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask>0:www/py-flask@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Login>0:www/py-flask-login@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask-session>0:www/py-flask-session@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask_wtf>0:www/py-flask-wtf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gunicorn>0:www/py-gunicorn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}slowapi>0:www/py-slowapi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}uvicorn>0:www/py-uvicorn@${PY_FLAVOR} LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb USE_RC_SUBR= bunkerweb \ bunkerweb_api \ bunkerweb_scheduler \ bunkerweb_ui SHEBANG_GLOB= *.py *.sh USERS= bunkerweb GROUPS= bunkerweb NO_ARCH= yes NO_BUILD= yes DATADIR= ${PREFIX}/share/${PORTNAME} do-install: ${MKDIR} ${STAGEDIR}${DATADIR} (cd ${WRKSRC}/src && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) ${MKDIR} ${STAGEDIR}${PREFIX}/etc/${PORTNAME} ${MKDIR} ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/plugins ${MKDIR} ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/pro/plugins ${MKDIR} ${STAGEDIR}/var/cache/${PORTNAME} ${MKDIR} ${STAGEDIR}/var/cache/${PORTNAME}/bunkernet ${MKDIR} ${STAGEDIR}/var/lib/${PORTNAME} ${MKDIR} ${STAGEDIR}/var/log/${PORTNAME} post-install: ${FIND} ${STAGEDIR}${DATADIR} -type f -name '*.sh' -exec ${CHMOD} 0755 {} \; ${CHMOD} 0755 ${STAGEDIR}${DATADIR}/common/gen/main.py ${CHMOD} 0755 ${STAGEDIR}${DATADIR}/common/gen/save_config.py .include diff --git a/www/bunkerweb/files/bunkerweb_api.in b/www/bunkerweb/files/bunkerweb_api.in index a3df22de7e3b..8dde469ac220 100644 --- a/www/bunkerweb/files/bunkerweb_api.in +++ b/www/bunkerweb/files/bunkerweb_api.in @@ -1,33 +1,33 @@ #!/bin/sh # PROVIDE: bunkerweb_api # REQUIRE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name="bunkerweb_api" rcvar="${name}_enable" load_rc_config "$name" : ${bunkerweb_api_enable:="NO"} -: ${bunkerweb_api_python:="/usr/local/bin/python3.11"} +: ${bunkerweb_api_python:="%%PREFIX%%/bin/%%PYTHON_VERSION%%"} : ${bunkerweb_api_pidfile:="/var/run/${name}.pid"} : ${bunkerweb_api_logfile:="/var/log/bunkerweb/api.log"} : ${bunkerweb_api_env:=""} pidfile="${bunkerweb_api_pidfile}" command="/usr/sbin/daemon" procname="${bunkerweb_api_python}" command_args="-f -p ${pidfile} -o ${bunkerweb_api_logfile} /usr/bin/env ${bunkerweb_api_env} PYTHONPATH=/usr/local/share/bunkerweb/deps/python:/usr/local/share/bunkerweb/common/utils:/usr/local/share/bunkerweb/common/api:/usr/local/share/bunkerweb/api:/usr/local/share/bunkerweb/common/db ${bunkerweb_api_python} -m gunicorn --chdir /usr/local/share/bunkerweb/api --logger-class utils.logger.APILogger --config /usr/local/share/bunkerweb/api/utils/gunicorn.conf.py" start_precmd="${name}_prestart" bunkerweb_api_prestart() { /bin/mkdir -p /var/log/bunkerweb /var/run/bunkerweb /var/tmp/bunkerweb/api /var/lib/bunkerweb } run_rc_command "$1" diff --git a/www/bunkerweb/files/bunkerweb_scheduler.in b/www/bunkerweb/files/bunkerweb_scheduler.in index 69499ba16746..903cee1697f6 100644 --- a/www/bunkerweb/files/bunkerweb_scheduler.in +++ b/www/bunkerweb/files/bunkerweb_scheduler.in @@ -1,58 +1,59 @@ #!/bin/sh # PROVIDE: bunkerweb_scheduler # REQUIRE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name="bunkerweb_scheduler" rcvar="bunkerweb_scheduler_enable" load_rc_config "$name" : ${bunkerweb_scheduler_enable:="NO"} pidfile="/var/run/${name}.pid" -procname="/usr/local/bin/python3.11" +procname="%%PREFIX%%/bin/%%PYTHON_VERSION%%" command="/usr/sbin/daemon" -command_args="-f -p ${pidfile} /usr/bin/env PYTHONPATH=/usr/local/share/bunkerweb/common/utils:/usr/local/share/bunkerweb/common/db:/usr/local/share/bunkerweb/common/api:/usr/local/share/bunkerweb/deps/python /usr/local/bin/python3.11 /usr/local/share/bunkerweb/scheduler/main.py" +command_args="-f -p ${pidfile} /usr/bin/env PYTHONPATH=/usr/local/share/bunkerweb/common/utils:/usr/local/share/bunkerweb/common/db:/usr/local/share/bunkerweb/common/api:/usr/local/share/bunkerweb/deps/python %%PREFIX%%/bin/%%PYTHON_VERSION%% /usr/local/share/bunkerweb/scheduler/main.py" bunkerweb_scheduler_precmd() { mkdir -p /var/cache/bunkerweb/misc mkdir -p /usr/local/share/bunkerweb/misc - mkdir -p /var/log/bunkerweb + mkdir -p /var/log/bunkerweb /var/run/bunkerweb if [ ! -f /var/cache/bunkerweb/misc/default-server-cert.pem ] || \ [ ! -f /var/cache/bunkerweb/misc/default-server-cert.key ]; then /usr/bin/openssl req -x509 -nodes -newkey rsa:2048 \ -days 3650 \ -subj "/CN=localhost" \ -keyout /var/cache/bunkerweb/misc/default-server-cert.key \ -out /var/cache/bunkerweb/misc/default-server-cert.pem >/dev/null 2>&1 fi if [ ! -f /usr/local/share/bunkerweb/misc/root-ca.pem ] || \ [ ! -f /usr/local/share/bunkerweb/misc/root-ca.key ]; then /usr/bin/openssl req -x509 -nodes -newkey rsa:2048 \ -days 3650 \ -subj "/CN=BunkerWeb Root CA" \ -keyout /usr/local/share/bunkerweb/misc/root-ca.key \ -out /usr/local/share/bunkerweb/misc/root-ca.pem >/dev/null 2>&1 fi chown -R bunkerweb:bunkerweb /var/cache/bunkerweb chmod 600 /var/cache/bunkerweb/misc/default-server-cert.key chmod 644 /var/cache/bunkerweb/misc/default-server-cert.pem chown root:bunkerweb /usr/local/share/bunkerweb/misc/root-ca.key /usr/local/share/bunkerweb/misc/root-ca.pem chmod 640 /usr/local/share/bunkerweb/misc/root-ca.key chmod 644 /usr/local/share/bunkerweb/misc/root-ca.pem + chown bunkerweb:bunkerweb /var/run/bunkerweb chown -R bunkerweb:bunkerweb /var/log/bunkerweb } start_precmd="bunkerweb_scheduler_precmd" run_rc_command "$1" diff --git a/www/bunkerweb/files/bunkerweb_ui.in b/www/bunkerweb/files/bunkerweb_ui.in index 46c6b6e84059..99234c094f61 100644 --- a/www/bunkerweb/files/bunkerweb_ui.in +++ b/www/bunkerweb/files/bunkerweb_ui.in @@ -1,29 +1,29 @@ #!/bin/sh # PROVIDE: bunkerweb_ui # REQUIRE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name="bunkerweb_ui" rcvar="bunkerweb_ui_enable" load_rc_config $name : ${bunkerweb_ui_enable:="NO"} : ${bunkerweb_ui_pidfile:="/var/run/${name}.pid"} : ${bunkerweb_ui_logfile:="/var/log/bunkerweb/ui.log"} pidfile="${bunkerweb_ui_pidfile}" command="/usr/sbin/daemon" -procname="/usr/local/bin/python3.11" +procname="%%PREFIX%%/bin/%%PYTHON_VERSION%%" command_args="-f -p ${pidfile} -o ${bunkerweb_ui_logfile} /usr/bin/env ENABLE_HEALTHCHECK=yes LISTEN_ADDR=0.0.0.0 LISTEN_PORT=7000 PYTHONPATH=/usr/local/share/bunkerweb/ui:/usr/local/share/bunkerweb/common/utils:/usr/local/share/bunkerweb/common/db:/usr/local/share/bunkerweb/common/api /usr/local/bin/gunicorn --bind 0.0.0.0:7000 -c /usr/local/share/bunkerweb/ui/utils/gunicorn.conf.py main:app" start_precmd="${name}_prestart" bunkerweb_ui_prestart() { /bin/mkdir -p /var/log/bunkerweb /var/run/bunkerweb } run_rc_command "$1"