git: 6ce5dd4a530f - main - www/bunkerweb: Update to 1.6.15
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 22 Sep 2026 04:25:45 UTC
The branch main has been updated by joneum:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6ce5dd4a530fcbd05350e0f04883b7e8417aefa8
commit 6ce5dd4a530fcbd05350e0f04883b7e8417aefa8
Author: Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2026-09-22 04:24:54 +0000
Commit: Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-09-22 04:25:33 +0000
www/bunkerweb: Update to 1.6.15
Fixes an unauthenticated RCE in the worker API (GHSA-xcv3-gjwr-rwxw),
a WAF filename bypass via RFC 2231 encoding (GHSA-cvfx-2ffg-cqmj) and
three API permission flaws.
1.6.15 imports Configurator in the scheduler and the web UI, so add
common/gen to their PYTHONPATH. Run the Alembic migration before the
scheduler starts, upstream does this in its systemd wrapper, without
it the scheduler dies on the new is_draft column.
Ship a sample api.yml, the API refused to start without that file, and
bind it to localhost by default. Drop the ModSecurity directives from
the reverse proxy and web UI templates too, OpenResty has no such
module.
Changelog: https://github.com/bunkerity/bunkerweb/releases/tag/v1.6.15
Sponsored by: Netzkommune GmbH
---
www/bunkerweb/Makefile | 10 +++-
www/bunkerweb/distinfo | 6 +-
www/bunkerweb/files/api.yml.sample | 32 +++++++++++
www/bunkerweb/files/bunkerweb_api.in | 2 +-
www/bunkerweb/files/bunkerweb_scheduler.in | 10 +++-
www/bunkerweb/files/bunkerweb_ui.in | 2 +-
www/bunkerweb/files/freebsd-migrate.py | 67 ++++++++++++++++++++++
...rc_common_core_grpc_confs_server-http_grpc.conf | 12 ++--
...verseproxy_confs_server-http_reverse-proxy.conf | 16 ++++++
...ommon_core_ui_confs_default-server-http_ui.conf | 58 +++++++++++++++++++
www/bunkerweb/pkg-plist | 57 +++++++++++++++++-
11 files changed, 256 insertions(+), 16 deletions(-)
diff --git a/www/bunkerweb/Makefile b/www/bunkerweb/Makefile
index 3841f920ac8b..34461f646613 100644
--- a/www/bunkerweb/Makefile
+++ b/www/bunkerweb/Makefile
@@ -1,6 +1,6 @@
PORTNAME= bunkerweb
-DISTVERSION= 1.6.14
-PORTREVISION= 1
+DISTVERSION= 1.6.15
+PORTREVISION= 0
CATEGORIES= www security
MAINTAINER= joneum@FreeBSD.org
@@ -21,6 +21,7 @@ RUN_DEPENDS= openresty:www/openresty \
${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}alembic>0:databases/py-alembic@${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} \
@@ -85,4 +86,9 @@ post-install:
${CHMOD} 0755 ${STAGEDIR}${DATADIR}/common/gen/main.py
${CHMOD} 0755 ${STAGEDIR}${DATADIR}/common/gen/save_config.py
+ ${INSTALL_SCRIPT} ${FILESDIR}/freebsd-migrate.py \
+ ${STAGEDIR}${DATADIR}/common/db/
+
+ ${INSTALL_DATA} ${FILESDIR}/api.yml.sample ${STAGEDIR}${ETCDIR}/
+
.include <bsd.port.mk>
diff --git a/www/bunkerweb/distinfo b/www/bunkerweb/distinfo
index 1bf6662545bf..219b4ade54ca 100644
--- a/www/bunkerweb/distinfo
+++ b/www/bunkerweb/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1787930198
-SHA256 (bunkerity-bunkerweb-1.6.14-v1.6.14_GH0.tar.gz) = 5032adb180ea5e965ea8256dc875bb69a3c55711a003662475ed5e254e156fa0
-SIZE (bunkerity-bunkerweb-1.6.14-v1.6.14_GH0.tar.gz) = 100583982
+TIMESTAMP = 1790016449
+SHA256 (bunkerity-bunkerweb-1.6.15-v1.6.15_GH0.tar.gz) = 9f69a2d6cc649c6db5c79f6a93454cffa1b8677da96e73e2195eedc035f87515
+SIZE (bunkerity-bunkerweb-1.6.15-v1.6.15_GH0.tar.gz) = 101332028
diff --git a/www/bunkerweb/files/api.yml.sample b/www/bunkerweb/files/api.yml.sample
new file mode 100644
index 000000000000..2d4f8bdd0f85
--- /dev/null
+++ b/www/bunkerweb/files/api.yml.sample
@@ -0,0 +1,32 @@
+# BunkerWeb API configuration.
+#
+# Every key is optional, the file only has to exist for the API to start.
+# Environment variables take precedence over the values set here.
+# See https://docs.bunkerweb.io/1.6.15/api/ for the full list.
+#
+# The listen address is not read from this file, it comes from the
+# environment. The rc script binds to 127.0.0.1, override it in rc.conf
+# if the API has to be reachable from other instances:
+#
+# bunkerweb_api_env="API_LISTEN_ADDR=0.0.0.0 API_LISTEN_PORT=8888"
+
+# Bearer token for the /auth endpoint, unset means Biscuit tokens only.
+#API_TOKEN: ""
+
+# Clients allowed to reach the API. 127.0.0.1 is needed because the rc
+# script binds the API to localhost.
+#API_WHITELIST_ENABLED: "yes"
+API_WHITELIST_IPS: "127.0.0.1 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8"
+
+# Lifetime of issued Biscuit tokens in seconds, 0 disables expiry.
+#API_BISCUIT_TTL_SECONDS: 3600
+
+# Rate limiting.
+#API_RATE_LIMIT_ENABLED: "yes"
+#API_RATE_LIMIT: "100r/m"
+#API_RATE_LIMIT_AUTH: "10r/m"
+
+# Documentation endpoints.
+#API_DOCS_URL: "/docs"
+#API_REDOC_URL: "/redoc"
+#API_OPENAPI_URL: "/openapi.json"
diff --git a/www/bunkerweb/files/bunkerweb_api.in b/www/bunkerweb/files/bunkerweb_api.in
index 8dde469ac220..2983135e7aac 100644
--- a/www/bunkerweb/files/bunkerweb_api.in
+++ b/www/bunkerweb/files/bunkerweb_api.in
@@ -15,7 +15,7 @@ load_rc_config "$name"
: ${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:=""}
+: ${bunkerweb_api_env:="API_LISTEN_ADDR=127.0.0.1"}
pidfile="${bunkerweb_api_pidfile}"
command="/usr/sbin/daemon"
diff --git a/www/bunkerweb/files/bunkerweb_scheduler.in b/www/bunkerweb/files/bunkerweb_scheduler.in
index 903cee1697f6..ef171176c841 100644
--- a/www/bunkerweb/files/bunkerweb_scheduler.in
+++ b/www/bunkerweb/files/bunkerweb_scheduler.in
@@ -12,11 +12,14 @@ rcvar="bunkerweb_scheduler_enable"
load_rc_config "$name"
: ${bunkerweb_scheduler_enable:="NO"}
+: ${bunkerweb_scheduler_database_uri:="sqlite:////var/lib/bunkerweb/db.sqlite3"}
+
+_bunkerweb_pythonpath="/usr/local/share/bunkerweb/common/gen:/usr/local/share/bunkerweb/common/utils:/usr/local/share/bunkerweb/common/db:/usr/local/share/bunkerweb/common/api:/usr/local/share/bunkerweb/deps/python"
pidfile="/var/run/${name}.pid"
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 %%PREFIX%%/bin/%%PYTHON_VERSION%% /usr/local/share/bunkerweb/scheduler/main.py"
+command_args="-f -p ${pidfile} /usr/bin/env PYTHONPATH=${_bunkerweb_pythonpath} %%PREFIX%%/bin/%%PYTHON_VERSION%% /usr/local/share/bunkerweb/scheduler/main.py"
bunkerweb_scheduler_precmd()
{
@@ -52,6 +55,11 @@ bunkerweb_scheduler_precmd()
chown bunkerweb:bunkerweb /var/run/bunkerweb
chown -R bunkerweb:bunkerweb /var/log/bunkerweb
+
+ # Upstream migrates the database from its systemd wrapper, which
+ # FreeBSD does not use, so do it here before the scheduler starts.
+ env PYTHONPATH="${_bunkerweb_pythonpath}" DATABASE_URI="${bunkerweb_scheduler_database_uri}" \
+ %%PREFIX%%/bin/%%PYTHON_VERSION%% /usr/local/share/bunkerweb/common/db/freebsd-migrate.py
}
start_precmd="bunkerweb_scheduler_precmd"
diff --git a/www/bunkerweb/files/bunkerweb_ui.in b/www/bunkerweb/files/bunkerweb_ui.in
index 99234c094f61..378b225cb2a6 100644
--- a/www/bunkerweb/files/bunkerweb_ui.in
+++ b/www/bunkerweb/files/bunkerweb_ui.in
@@ -17,7 +17,7 @@ load_rc_config $name
pidfile="${bunkerweb_ui_pidfile}"
command="/usr/sbin/daemon"
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"
+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/gen:/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"
diff --git a/www/bunkerweb/files/freebsd-migrate.py b/www/bunkerweb/files/freebsd-migrate.py
new file mode 100644
index 000000000000..885d299bc5c5
--- /dev/null
+++ b/www/bunkerweb/files/freebsd-migrate.py
@@ -0,0 +1,67 @@
+"""Bring the BunkerWeb database schema up to the installed version.
+
+Upstream runs the migration from its systemd wrapper, which FreeBSD does not
+use, so the scheduler rc script calls this script before starting.
+"""
+
+from os import environ
+from pathlib import Path
+from subprocess import run
+from sys import executable, exit, stderr
+
+import sqlalchemy as sa
+
+ALEMBIC = Path(__file__).resolve().parent / "alembic"
+DATADIR = Path(__file__).resolve().parents[2]
+INI = Path("/var/lib/bunkerweb/alembic.ini")
+URI = environ.get("DATABASE_URI") or "sqlite:////var/lib/bunkerweb/db.sqlite3"
+
+
+def alembic(*args):
+ return run([executable, "-m", "alembic", "-c", str(INI), *args], cwd=ALEMBIC, capture_output=True, text=True)
+
+
+def main():
+ installed = (DATADIR / "VERSION").read_text().strip()
+ engine = sa.create_engine(URI)
+ tables = sa.inspect(engine).get_table_names()
+ if "bw_metadata" not in tables:
+ return 0
+
+ with engine.connect() as conn:
+ rows = conn.execute(sa.text("SELECT version FROM bw_metadata WHERE id = 1"))
+ current = next(iter(rows))[0]
+ if current in (installed, "dev", "testing"):
+ return 0
+
+ dbtype = URI.split(":", 1)[0].split("+", 1)[0]
+ INI.parent.mkdir(parents=True, exist_ok=True)
+ lines = []
+ for line in (ALEMBIC / "alembic.ini").read_text().splitlines():
+ if line.startswith("version_locations"):
+ line = "version_locations = " + dbtype + "_versions"
+ lines.append(line)
+ INI.write_text(chr(10).join(lines) + chr(10))
+
+ if "alembic_version" not in tables:
+ normalized = current.replace(".", "_").replace("-", "_").replace("~", "_")
+ pattern = "*_upgrade_to_version_" + normalized + ".py"
+ matches = sorted((ALEMBIC / (dbtype + "_versions")).glob(pattern))
+ if not matches:
+ print("no migration file for database version " + current, file=stderr)
+ return 1
+ stamped = alembic("stamp", matches[0].name.split("_", 1)[0])
+ if stamped.returncode != 0:
+ print(stamped.stderr.strip(), file=stderr)
+ return 1
+
+ upgraded = alembic("upgrade", "head")
+ if upgraded.returncode != 0:
+ print(upgraded.stderr.strip(), file=stderr)
+ return 1
+
+ print("database migrated from " + current + " to " + installed)
+ return 0
+
+
+exit(main())
diff --git a/www/bunkerweb/files/patch-src_common_core_grpc_confs_server-http_grpc.conf b/www/bunkerweb/files/patch-src_common_core_grpc_confs_server-http_grpc.conf
index 1039e675c956..f59f15528cb6 100644
--- a/www/bunkerweb/files/patch-src_common_core_grpc_confs_server-http_grpc.conf
+++ b/www/bunkerweb/files/patch-src_common_core_grpc_confs_server-http_grpc.conf
@@ -1,10 +1,10 @@
---- src/common/core/grpc/confs/server-http/grpc.conf.orig 2026-05-10 11:05:38 UTC
+--- src/common/core/grpc/confs/server-http/grpc.conf.orig 2026-09-21 08:05:39 UTC
+++ src/common/core/grpc/confs/server-http/grpc.conf
-@@ -40,7 +40,6 @@ location {{ url }} {
- {% set includes = all[k.replace("HOST", "INCLUDES")] if k.replace("HOST", "INCLUDES") in all else "" %}
- location {{ url }} {
+@@ -98,7 +98,6 @@
+ location {% if url_modifier %}{{ url_modifier }} {% endif %}"{{ quoted_url }}" {
{% if USE_MODSECURITY == "yes" %}
+ # ModSecurity does not reliably support gRPC traffic patterns, it is always disabled on gRPC locations.
- modsecurity off;
{% endif %}
- set $grpc_backend{{ index }} "{{ host }}";
- grpc_pass $grpc_backend{{ index }};
+ {% if max_client_size != "" %}
+ client_max_body_size {{ max_client_size }};
diff --git a/www/bunkerweb/files/patch-src_common_core_reverseproxy_confs_server-http_reverse-proxy.conf b/www/bunkerweb/files/patch-src_common_core_reverseproxy_confs_server-http_reverse-proxy.conf
new file mode 100644
index 000000000000..b610e01a9df6
--- /dev/null
+++ b/www/bunkerweb/files/patch-src_common_core_reverseproxy_confs_server-http_reverse-proxy.conf
@@ -0,0 +1,16 @@
+--- src/common/core/reverseproxy/confs/server-http/reverse-proxy.conf.orig 2026-09-21 08:05:39 UTC
++++ src/common/core/reverseproxy/confs/server-http/reverse-proxy.conf
+@@ -130,13 +130,11 @@
+ location {% if url_modifier %}{{ url_modifier }} {% endif %}"{{ quoted_url }}" {
+ etag off;
+ {% if USE_MODSECURITY == "yes" and modsecurity_location == "no" %}
+- modsecurity off;
+ {% endif %}
+ {% if max_client_size != "" %}
+ client_max_body_size {{ max_client_size }};
+ {% if USE_MODSECURITY == "yes" and modsecurity_location != "no" %}
+ {% set max_client_size_bytes = (max_client_size[:-1]|int * {"k": 1024, "K": 1024, "m": 1048576, "M": 1048576, "g": 1073741824, "G": 1073741824}[max_client_size[-1]]) if max_client_size[-1] in "kKmMgG" else max_client_size|int %}
+- modsecurity_rules 'SecRequestBodyLimit {{ max_client_size_bytes }}';
+ {% endif %}
+ {% endif %}
+ set $backend{{ index }} "{{ host }}";
diff --git a/www/bunkerweb/files/patch-src_common_core_ui_confs_default-server-http_ui.conf b/www/bunkerweb/files/patch-src_common_core_ui_confs_default-server-http_ui.conf
new file mode 100644
index 000000000000..090c0d580a9a
--- /dev/null
+++ b/www/bunkerweb/files/patch-src_common_core_ui_confs_default-server-http_ui.conf
@@ -0,0 +1,58 @@
+--- src/common/core/ui/confs/default-server-http/ui.conf.orig 2026-09-21 08:05:39 UTC
++++ src/common/core/ui/confs/default-server-http/ui.conf
+@@ -35,7 +35,6 @@
+ # in http/ui.modsec-crs cannot match. Disable modsec on the UI proxy
+ # locations only — other defenses (limit, badbehavior, crowdsec, allowlists)
+ # still run via the BunkerWeb Lua pipeline.
+- modsecurity off;
+ proxy_pass $backendui;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+@@ -53,7 +52,6 @@
+ }
+
+ location = /login {
+- modsecurity off;
+ etag off;
+ add_header Last-Modified "";
+ proxy_pass $backendui;
+@@ -73,7 +71,6 @@
+ }
+
+ location = /logout {
+- modsecurity off;
+ etag off;
+ add_header Last-Modified "";
+ proxy_pass $backendui;
+@@ -94,7 +91,6 @@
+
+ # Serve CSS, Fonts, Images, JavaScript and Libs without modifying the response body
+ location ~ ^/setup/(css|fonts|img|js|libs|locales)(.*)$ {
+- modsecurity off;
+ # Capture the asset type and the remaining path
+ # Example: /setup/js/app.js -> /js/app.js
+ proxy_pass $backendui/$1$2;
+@@ -122,7 +118,6 @@
+ }
+
+ location /setup {
+- modsecurity off;
+ etag off;
+ add_header Last-Modified "";
+ proxy_pass $backendui;
+@@ -171,7 +166,6 @@
+ }
+
+ location /setup/loading {
+- modsecurity off;
+ etag off;
+ add_header Last-Modified "";
+ proxy_pass $backendui;
+@@ -220,7 +214,6 @@
+ }
+
+ location /setup/check {
+- modsecurity off;
+ etag off;
+ add_header Last-Modified "";
+ add_header 'Access-Control-Allow-Origin' '*' always;
diff --git a/www/bunkerweb/pkg-plist b/www/bunkerweb/pkg-plist
index b2fdc4d231eb..d0fea5224053 100644
--- a/www/bunkerweb/pkg-plist
+++ b/www/bunkerweb/pkg-plist
@@ -19,6 +19,7 @@
%%DATADIR%%/all-in-one/supervisor.d/autoconf.ini
%%DATADIR%%/all-in-one/supervisor.d/bunkerweb.ini
%%DATADIR%%/all-in-one/supervisor.d/crowdsec.ini
+%%DATADIR%%/all-in-one/supervisor.d/logrotate.ini
%%DATADIR%%/all-in-one/supervisor.d/logstream.ini
%%DATADIR%%/all-in-one/supervisor.d/redis.ini
%%DATADIR%%/all-in-one/supervisor.d/scheduler.ini
@@ -44,6 +45,7 @@
%%DATADIR%%/api/app/routers/cache.py
%%DATADIR%%/api/app/routers/configs.py
%%DATADIR%%/api/app/routers/core.py
+%%DATADIR%%/api/app/routers/crowdsec.py
%%DATADIR%%/api/app/routers/global_settings.py
%%DATADIR%%/api/app/routers/instances.py
%%DATADIR%%/api/app/routers/jobs.py
@@ -55,7 +57,6 @@
%%DATADIR%%/api/entrypoint.sh
%%DATADIR%%/api/requirements.in
%%DATADIR%%/api/requirements.txt
-%%DATADIR%%/api/tests/test_biscuit_run_limit.py
%%DATADIR%%/api/utils/__init__.py
%%DATADIR%%/api/utils/gunicorn.conf.py
%%DATADIR%%/api/utils/logger.py
@@ -76,6 +77,7 @@
%%DATADIR%%/bw/Dockerfile
%%DATADIR%%/bw/entrypoint.sh
%%DATADIR%%/bw/loading/index.html
+%%DATADIR%%/bw/lua/bunkerweb/acme.lua
%%DATADIR%%/bw/lua/bunkerweb/api.lua
%%DATADIR%%/bw/lua/bunkerweb/cachestore.lua
%%DATADIR%%/bw/lua/bunkerweb/clusterstore.lua
@@ -234,6 +236,7 @@
%%DATADIR%%/common/core/crowdsec/README.zh.md
%%DATADIR%%/common/core/crowdsec/cache_partition.lua
%%DATADIR%%/common/core/crowdsec/confs/http/crowdsec.conf
+%%DATADIR%%/common/core/crowdsec/control.lua
%%DATADIR%%/common/core/crowdsec/crowdsec.lua
%%DATADIR%%/common/core/crowdsec/jobs/crowdsec-conf.py
%%DATADIR%%/common/core/crowdsec/jobs/crowdsec_conf_utils.py
@@ -242,8 +245,10 @@
%%DATADIR%%/common/core/crowdsec/lib/bouncer.lua
%%DATADIR%%/common/core/crowdsec/lib/captcha.lua
%%DATADIR%%/common/core/crowdsec/lib/config.lua
+%%DATADIR%%/common/core/crowdsec/lib/decision_cache.lua
%%DATADIR%%/common/core/crowdsec/lib/flag.lua
%%DATADIR%%/common/core/crowdsec/lib/iputils.lua
+%%DATADIR%%/common/core/crowdsec/lib/stream_lock.lua
%%DATADIR%%/common/core/crowdsec/lib/template.lua
%%DATADIR%%/common/core/crowdsec/lib/url.lua
%%DATADIR%%/common/core/crowdsec/lib/utils.lua
@@ -301,6 +306,7 @@
%%DATADIR%%/common/core/grpc/README.md
%%DATADIR%%/common/core/grpc/README.zh.md
%%DATADIR%%/common/core/grpc/confs/server-http/grpc.conf
+%%DATADIR%%/common/core/grpc/jobs/grpc-trusted-cert.py
%%DATADIR%%/common/core/grpc/plugin.json
%%DATADIR%%/common/core/gzip/README.de.md
%%DATADIR%%/common/core/gzip/README.es.md
@@ -865,6 +871,7 @@
%%DATADIR%%/common/core/mtls/confs/server-http/mtls.conf
%%DATADIR%%/common/core/mtls/confs/server-stream/mtls.conf
%%DATADIR%%/common/core/mtls/jobs/client-cert.py
+%%DATADIR%%/common/core/mtls/misc/placeholder-ca.pem
%%DATADIR%%/common/core/mtls/mtls.lua
%%DATADIR%%/common/core/mtls/plugin.json
%%DATADIR%%/common/core/order.json
@@ -1003,6 +1010,7 @@
%%DATADIR%%/common/db/alembic/mariadb_versions/002e685396c1_upgrade_to_version_1_6_8_rc2.py
%%DATADIR%%/common/db/alembic/mariadb_versions/0229aafe5e96_upgrade_to_version_1_5_12.py
%%DATADIR%%/common/db/alembic/mariadb_versions/07406d0af7c0_upgrade_to_version_1_6_11.py
+%%DATADIR%%/common/db/alembic/mariadb_versions/087f746b707b_upgrade_to_version_1_6_15.py
%%DATADIR%%/common/db/alembic/mariadb_versions/0949ce7a3875_upgrade_to_version_1_5_8.py
%%DATADIR%%/common/db/alembic/mariadb_versions/0fe0711317f9_upgrade_to_version_1_6_12.py
%%DATADIR%%/common/db/alembic/mariadb_versions/166ec9cfef46_upgrade_to_version_1_6_5_rc3.py
@@ -1030,6 +1038,7 @@
%%DATADIR%%/common/db/alembic/mariadb_versions/522ba97eba84_upgrade_to_version_1_6_2_rc7.py
%%DATADIR%%/common/db/alembic/mariadb_versions/5412d3de3f3f_upgrade_to_version_1_6_13.py
%%DATADIR%%/common/db/alembic/mariadb_versions/5444767fb8e6_upgrade_to_version_1_6_11_rc1.py
+%%DATADIR%%/common/db/alembic/mariadb_versions/581b304b1118_upgrade_to_version_1_6_15_rc1.py
%%DATADIR%%/common/db/alembic/mariadb_versions/5ceb08f3ea45_upgrade_to_version_1_6_0.py
%%DATADIR%%/common/db/alembic/mariadb_versions/5db76033c2ab_upgrade_to_version_1_6_2_rc3.py
%%DATADIR%%/common/db/alembic/mariadb_versions/63ef1e83a086_upgrade_to_version_1_6_3_rc1.py
@@ -1065,6 +1074,8 @@
%%DATADIR%%/common/db/alembic/mariadb_versions/cb5750a9d1f7_upgrade_to_version_1_6_0_rc2.py
%%DATADIR%%/common/db/alembic/mariadb_versions/cc61497f1976_upgrade_to_version_1_5_1.py
%%DATADIR%%/common/db/alembic/mariadb_versions/ce73d5bafffd_upgrade_to_version_1_6_2_rc5.py
+%%DATADIR%%/common/db/alembic/mariadb_versions/d10f1615a003_upgrade_to_version_1_6_15_rc2.py
+%%DATADIR%%/common/db/alembic/mariadb_versions/d44fd8ddd0c5_upgrade_to_version_1_6_15_rc3.py
%%DATADIR%%/common/db/alembic/mariadb_versions/d4d8df48d14d_upgrade_to_version_1_5_5.py
%%DATADIR%%/common/db/alembic/mariadb_versions/d68c293ef7ab_upgrade_to_version_1_6_14_rc1.py
%%DATADIR%%/common/db/alembic/mariadb_versions/d8762250b263_upgrade_to_version_1_6_14_rc3.py
@@ -1107,8 +1118,10 @@
%%DATADIR%%/common/db/alembic/mysql_versions/75253944b270_upgrade_to_version_1_6_10_rc6.py
%%DATADIR%%/common/db/alembic/mysql_versions/7b000e03cdcd_upgrade_to_version_1_6_9_rc2.py
%%DATADIR%%/common/db/alembic/mysql_versions/7ff687d13019_upgrade_to_version_1_6_9_rc1.py
+%%DATADIR%%/common/db/alembic/mysql_versions/802a9e43a5d2_upgrade_to_version_1_6_15_rc3.py
%%DATADIR%%/common/db/alembic/mysql_versions/81a4439e7193_upgrade_to_version_1_6_10_rc4.py
%%DATADIR%%/common/db/alembic/mysql_versions/81db6b219029_upgrade_to_version_1_6_10_rc3.py
+%%DATADIR%%/common/db/alembic/mysql_versions/82bf69b29509_upgrade_to_version_1_6_15_rc1.py
%%DATADIR%%/common/db/alembic/mysql_versions/839424d81cf7_upgrade_to_version_1_6_0_beta.py
%%DATADIR%%/common/db/alembic/mysql_versions/85241481d5a4_upgrade_to_version_1_6_14.py
%%DATADIR%%/common/db/alembic/mysql_versions/88edf42fd04e_upgrade_to_version_1_6_11_rc1.py
@@ -1117,6 +1130,7 @@
%%DATADIR%%/common/db/alembic/mysql_versions/8c6516301ef6_upgrade_to_version_1_6_12.py
%%DATADIR%%/common/db/alembic/mysql_versions/8d546dcb3f14_upgrade_to_version_1_6_2_rc4.py
%%DATADIR%%/common/db/alembic/mysql_versions/960458c3e944_upgrade_to_version_1_6_1_rc2.py
+%%DATADIR%%/common/db/alembic/mysql_versions/9f5c8bc80fe0_upgrade_to_version_1_6_15.py
%%DATADIR%%/common/db/alembic/mysql_versions/9f917f5e76b3_upgrade_to_version_1_6_0.py
%%DATADIR%%/common/db/alembic/mysql_versions/9fe40a1e8f4d_upgrade_to_version_1_6_8.py
%%DATADIR%%/common/db/alembic/mysql_versions/a48eacc5e5b6_upgrade_to_version_1_6_11.py
@@ -1135,6 +1149,7 @@
%%DATADIR%%/common/db/alembic/mysql_versions/c6fcd4f6971d_upgrade_to_version_1_5_9.py
%%DATADIR%%/common/db/alembic/mysql_versions/cd5d566cc52d_upgrade_to_version_1_6_2_rc3.py
%%DATADIR%%/common/db/alembic/mysql_versions/cd7386afa422_upgrade_to_version_1_6_2_rc5.py
+%%DATADIR%%/common/db/alembic/mysql_versions/d10f1615a002_upgrade_to_version_1_6_15_rc2.py
%%DATADIR%%/common/db/alembic/mysql_versions/d133bc8ef96d_upgrade_to_version_1_6_8_rc2.py
%%DATADIR%%/common/db/alembic/mysql_versions/d2bb8a70b034_upgrade_to_version_1_6_10_rc2.py
%%DATADIR%%/common/db/alembic/mysql_versions/d7578fb6ec98_upgrade_to_version_1_6_9.py
@@ -1168,6 +1183,7 @@
%%DATADIR%%/common/db/alembic/postgresql_versions/1df628a38b78_upgrade_to_version_1_6_13_rc1.py
%%DATADIR%%/common/db/alembic/postgresql_versions/1e3b377594f6_upgrade_to_version_1_6_7.py
%%DATADIR%%/common/db/alembic/postgresql_versions/25255ccae247_upgrade_to_version_1_6_10_rc6.py
+%%DATADIR%%/common/db/alembic/postgresql_versions/292f91a16c0d_upgrade_to_version_1_6_15_rc1.py
%%DATADIR%%/common/db/alembic/postgresql_versions/3133d7320b63_upgrade_to_version_1_5_1.py
%%DATADIR%%/common/db/alembic/postgresql_versions/32500d8cf3b0_upgrade_to_version_1_6_2_rc2.py
%%DATADIR%%/common/db/alembic/postgresql_versions/32d89d02c8e5_upgrade_to_version_1_6_9_rc2.py
@@ -1203,6 +1219,7 @@
%%DATADIR%%/common/db/alembic/postgresql_versions/9cd5363ac925_upgrade_to_version_1_6_9_rc4.py
%%DATADIR%%/common/db/alembic/postgresql_versions/9dc610f067ed_upgrade_to_version_1_6_6_rc3.py
%%DATADIR%%/common/db/alembic/postgresql_versions/9f96ae876cdf_upgrade_to_version_1_6_6_rc2.py
+%%DATADIR%%/common/db/alembic/postgresql_versions/a46c619258a2_upgrade_to_version_1_6_15_rc3.py
%%DATADIR%%/common/db/alembic/postgresql_versions/a8efcf62aea1_upgrade_to_version_1_6_9.py
%%DATADIR%%/common/db/alembic/postgresql_versions/ac4c8572cc1f_upgrade_to_version_1_6_9_rc1.py
%%DATADIR%%/common/db/alembic/postgresql_versions/b2cc53a7208f_upgrade_to_version_1_6_12_rc2.py
@@ -1216,8 +1233,10 @@
%%DATADIR%%/common/db/alembic/postgresql_versions/c975711f7afa_upgrade_to_version_1_6_0_rc3.py
%%DATADIR%%/common/db/alembic/postgresql_versions/c9c2b1bb33d6_upgrade_to_version_1_6_8_rc3.py
%%DATADIR%%/common/db/alembic/postgresql_versions/cf17ba9f0d5f_upgrade_to_version_1_6_4.py
+%%DATADIR%%/common/db/alembic/postgresql_versions/d10f1615a004_upgrade_to_version_1_6_15_rc2.py
%%DATADIR%%/common/db/alembic/postgresql_versions/d15ee0d0f93a_upgrade_to_version_1_6_2_rc4.py
%%DATADIR%%/common/db/alembic/postgresql_versions/d15ff778dbeb_upgrade_to_version_1_6_10_rc5.py
+%%DATADIR%%/common/db/alembic/postgresql_versions/dafb358e2ae1_upgrade_to_version_1_6_15.py
%%DATADIR%%/common/db/alembic/postgresql_versions/dc32f5dabb70_upgrade_to_version_1_6_10.py
%%DATADIR%%/common/db/alembic/postgresql_versions/e4f3ef364f5c_upgrade_to_version_1_6_10_rc3.py
%%DATADIR%%/common/db/alembic/postgresql_versions/e9b703e3d747_upgrade_to_version_1_5_3.py
@@ -1244,6 +1263,7 @@
%%DATADIR%%/common/db/alembic/sqlite_versions/2e3e5668c409_upgrade_to_version_1_6_7_rc1.py
%%DATADIR%%/common/db/alembic/sqlite_versions/30862abba879_upgrade_to_version_1_6_10_rc7.py
%%DATADIR%%/common/db/alembic/sqlite_versions/38ff6a439525_upgrade_to_version_1_6_12_rc3.py
+%%DATADIR%%/common/db/alembic/sqlite_versions/447a2b82a6c7_upgrade_to_version_1_6_15_rc1.py
%%DATADIR%%/common/db/alembic/sqlite_versions/4d48b391ee8c_upgrade_to_version_1_6_10_rc6.py
%%DATADIR%%/common/db/alembic/sqlite_versions/4e98a08c5902_upgrade_to_version_1_6_2_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/4f7bdc32c662_upgrade_to_version_1_5_9.py
@@ -1264,6 +1284,7 @@
%%DATADIR%%/common/db/alembic/sqlite_versions/78db0feeb89a_upgrade_to_version_1_6_1.py
%%DATADIR%%/common/db/alembic/sqlite_versions/7a8df0c89512_upgrade_to_version_1_6_5_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/7ba2eb8412ef_upgrade_to_version_1_6_8_rc1.py
+%%DATADIR%%/common/db/alembic/sqlite_versions/7bdd2a9f3786_upgrade_to_version_1_6_15_rc3.py
%%DATADIR%%/common/db/alembic/sqlite_versions/7be1a99223e6_upgrade_to_version_1_6_4.py
%%DATADIR%%/common/db/alembic/sqlite_versions/81ef5f1e4bf2_upgrade_to_version_1_6_10_rc4.py
%%DATADIR%%/common/db/alembic/sqlite_versions/864a1dbd2430_upgrade_to_version_1_6_1_rc1.py
@@ -1274,6 +1295,7 @@
%%DATADIR%%/common/db/alembic/sqlite_versions/91859f8f75ad_upgrade_to_version_1_5_7.py
%%DATADIR%%/common/db/alembic/sqlite_versions/92038d1e365e_upgrade_to_version_1_6_0_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/927114675a7d_upgrade_to_version_1_6_0_rc4.py
+%%DATADIR%%/common/db/alembic/sqlite_versions/92cc379052ad_upgrade_to_version_1_6_15.py
%%DATADIR%%/common/db/alembic/sqlite_versions/940d4e056335_upgrade_to_version_1_6_3_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/9bf722264d33_upgrade_to_version_1_6_2_rc6.py
%%DATADIR%%/common/db/alembic/sqlite_versions/9c5dcacc541a_upgrade_to_version_1_6_10_rc5.py
@@ -1294,6 +1316,7 @@
%%DATADIR%%/common/db/alembic/sqlite_versions/c9586782cd77_upgrade_to_version_1_5_5.py
%%DATADIR%%/common/db/alembic/sqlite_versions/cc59051c313d_upgrade_to_version_1_6_3_rc1.py
%%DATADIR%%/common/db/alembic/sqlite_versions/ccba73ada551_upgrade_to_version_1_6_14_rc1.py
+%%DATADIR%%/common/db/alembic/sqlite_versions/d10f1615a001_upgrade_to_version_1_6_15_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/e2e2207cf9eb_upgrade_to_version_1_6_10_rc3.py
%%DATADIR%%/common/db/alembic/sqlite_versions/e677ecffa402_upgrade_to_version_1_6_13_rc1.py
%%DATADIR%%/common/db/alembic/sqlite_versions/eb3ca0f3f20c_upgrade_to_version_1_5_3.py
@@ -1305,6 +1328,7 @@
%%DATADIR%%/common/db/alembic/sqlite_versions/f8c0912c8f34_upgrade_to_version_1_6_12_rc2.py
%%DATADIR%%/common/db/alembic/sqlite_versions/f9c3d7b2dba8_upgrade_to_version_1_6_12.py
%%DATADIR%%/common/db/alembic/sqlite_versions/fd214d08928f_upgrade_to_version_1_6_5_rc3.py
+%%DATADIR%%/common/db/freebsd-migrate.py
%%DATADIR%%/common/db/model.py
%%DATADIR%%/common/db/requirements.arm.in
%%DATADIR%%/common/db/requirements.arm.txt
@@ -1328,11 +1352,16 @@
%%DATADIR%%/common/helpers/utils.sh
%%DATADIR%%/common/settings.json
%%DATADIR%%/common/utils/ApiCaller.py
+%%DATADIR%%/common/utils/CrowdSec.py
+%%DATADIR%%/common/utils/cache_restore.py
%%DATADIR%%/common/utils/certificate_validation.py
%%DATADIR%%/common/utils/common_utils.py
+%%DATADIR%%/common/utils/env_file.py
%%DATADIR%%/common/utils/jobs.py
%%DATADIR%%/common/utils/letsencrypt_consistency.py
%%DATADIR%%/common/utils/logger.py
+%%DATADIR%%/common/utils/mmdb.py
+%%DATADIR%%/common/utils/modsecurity_audit.py
%%DATADIR%%/common/utils/pip-hashes.sh
%%DATADIR%%/deps/deps.json
%%DATADIR%%/deps/init_deps.sh
@@ -1341,6 +1370,8 @@
%%DATADIR%%/deps/misc/ipmatcher.patch
%%DATADIR%%/deps/misc/lua-ffi-zlib.patch
%%DATADIR%%/deps/misc/lua-pack.Makefile
+%%DATADIR%%/deps/misc/lua-resty-redis-connector.patch
+%%DATADIR%%/deps/misc/mlcache-ipc-skip-evicted.patch
%%DATADIR%%/deps/misc/mmdb.patch
%%DATADIR%%/deps/misc/modsecurity-nginx-common.patch
%%DATADIR%%/deps/misc/modsecurity-nginx-config.patch
@@ -1744,9 +1775,15 @@
%%DATADIR%%/deps/src/libmaxminddb/dev-bin/valgrind-all.pl
%%DATADIR%%/deps/src/libmaxminddb/doc/libmaxminddb.md
%%DATADIR%%/deps/src/libmaxminddb/doc/mmdblookup.md
+%%DATADIR%%/deps/src/libmaxminddb/docs/assets/css/main.css
+%%DATADIR%%/deps/src/libmaxminddb/docs/hugo.toml
+%%DATADIR%%/deps/src/libmaxminddb/docs/layouts/404.html
+%%DATADIR%%/deps/src/libmaxminddb/docs/layouts/_default/_markup/render-heading.html
+%%DATADIR%%/deps/src/libmaxminddb/docs/layouts/_default/default.html
%%DATADIR%%/deps/src/libmaxminddb/include/maxminddb.h
%%DATADIR%%/deps/src/libmaxminddb/include/maxminddb_config.h.cmake.in
%%DATADIR%%/deps/src/libmaxminddb/include/maxminddb_config.h.in
+%%DATADIR%%/deps/src/libmaxminddb/lychee.toml
%%DATADIR%%/deps/src/libmaxminddb/mise.lock
%%DATADIR%%/deps/src/libmaxminddb/mise.toml
%%DATADIR%%/deps/src/libmaxminddb/src/Makefile.am
@@ -1768,6 +1805,7 @@
%%DATADIR%%/deps/src/libmaxminddb/t/data-pool-t.c
%%DATADIR%%/deps/src/libmaxminddb/t/data_entry_list_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/data_types_t.c
+%%DATADIR%%/deps/src/libmaxminddb/t/decoder_limits_t.pl
%%DATADIR%%/deps/src/libmaxminddb/t/double_close_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/dump_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/empty_container_metadata_t.c
@@ -1776,16 +1814,19 @@
%%DATADIR%%/deps/src/libmaxminddb/t/gai_error_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/get_value_pointer_bug_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/get_value_t.c
+%%DATADIR%%/deps/src/libmaxminddb/t/invalid_sockaddr_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/ipv4_start_cache_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/ipv6_lookup_in_ipv4_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/max_depth_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/maxminddb_test_helper.c
%%DATADIR%%/deps/src/libmaxminddb/t/maxminddb_test_helper.h
+%%DATADIR%%/deps/src/libmaxminddb/t/metadata_marker_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/metadata_pointers_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/metadata_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/mmdblookup_t.pl
%%DATADIR%%/deps/src/libmaxminddb/t/no_map_get_value_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/overflow_bounds_t.c
+%%DATADIR%%/deps/src/libmaxminddb/t/pointer_dos_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/read_node_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/threads_t.c
%%DATADIR%%/deps/src/libmaxminddb/t/version_t.c
@@ -2443,12 +2484,14 @@
%%DATADIR%%/deps/src/lua-resty-session/lib/resty/session/redis/sentinel.lua
%%DATADIR%%/deps/src/lua-resty-session/lib/resty/session/shm.lua
%%DATADIR%%/deps/src/lua-resty-session/lib/resty/session/utils.lua
-%%DATADIR%%/deps/src/lua-resty-session/lua-resty-session-4.1.5-1.rockspec
+%%DATADIR%%/deps/src/lua-resty-session/lua-resty-session-4.2.0-1.rockspec
%%DATADIR%%/deps/src/lua-resty-session/spec/01-utils_spec.lua
%%DATADIR%%/deps/src/lua-resty-session/spec/02-file-utils_spec.lua
%%DATADIR%%/deps/src/lua-resty-session/spec/03-session_spec.lua
%%DATADIR%%/deps/src/lua-resty-session/spec/04-storage-1_spec.lua
%%DATADIR%%/deps/src/lua-resty-session/spec/05-storage-2_spec.lua
+%%DATADIR%%/deps/src/lua-resty-session/spec/06-revocation-1_spec.lua
+%%DATADIR%%/deps/src/lua-resty-session/spec/07-revocation-2_spec.lua
%%DATADIR%%/deps/src/lua-resty-signal/.gitignore
%%DATADIR%%/deps/src/lua-resty-signal/.travis.yml
%%DATADIR%%/deps/src/lua-resty-signal/Makefile
@@ -7639,17 +7682,20 @@
%%DATADIR%%/ui/app/models/config.py
%%DATADIR%%/ui/app/models/instance.py
%%DATADIR%%/ui/app/models/models.py
+%%DATADIR%%/ui/app/models/resilient_session.py
%%DATADIR%%/ui/app/models/reverse_proxied.py
%%DATADIR%%/ui/app/models/safe_session_cache.py
%%DATADIR%%/ui/app/models/template.py
%%DATADIR%%/ui/app/models/totp.py
%%DATADIR%%/ui/app/models/ui_data.py
%%DATADIR%%/ui/app/models/ui_database.py
+%%DATADIR%%/ui/app/raw_drafts.py
%%DATADIR%%/ui/app/routes/__init__.py
%%DATADIR%%/ui/app/routes/about.py
%%DATADIR%%/ui/app/routes/bans.py
%%DATADIR%%/ui/app/routes/cache.py
%%DATADIR%%/ui/app/routes/configs.py
+%%DATADIR%%/ui/app/routes/crowdsec.py
%%DATADIR%%/ui/app/routes/global_settings.py
%%DATADIR%%/ui/app/routes/home.py
%%DATADIR%%/ui/app/routes/instances.py
@@ -7670,6 +7716,7 @@
%%DATADIR%%/ui/app/static/css/core.css
%%DATADIR%%/ui/app/static/css/main.css
%%DATADIR%%/ui/app/static/css/overrides.css
+%%DATADIR%%/ui/app/static/css/pages/crowdsec.css
%%DATADIR%%/ui/app/static/css/pages/home.css
%%DATADIR%%/ui/app/static/css/pages/login.css
%%DATADIR%%/ui/app/static/css/pages/logs.css
@@ -7715,6 +7762,7 @@
%%DATADIR%%/ui/app/static/img/brands/ace.png
%%DATADIR%%/ui/app/static/img/brands/apexcharts.png
%%DATADIR%%/ui/app/static/img/brands/bootstrap.png
+%%DATADIR%%/ui/app/static/img/brands/crowdsec.svg
%%DATADIR%%/ui/app/static/img/brands/datatables.png
%%DATADIR%%/ui/app/static/img/brands/flask.png
%%DATADIR%%/ui/app/static/img/brands/gunicorn.svg
@@ -8336,6 +8384,7 @@
%%DATADIR%%/ui/app/static/js/menu.js
%%DATADIR%%/ui/app/static/js/mode-modsecurity.js
%%DATADIR%%/ui/app/static/js/modules/certificate-validation.js
+%%DATADIR%%/ui/app/static/js/modules/raw-settings.js
%%DATADIR%%/ui/app/static/js/modules/setting_controls.js
%%DATADIR%%/ui/app/static/js/pages/ace-mode-bunkerweb_log.js
%%DATADIR%%/ui/app/static/js/pages/ace-mode-bunkerweb_settings.js
@@ -8344,6 +8393,7 @@
%%DATADIR%%/ui/app/static/js/pages/cache_view.js
%%DATADIR%%/ui/app/static/js/pages/config_edit.js
%%DATADIR%%/ui/app/static/js/pages/configs.js
+%%DATADIR%%/ui/app/static/js/pages/crowdsec.js
%%DATADIR%%/ui/app/static/js/pages/home.js
%%DATADIR%%/ui/app/static/js/pages/instances.js
%%DATADIR%%/ui/app/static/js/pages/jobs.js
@@ -8421,6 +8471,7 @@
%%DATADIR%%/ui/app/static/locales/es.json
%%DATADIR%%/ui/app/static/locales/fr.json
%%DATADIR%%/ui/app/static/locales/hi.json
+%%DATADIR%%/ui/app/static/locales/id.json
%%DATADIR%%/ui/app/static/locales/it.json
%%DATADIR%%/ui/app/static/locales/ko.json
%%DATADIR%%/ui/app/static/locales/pl.json
@@ -8440,6 +8491,7 @@
%%DATADIR%%/ui/app/templates/cache_view.html
%%DATADIR%%/ui/app/templates/config_edit.html
%%DATADIR%%/ui/app/templates/configs.html
+%%DATADIR%%/ui/app/templates/crowdsec.html
%%DATADIR%%/ui/app/templates/dashboard.html
%%DATADIR%%/ui/app/templates/flash.html
%%DATADIR%%/ui/app/templates/footer.html
@@ -8488,6 +8540,7 @@
%%DATADIR%%/ui/utils/gunicorn.conf.py
%%DATADIR%%/ui/utils/logger.py
%%DATADIR%%/ui/utils/tmp-gunicorn.conf.py
+@sample %%ETCDIR%%/api.yml.sample
@dir %%ETCDIR%%/plugins
@dir %%ETCDIR%%/pro/plugins
@dir(bunkerweb,bunkerweb,) /var/cache/bunkerweb/bunkernet