Merge branch 'dev' into staging

This commit is contained in:
florian 2024-01-05 16:22:25 +01:00
commit 7e018e9843
No known key found for this signature in database
GPG key ID: 93EE47CC3D061500
492 changed files with 12769 additions and 11310 deletions

View file

@ -47,7 +47,7 @@ body:
label: BunkerWeb version
description: What version of BunkerWeb are you running?
placeholder: Version
value: 1.5.4
value: 1.5.5
validations:
required: true
- type: dropdown

View file

@ -35,12 +35,12 @@ jobs:
python -m pip install --no-cache-dir --require-hashes -r src/common/db/requirements.txt
echo "CODEQL_PYTHON=$(which python)" >> $GITHUB_ENV
- name: Initialize CodeQL
uses: github/codeql-action/init@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8
uses: github/codeql-action/init@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql.yml
setup-python-dependencies: false
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8
uses: github/codeql-action/analyze@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
with:
category: "/language:${{matrix.language}}"

View file

@ -84,7 +84,7 @@ jobs:
# Compute metadata
- name: Extract metadata
id: meta
uses: docker/metadata-action@31cebacef4805868f9ce9a0cb03ee36c32df2ac4 # v5.3.0
uses: docker/metadata-action@9dc751fe249ad99385a2583ee0d084c400eee04e # v5.4.0
with:
images: bunkerity/${{ inputs.IMAGE }}
# Build cached image
@ -115,7 +115,7 @@ jobs:
# Check OS vulnerabilities
- name: Check OS vulnerabilities
if: ${{ inputs.CACHE_SUFFIX != 'arm' }}
uses: aquasecurity/trivy-action@69cbbc0cbbf6a2b0bab8dcf0e9f2d7ead08e87e4 # master
uses: aquasecurity/trivy-action@d43c1f16c00cfd3978dde6c07f4bbcf9eb6993ca # v0.16.1
with:
vuln-type: os
skip-dirs: /root/.cargo

View file

@ -72,19 +72,19 @@ jobs:
# UI tests
tests-ui:
needs: [codeql, build-containers]
needs: [build-containers]
uses: ./.github/workflows/tests-ui.yml
with:
RELEASE: dev
tests-ui-linux:
needs: [codeql, build-packages]
needs: [build-packages]
uses: ./.github/workflows/tests-ui-linux.yml
with:
RELEASE: dev
# Core tests
prepare-tests-core:
needs: [codeql, build-containers, build-packages]
needs: [build-containers, build-packages]
runs-on: ubuntu-latest
steps:
- name: Checkout repository

View file

@ -23,7 +23,7 @@ jobs:
- name: Install chromium
run: sudo apt install chromium-browser
- name: Install node
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
with:
node-version: 18
- name: Install puppeteer
@ -32,7 +32,7 @@ jobs:
run: mkdocs serve & sleep 10
- name: Run pdf script
run: node docs/misc/pdf.js http://localhost:8000/print_page/ BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf 'BunkerWeb documentation v${{ inputs.VERSION }}'
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
with:
name: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf
path: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf

View file

@ -127,7 +127,7 @@ jobs:
scp -r root@arm:/root/package-${{ inputs.LINUX }} ./package-${{ inputs.LINUX }}
env:
LARCH: ${{ env.LARCH }}
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
with:
name: package-${{ inputs.LINUX }}-${{ env.LARCH }}
path: package-${{ inputs.LINUX }}/*.${{ inputs.PACKAGE }}
@ -135,7 +135,7 @@ jobs:
- name: Extract metadata
if: inputs.TEST == true
id: meta
uses: docker/metadata-action@31cebacef4805868f9ce9a0cb03ee36c32df2ac4 # v5.3.0
uses: docker/metadata-action@9dc751fe249ad99385a2583ee0d084c400eee04e # v5.4.0
with:
images: ghcr.io/bunkerity/${{ inputs.LINUX }}-tests:${{ inputs.RELEASE }}
- name: Build test image

View file

@ -63,7 +63,7 @@ jobs:
# Compute metadata
- name: Extract metadata
id: meta
uses: docker/metadata-action@31cebacef4805868f9ce9a0cb03ee36c32df2ac4 # v5.3.0
uses: docker/metadata-action@9dc751fe249ad99385a2583ee0d084c400eee04e # v5.4.0
with:
images: bunkerity/${{ inputs.IMAGE }}
# Build and push

View file

@ -19,11 +19,11 @@ jobs:
# Get PDF doc
- name: Get documentation
if: inputs.VERSION != 'testing'
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
with:
name: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf
# Create tag
- uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1
- uses: rickstaa/action-create-tag@a1c7777fcb2fee4f19b0f283ba888afa11678b72 # v1.7.2
name: Create tag
if: inputs.VERSION != 'testing'
with:
@ -31,7 +31,7 @@ jobs:
message: "v${{ inputs.VERSION }}"
force_push_tag: true
# Create tag
- uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1
- uses: rickstaa/action-create-tag@a1c7777fcb2fee4f19b0f283ba888afa11678b72 # v1.7.2
name: Create tag
if: inputs.VERSION == 'testing'
with:

View file

@ -42,18 +42,18 @@ jobs:
- name: Check out repository code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install ruby
uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0
uses: ruby/setup-ruby@360dc864d5da99d54fcb8e9148c14a84b90d3e88 # v1.165.1
with:
ruby-version: "3.0"
- name: Install packagecloud
run: gem install package_cloud
# Download packages
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
if: inputs.LINUX != 'el'
with:
name: package-${{ inputs.LINUX }}-${{ inputs.PACKAGE_ARCH }}
path: /tmp/${{ inputs.LINUX }}
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
if: inputs.LINUX == 'el'
with:
name: package-rhel-${{ inputs.PACKAGE_ARCH }}

View file

@ -25,6 +25,6 @@ jobs:
results_format: sarif
publish_results: true
- name: "Upload SARIF results to code scanning"
uses: github/codeql-action/upload-sarif@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8
uses: github/codeql-action/upload-sarif@012739e5082ff0c22ca6d6ab32e07c36df03c4a4 # v3.22.12
with:
sarif_file: results.sarif

View file

@ -31,11 +31,11 @@ jobs:
if: inputs.TYPE == 'k8s'
with:
version: "v1.28.2"
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
if: inputs.TYPE != 'k8s'
with:
python-version: "3.11"
python-version: "3.12"
- name: Install ansible
run: pip install --no-cache-dir --require-hashes -r misc/requirements-ansible.txt
if: inputs.TYPE != 'k8s'
@ -55,7 +55,7 @@ jobs:
if: always()
env:
SECRET_KEY: ${{ secrets.SECRET_KEY }}
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
if: always()
with:
name: tf-${{ inputs.TYPE }}

View file

@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install terraform
uses: hashicorp/setup-terraform@a1502cd9e758c50496cc9ac5308c4843bcd56d36 # v3.0.0
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
with:
name: tf-${{ inputs.TYPE }}
path: /tmp

View file

@ -43,7 +43,7 @@ jobs:
if: inputs.TYPE == 'swarm'
- name: Install test dependencies
run: pip3 install --no-cache-dir --require-hashes --no-deps -r tests/requirements.txt
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
with:
name: tf-k8s
path: /tmp

View file

@ -17,21 +17,23 @@ jobs:
# Prepare
- name: Checkout source code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
python-version: "3.11"
python-version: "3.12"
- name: Install Firefox manually and dependencies
run: |
sudo apt purge -y firefox
sudo apt update
sudo add-apt-repository ppa:mozillateam/ppa -y
sudo apt purge -y firefox
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
sudo apt update
sudo apt install --no-install-recommends -y openssl git nodejs tar bzip2 wget curl grep libx11-xcb1 libappindicator3-1 libasound2 libdbus-glib-1-2 libxtst6 libxt6 php-fpm unzip firefox
- name: Download geckodriver
uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0
@ -57,7 +59,7 @@ jobs:
container_id=$(docker create "ghcr.io/bunkerity/ubuntu-tests:${{ inputs.RELEASE }}")
docker cp "$container_id:/opt/bunkerweb_${{ inputs.RELEASE }}-1_amd64.deb" "/tmp/bunkerweb.deb"
docker rm "$container_id"
- name: Install BunkerWeb
- name: Install NGINX
run: |
sudo apt install -y gnupg2 ca-certificates lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
@ -93,7 +95,9 @@ jobs:
run: sudo apt install -fy /tmp/bunkerweb.deb
- name: Run tests
run: |
export MAKEFLAGS="-j $(nproc)"
pip install --no-cache-dir --ignore-installed --require-hashes -r src/deps/requirements-deps.txt
MAKEFLAGS="-j $(nproc)" find tests/core -name "requirements.txt" -exec pip install --no-cache-dir --require-hashes --no-deps -r {} \;
cd ./tests/core/${{ inputs.TEST }}
MAKEFLAGS="-j $(nproc)" find . -name "requirements.txt" -exec pip install --no-cache-dir --require-hashes --no-deps -r {} \;
sudo truncate -s 0 /var/log/bunkerweb/error.log
./test.sh "linux"

View file

@ -14,21 +14,23 @@ jobs:
# Prepare
- name: Checkout source code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
python-version: "3.11"
python-version: "3.12"
- name: Install Firefox manually and dependencies
run: |
sudo apt purge -y firefox
sudo apt update
sudo add-apt-repository ppa:mozillateam/ppa -y
sudo apt purge -y firefox
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
sudo apt update
sudo apt install --no-install-recommends -y openssl git nodejs tar bzip2 wget curl grep libx11-xcb1 libappindicator3-1 libasound2 libdbus-glib-1-2 libxtst6 libxt6 php-fpm unzip firefox
- name: Download geckodriver
uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0
@ -54,7 +56,7 @@ jobs:
container_id=$(docker create "ghcr.io/bunkerity/ubuntu-tests:${{ inputs.RELEASE }}")
docker cp "$container_id:/opt/bunkerweb_${{ inputs.RELEASE }}-1_amd64.deb" "/tmp/bunkerweb.deb"
docker rm "$container_id"
- name: Install BunkerWeb
- name: Install NGINX
run: |
sudo apt install -y gnupg2 ca-certificates lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
@ -72,35 +74,30 @@ jobs:
echo "127.0.0.1 www.example.com" | sudo tee -a /etc/hosts
echo "127.0.0.1 app1.example.com" | sudo tee -a /etc/hosts
# BunkerWeb
echo "SERVER_NAME=www.example.com" | sudo tee /etc/bunkerweb/variables.env
echo "SERVER_NAME=" | sudo tee /etc/bunkerweb/variables.env
echo "HTTP_PORT=80" | sudo tee -a /etc/bunkerweb/variables.env
echo "HTTPS_PORT=443" | sudo tee -a /etc/bunkerweb/variables.env
echo 'DNS_RESOLVERS=9.9.9.9 8.8.8.8 8.8.4.4' | sudo tee -a /etc/bunkerweb/variables.env
echo 'API_LISTEN_IP=127.0.0.1' | sudo tee -a /etc/bunkerweb/variables.env
echo "MULTISITE=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "LOG_LEVEL=info" | sudo tee -a /etc/bunkerweb/variables.env
echo "USE_BUNKERNET=no" | sudo tee -a /etc/bunkerweb/variables.env
echo "USE_BLACKLIST=no" | sudo tee -a /etc/bunkerweb/variables.env
echo "SEND_ANONYMOUS_REPORT=no" | sudo tee -a /etc/bunkerweb/variables.env
echo "DISABLE_DEFAULT_SERVER=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "USE_CLIENT_CACHE=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "USE_GZIP=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "DATASTORE_MEMORY_SIZE=384m" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_USE_UI=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_SERVE_FILES=no" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_USE_REVERSE_PROXY=yes" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_REVERSE_PROXY_URL=/admin" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_REVERSE_PROXY_HOST=http://127.0.0.1:7000" | sudo tee -a /etc/bunkerweb/variables.env
echo "www.example.com_INTERCEPTED_ERROR_CODES=400 405 413 429 500 501 502 503 504" | sudo tee -a /etc/bunkerweb/variables.env
echo "ADMIN_USERNAME=admin" | sudo tee /etc/bunkerweb/ui.env
echo "ADMIN_PASSWORD=S\$cr3tP@ssw0rd" | sudo tee -a /etc/bunkerweb/ui.env
echo "UI_HOST=http://127.0.0.1:7000" | sudo tee -a /etc/bunkerweb/variables.env
sudo touch /etc/bunkerweb/ui.env
sudo chown nginx:nginx /etc/bunkerweb/variables.env /etc/bunkerweb/ui.env
sudo chmod 777 /etc/bunkerweb/variables.env /etc/bunkerweb/ui.env
- name: Run tests
run: |
export MAKEFLAGS="-j $(nproc)"
pip install --no-cache-dir --ignore-installed --require-hashes -r src/deps/requirements-deps.txt
pip install --no-cache-dir --require-hashes -r tests/ui/requirements.txt
cd ./tests/ui
MAKEFLAGS="-j $(nproc)" find . -name "requirements.txt" -exec pip install --no-cache-dir --require-hashes --no-deps -r {} \;
touch test.txt
zip test.zip test.txt
rm test.txt

1
.gitignore vendored
View file

@ -6,3 +6,4 @@ env
node_modules
/src/ui/*.txt
.mypy_cache
.cache/

1
.gitleaksignore Normal file
View file

@ -0,0 +1 @@
src/ui/templates/profile.html:hashicorp-tf-password:343

View file

@ -1,6 +1,6 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
exclude: (^LICENSE.md$|^src/VERSION$|^src/(bw/misc/root-ca.pem$|deps/src/|common/core/modsecurity/files|ui/static/js/(editor/|utils/purify/|tsparticles\.bundle\.min\.js))|\.(svg|drawio|patch\d?|ascii|tf|tftpl)$)
exclude: (^LICENSE.md$|^src/VERSION$|^env/|^src/(bw/misc/root-ca.pem$|deps/src/|common/core/modsecurity/files|ui/static/js/(editor/|utils/purify/|tsparticles\.bundle\.min\.js))|\.(svg|drawio|patch\d?|ascii|tf|tftpl|key)$)
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: c4a0b883114b00d8d76b479c820ce7950211c99b # frozen: v4.5.0
@ -16,8 +16,8 @@ repos:
args: ["--allow-multiple-documents"]
- id: check-case-conflict
- repo: https://github.com/ambv/black
rev: 2a1c67e0b2f81df602ec1f6e7aeb030b9709dc7c # frozen: 23.11.0
- repo: https://github.com/psf/black
rev: ec91a2be3c44d88e1a3960a4937ad6ed3b63464e # frozen: 23.12.1
hooks:
- id: black
name: Black Python Formatter
@ -36,21 +36,21 @@ repos:
exclude: ^src/(bw/lua/middleclass.lua|common/core/antibot/captcha.lua)$
- repo: https://github.com/lunarmodules/luacheck
rev: ababb6d403d634eb74d2c541035e9ede966e710d # frozen: v1.1.1
rev: 418f48976c73be697fe64b0eba9ea9821ac9bca8 # frozen: v1.1.2
hooks:
- id: luacheck
exclude: ^src/(bw/lua/middleclass.lua|common/core/antibot/captcha.lua)$
args: ["--std", "min", "--codes", "--ranges", "--no-cache"]
- repo: https://github.com/pycqa/flake8
rev: 10f4af6dbcf93456ba7df762278ae61ba3120dc6 # frozen: 6.1.0
rev: 7d37d9032d0d161634be4554273c30efd4dea0b3 # frozen: 7.0.0
hooks:
- id: flake8
name: Flake8 Python Linter
args: ["--max-line-length=250", "--ignore=E266,E402,E722,W503"]
- repo: https://github.com/dosisod/refurb
rev: a25b5d6087bba1509f96654c583efcd7796452cd # frozen: v1.24.0
rev: a7c461fcfaa2ca3248d489cdf7fed8e2d4fd8520 # frozen: v1.26.0
hooks:
- id: refurb
name: Refurb Python Refactoring Tool

View file

@ -2,8 +2,23 @@
## v1.5.5 - YYYY/MM/DD
- [BUGFIX] Fix issues with the database when upgrading from version 1.5.3 and 1.5.4 to the most recent version
- [BUGFIX] Fix ModSecurity-nginx to make it work with brotli
- [BUGFIX] Remove certbot renew delay causing errors on k8s
- [BUGFIX] Fix missing custom modsec files when BW instances change
- [BUGFIX] Fix inconsistency on config changes when using Redis
- [FEATURE] Add Anonymous reporting feature
- [MISC] Updated ModSecurity to v3.0.11
- [FEATURE] Add support for fallback Referrer-Policies
- [FEATURE] Add profile page to web ui and the possibility to activate the 2FA
- [FEATURE] Add setting REVERSE_PROXY_INCLUDES to manually add "include" directives in the reverse proxies
- [FEATURE] Add support for Redis Sentinel
- [FEATURE] Add support for tls in Ingress definition
- [MISC] Fallback to default HTTPS certificate to prevent errors
- [MISC] Various internal improvements in LUA code
- [MISC] Check nginx configuration before reload
- [MISC] Updated Python Docker image to 3.12.1-alpine3.18 in Dockerfiles
- [MISC] Switch gunicorn worker_class back to gevent in web UI
- [DEPS] Updated ModSecurity to v3.0.11
## v1.5.4 - 2023/12/04

170
README.md
View file

@ -1,5 +1,5 @@
<p align="center">
<img alt="BunkerWeb logo" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/misc/logo.png" />
<img alt="BunkerWeb logo" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/misc/logo.png" />
</p>
<p align="center">
@ -18,21 +18,23 @@
</p>
<p align="center">
🌐 <a href="https://www.bunkerweb.io">Website</a>
🌐 <a href="https://www.bunkerweb.io/?utm_campaign=self&utm_source=github">Website</a>
&#124;
📓 <a href="https://docs.bunkerweb.io">Documentation</a>
🤝 <a href="https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github">Panel</a>
&#124;
👨‍💻 <a href="https://demo.bunkerweb.io">Demo</a>
📓 <a href="https://docs.bunkerweb.io/?utm_campaign=self&utm_source=github">Documentation</a>
&#124;
🛡️ <a href="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/examples">Examples</a>
👨‍💻 <a href="https://demo.bunkerweb.io/?utm_campaign=self&utm_source=github">Demo</a>
&#124;
🛡️ <a href="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/examples">Examples</a>
&#124;
💬 <a href="https://discord.com/invite/fTf46FmtyD">Chat</a>
&#124;
📝 <a href="https://github.com/bunkerity/bunkerweb/discussions">Forum</a>
<br/>
⚙️ <a href="https://config.bunkerweb.io">Configurator</a>
⚙️ <a href="https://config.bunkerweb.io/?utm_campaign=self&utm_source=github">Configurator</a>
&#124;
🗺️ <a href="https://threatmap.bunkerweb.io">Threatmap</a>
🗺️ <a href="https://threatmap.bunkerweb.io/?utm_campaign=self&utm_source=github">Threatmap</a>
</p>
> 🛡️ Make security by default great again !
@ -40,23 +42,24 @@
# BunkerWeb
<p align="center">
<img alt="Overview banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/intro-overview.svg" />
<img alt="Overview banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/intro-overview.svg" />
</p>
BunkerWeb is a next-generation and open-source Web Application Firewall (WAF).
Being a full-featured web server (based on [NGINX](https://nginx.org/) under the hood), it will protect your web services to make them "secure by default". BunkerWeb integrates seamlessly into your existing environments ([Linux](https://docs.bunkerweb.io/1.5.4/integrations/#linux), [Docker](https://docs.bunkerweb.io/1.5.4/integrations/#docker), [Swarm](https://docs.bunkerweb.io/1.5.4/integrations/#swarm), [Kubernetes](https://docs.bunkerweb.io/1.5.4/integrations/#kubernetes), …) and is fully configurable (don't panic, there is an [awesome web UI](https://docs.bunkerweb.io/1.5.4/web-ui/) if you don't like the CLI) to meet your own use-cases . In other words, cybersecurity is no more a hassle.
Being a full-featured web server (based on [NGINX](https://nginx.org/) under the hood), it will protect your web services to make them "secure by default". BunkerWeb integrates seamlessly into your existing environments ([Linux](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#linux), [Docker](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker), [Swarm](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#swarm), [Kubernetes](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#kubernetes), …) and is fully configurable (don't panic, there is an [awesome web UI](https://docs.bunkerweb.io/1.5.5/web-ui/?utm_campaign=self&utm_source=github) if you don't like the CLI) to meet your own use-cases . In other words, cybersecurity is no more a hassle.
BunkerWeb contains primary [security features](https://docs.bunkerweb.io/1.5.4/security-tuning/) as part of the core but can be easily extended with additional ones thanks to a [plugin system](https://docs.bunkerweb.io/1.5.4/plugins/).
BunkerWeb contains primary [security features](https://docs.bunkerweb.io/1.5.5/security-tuning/?utm_campaign=self&utm_source=github) as part of the core but can be easily extended with additional ones thanks to a [plugin system](https://docs.bunkerweb.io/1.5.5/plugins/?utm_campaign=self&utm_source=github).
## Why BunkerWeb ?
- **Easy integration into existing environments** : support for Linux, Docker, Swarm, Kubernetes, Ansible, Vagrant, ...
- **Highly customizable** : enable, disable and configure features easily to meet your use case
- **Secure by default** : offers out-of-the-box and hassle-free minimal security for your web services
- **Awesome web UI** : keep control of everything more efficiently without the need of the CLI
- **Plugin system** : extend BunkerWeb to meet your own use-cases
- **Free as in "freedom"** : licensed under the free [AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html)
- **Easy integration into existing environments** : Seamlessly integrate BunkerWeb into various environments such as Linux, Docker, Swarm, Kubernetes and more. Enjoy a smooth transition and hassle-free implementation.
- **Highly customizable** : Tailor BunkerWeb to your specific requirements with ease. Enable, disable, and configure features effortlessly, allowing you to customize the security settings according to your unique use case.
- **Secure by default** : BunkerWeb provides out-of-the-box, hassle-free minimal security for your web services. Experience peace of mind and enhanced protection right from the start.
- **Awesome web UI** : Take control of BunkerWeb more efficiently with the exceptional web user interface (UI). Navigate settings and configurations effortlessly through a user-friendly graphical interface, eliminating the need for the command-line interface (CLI).
- **Plugin system** : Extend the capabilities of BunkerWeb to meet your own use cases. Seamlessly integrate additional security measures and customize the functionality of BunkerWeb according to your specific requirements.
- **Free as in "freedom"** : BunkerWeb is licensed under the free [AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html), embracing the principles of freedom and openness. Enjoy the freedom to use, modify, and distribute the software, backed by a supportive community.
- **Professional services** : Get technical support, tailored consulting and custom development directly from the maintainers of BunkerWeb. Visit the [Bunker Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github) for more information.
## Security features
@ -71,7 +74,7 @@ A non-exhaustive list of security features :
- **Block known bad IPs** with external blacklists and DNSBL
- And much more ...
Learn more about the core security features in the [security tuning](https://docs.bunkerweb.io/1.5.4/security-tuning/) section of the documentation.
Learn more about the core security features in the [security tuning](https://docs.bunkerweb.io/1.5.5/security-tuning/?utm_campaign=self&utm_source=github) section of the documentation.
## Demo
@ -79,15 +82,41 @@ Learn more about the core security features in the [security tuning](https://doc
<a href="https://www.youtube.com/watch?v=ZhYV-QELzA4" target="_blank"><img alt="BunkerWeb demo" src="https://img.youtube.com/vi/ZhYV-QELzA4/0.jpg" /></a>
</p>
A demo website protected with BunkerWeb is available at [demo.bunkerweb.io](https://demo.bunkerweb.io). Feel free to visit it and perform some security tests.
A demo website protected with BunkerWeb is available at [demo.bunkerweb.io](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=github). Feel free to visit it and perform some security tests.
## Professional services
Maximize your BunkerWeb experience by getting professional services directly from the maintainers of the project. Whether you require technical support, personalized consulting, or development services, we stand ready to assist you in fortifying the security of your web services.
You will find more information by visiting the [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github), our dedicated platform for professional services.
Don't hesitate to [contact us](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=github) if you have any question, we will be more than happy to respond to your needs.
## Ecosystem, community and resources
Official websites, tools and resources about BunkerWeb :
- [**Website**](https://www.bunkerweb.io/?utm_campaign=self&utm_source=github) : get more information, news and articles about BunkerWeb
- [**Panel**](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github) : dedicated platform to order and manage professional services (e.g. technical support) around BunkerWeb
- [**Documentation**](https://docs.bunkerweb.io/?utm_campaign=self&utm_source=github) : technical documentation of the BunkerWeb solution
- [**Demo**](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=github) : demonstration website of BunkerWeb, don't hesitate to attempt attacks to test the robustness of the solution
- [**Configurator**](https://config.bunkerweb.io/?utm_campaign=self&utm_source=github) : user-friendly tool to help you configure BunkerWeb
- [**Threatmap**](https://threatmap.bunkerweb.io/?utm_campaign=self&utm_source=github) : live cyber attack blocked by BunkerWeb instances all around the world
Community and social networks :
- [**Discord**](https://discord.com/invite/fTf46FmtyD)
- [**LinkedIn**](https://www.linkedin.com/company/bunkerity/)
- [**Twitter**](https://twitter.com/bunkerity)
- [**Reddit**](https://www.reddit.com/r/BunkerWeb/)
# Concepts
<p align="center">
<img alt="Concepts banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/concepts.svg" />
<img alt="Concepts banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/concepts.svg" />
</p>
You will find more information about the key concepts of BunkerWeb in the [documentation](https://docs.bunkerweb.io/1.5.4/concepts).
You will find more information about the key concepts of BunkerWeb in the [documentation](https://docs.bunkerweb.io/1.5.5/concepts/?utm_campaign=self&utm_source=github).
## Integrations
@ -95,13 +124,13 @@ The first concept is the integration of BunkerWeb into the target environment. W
The following integrations are officially supported :
- [Docker](https://docs.bunkerweb.io/1.5.4/integrations/#docker)
- [Docker autoconf](https://docs.bunkerweb.io/1.5.4/integrations/#docker-autoconf)
- [Swarm](https://docs.bunkerweb.io/1.5.4/integrations/#swarm)
- [Kubernetes](https://docs.bunkerweb.io/1.5.4/integrations/#kubernetes)
- [Linux](https://docs.bunkerweb.io/1.5.4/integrations/#linux)
- [Ansible](https://docs.bunkerweb.io/1.5.4/integrations/#ansible)
- [Vagrant](https://docs.bunkerweb.io/1.5.4/integrations/#vagrant)
- [Docker](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker)
- [Docker autoconf](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker-autoconf)
- [Swarm](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#swarm)
- [Kubernetes](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#kubernetes)
- [Linux](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#linux)
- [Ansible](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#ansible)
- [Vagrant](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#vagrant)
## Settings
@ -121,7 +150,7 @@ USE_GZIP=yes
USE_BROTLI=no
```
You will find an easy to use settings generator at [config.bunkerweb.io](https://config.bunkerweb.io).
You will find an easy to use settings generator at [config.bunkerweb.io](https://config.bunkerweb.io/?utm_campaign=self&utm_source=github).
## Multisite mode
@ -133,7 +162,7 @@ When multisite mode is enabled, BunkerWeb will serve and protect multiple web ap
## Custom configurations
Because meeting all the use cases only using the settings is not an option (even with [external plugins](https://docs.bunkerweb.io/1.5.4/plugins)), you can use custom configurations to solve your specific challenges.
Because meeting all the use cases only using the settings is not an option (even with [external plugins](https://docs.bunkerweb.io/1.5.5/plugins/?utm_campaign=self&utm_source=github)), you can use custom configurations to solve your specific challenges.
Under the hood, BunkerWeb uses the notorious NGINX web server, that's why you can leverage its configuration system for your specific needs. Custom NGINX configurations can be included in different [contexts](https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/#contexts) like HTTP or server (all servers and/or specific server block).
@ -167,7 +196,7 @@ In other words, the scheduler is the brain of BunkerWeb.
## Docker
<p align="center">
<img alt="Docker banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-docker.svg" />
<img alt="Docker banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-docker.svg" />
</p>
We provide ready to use prebuilt images for x64, x86, armv7 and arm64 platforms on [Docker Hub](https://hub.docker.com/u/bunkerity).
@ -178,77 +207,77 @@ Docker integration key concepts are :
- **Scheduler** container to store configuration and execute jobs
- **Networks** to expose ports for clients and connect to upstream web services
You will find more information in the [Docker integration section](https://docs.bunkerweb.io/1.5.4/integrations/#docker) of the documentation.
You will find more information in the [Docker integration section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker) of the documentation.
## Docker autoconf
<p align="center">
<img alt="Docker autoconf banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-autoconf.svg" />
<img alt="Docker autoconf banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-autoconf.svg" />
</p>
The downside of using environment variables is that the container needs to be recreated each time there is an update which is not very convenient. To counter that issue, you can use another image called **autoconf** which will listen for Docker events and automatically reconfigure BunkerWeb in real-time without recreating the container.
Instead of defining environment variables for the BunkerWeb container, you simply add **labels** to your web applications containers and the **autoconf** will "automagically" take care of the rest.
You will find more information in the [Docker autoconf section](https://docs.bunkerweb.io/1.5.4/integrations/#docker-autoconf) of the documentation.
You will find more information in the [Docker autoconf section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker-autoconf) of the documentation.
## Swarm
<p align="center">
<img alt="Swarm banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-swarm.svg" />
<img alt="Swarm banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-swarm.svg" />
</p>
To automatically configure BunkerWeb instances, a special service, called **autoconf** will listen for Docker Swarm events like service creation or deletion and automatically configure the **BunkerWeb instances** in real-time without downtime.
Like the [Docker autoconf integration](https://docs.bunkerweb.io/1.5.4/integrations/#docker-autoconf), configuration for web services is defined using labels starting with the special **bunkerweb.** prefix.
Like the [Docker autoconf integration](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#docker-autoconf), configuration for web services is defined using labels starting with the special **bunkerweb.** prefix.
You will find more information in the [Swarm section](https://docs.bunkerweb.io/1.5.4/integrations/#swarm) of the documentation.
You will find more information in the [Swarm section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#swarm) of the documentation.
## Kubernetes
<p align="center">
<img alt="Kubernetes banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-kubernetes.svg" />
<img alt="Kubernetes banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-kubernetes.svg" />
</p>
The autoconf acts as an [Ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) and will configure the BunkerWeb instances according to the [Ingress resources](https://kubernetes.io/docs/concepts/services-networking/ingress/). It also monitors other Kubernetes objects like [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) for custom configurations.
You will find more information in the [Kubernetes section](https://docs.bunkerweb.io/1.5.4/integrations/#kubernetes) of the documentation.
You will find more information in the [Kubernetes section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#kubernetes) of the documentation.
## Linux
<p align="center">
<img alt="Linux banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-linux.svg" />
<img alt="Linux banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-linux.svg" />
</p>
List of supported Linux distros :
- Debian 12 "Bookworm"
- Debian 11 "Bullseye"
- Ubuntu 22.04 "Jammy"
- Fedora 39
- RHEL 8.9
- Fedora 38
- RHEL 8.7
Repositories of Linux packages for BunkerWeb are available on [PackageCloud](https://packagecloud.io/bunkerity/bunkerweb), they provide a bash script to automatically add and trust the repository (but you can also follow the [manual installation](https://packagecloud.io/bunkerity/bunkerweb/install) instructions if you prefer).
You will find more information in the [Linux section](https://docs.bunkerweb.io/1.5.4/integrations/#linux) of the documentation.
You will find more information in the [Linux section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#linux) of the documentation.
## Ansible
<p align="center">
<img alt="Ansible banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/integration-ansible.svg" />
<img alt="Ansible banner" src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/integration-ansible.svg" />
</p>
List of supported Linux distros :
- Debian 12 "Bookworm"
- Debian 11 "Bullseye"
- Ubuntu 22.04 "Jammy"
- Fedora 39
- RHEL 8.9
- Fedora 38
- RHEL 8.7
[Ansible](https://www.ansible.com/) is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates.
A specific BunkerWeb Ansible role is available on [Ansible Galaxy](https://galaxy.ansible.com/bunkerity/bunkerweb) (source code is available [here](https://github.com/bunkerity/bunkerweb-ansible)).
You will find more information in the [Ansible section](https://docs.bunkerweb.io/1.5.4/integrations/#ansible) of the documentation.
You will find more information in the [Ansible section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#ansible) of the documentation.
## Vagrant
@ -257,11 +286,11 @@ We maintain ready to use Vagrant boxes hosted on Vagrant cloud for the following
- virtualbox
- libvirt
You will find more information in the [Vagrant section](https://docs.bunkerweb.io/1.5.4/integrations/#vagrant) of the documentation.
You will find more information in the [Vagrant section](https://docs.bunkerweb.io/1.5.5/integrations/?utm_campaign=self&utm_source=github#vagrant) of the documentation.
# Quickstart guide
Once you have setup BunkerWeb with the integration of your choice, you can follow the [quickstart guide](https://docs.bunkerweb.io/1.5.4/quickstart-guide/) that will cover the following common use cases :
Once you have setup BunkerWeb with the integration of your choice, you can follow the [quickstart guide](https://docs.bunkerweb.io/1.5.5/quickstart-guide/?utm_campaign=self&utm_source=github) that will cover the following common use cases :
- Protecting a single HTTP application
- Protecting multiple HTTP application
@ -272,25 +301,25 @@ Once you have setup BunkerWeb with the integration of your choice, you can follo
# Security tuning
BunkerWeb offers many security features that you can configure with [settings](https://docs.bunkerweb.io/1.5.4/settings). Even if the default values of settings ensure a minimal "security by default", we strongly recommend you to tune them. By doing so you will be able to ensure a security level of your choice but also manage false positives.
BunkerWeb offers many security features that you can configure with [settings](https://docs.bunkerweb.io/1.5.5/settings/?utm_campaign=self&utm_source=github). Even if the default values of settings ensure a minimal "security by default", we strongly recommend you to tune them. By doing so you will be able to ensure a security level of your choice but also manage false positives.
You will find more information in the [security tuning section](https://docs.bunkerweb.io/1.5.4/security-tuning) of the documentation.
You will find more information in the [security tuning section](https://docs.bunkerweb.io/1.5.5/security-tuning/?utm_campaign=self&utm_source=github) of the documentation.
# Settings
To help you tuning BunkerWeb we have made an easy to use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io).
To help you tuning BunkerWeb we have made an easy to use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io/?utm_campaign=self&utm_source=github).
As a general rule when multisite mode is enabled, if you want to apply settings with multisite context to a specific server you will need to add the primary (first) server name as a prefix like `www.example.com_USE_ANTIBOT=captcha` or `myapp.example.com_USE_GZIP=yes` for example.
When settings are considered as "multiple", it means that you can have multiple groups of settings for the same feature by adding numbers as suffix like `REVERSE_PROXY_URL_1=/subdir`, `REVERSE_PROXY_HOST_1=http://myhost1`, `REVERSE_PROXY_URL_2=/anotherdir`, `REVERSE_PROXY_HOST_2=http://myhost2`, ... for example.
Check the [settings section](https://docs.bunkerweb.io/1.5.4/settings) of the documentation to get the full list.
Check the [settings section](https://docs.bunkerweb.io/1.5.5/settings/?utm_campaign=self&utm_source=github) of the documentation to get the full list.
# Web UI
<p align="center">
<a href="https://www.youtube.com/watch?v=Ao20SfvQyr4">
<img src="https://github.com/bunkerity/bunkerweb/raw/v1.5.4/docs/assets/img/user_interface_demo.png" height="300" />
<img src="https://github.com/bunkerity/bunkerweb/raw/v1.5.5/docs/assets/img/user_interface_demo.png" height="300" />
</a>
</p>
@ -304,13 +333,13 @@ The "Web UI" is a web application that helps you manage your BunkerWeb instance
- Monitor jobs execution
- View the logs and search pattern
You will find more information in the [Web UI section](https://docs.bunkerweb.io/1.5.4/web-ui) of the documentation.
You will find more information in the [Web UI section](https://docs.bunkerweb.io/1.5.5/web-ui/?utm_campaign=self&utm_source=github) of the documentation.
# Plugins
BunkerWeb comes with a plugin system to make it possible to easily add new features. Once a plugin is installed, you can manage it using additional settings defined by the plugin.
Here is the list of "official" plugins that we maintain (see the [bunkerweb-plugins](https://github.com/bunkerity/bunkerweb-plugins) repository for more information) :
Here is the list of "official" plugins that we maintain (see the [bunkerweb-plugins](https://github.com/bunkerity/bunkerweb-plugins/?utm_campaign=self&utm_source=github) repository for more information) :
| Name | Version | Description | Link |
| :------------: | :-----: | :------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------: |
@ -320,45 +349,40 @@ Here is the list of "official" plugins that we maintain (see the [bunkerweb-plug
| **Discord** | 1.2 | Send security notifications to a Discord channel using a Webhook. | [bunkerweb-plugins/discord](https://github.com/bunkerity/bunkerweb-plugins/tree/main/discord) |
| **Slack** | 1.2 | Send security notifications to a Slack channel using a Webhook. | [bunkerweb-plugins/slack](https://github.com/bunkerity/bunkerweb-plugins/tree/main/slack) |
| **VirusTotal** | 1.2 | Automatically scans uploaded files with the VirusTotal API and denies the request when a file is detected as malicious. | [bunkerweb-plugins/virustotal](https://github.com/bunkerity/bunkerweb-plugins/tree/main/virustotal) |
| **WebHook** | 1.2 | Send security notifications to a custom HTTP endpoint using a Webhook. | [bunkerweb-plugins/slack](https://github.com/bunkerity/bunkerweb-plugins/tree/main/webhook) |
| **WebHook** | 1.2 | Send security notifications to a custom HTTP endpoint using a Webhook. | [bunkerweb-plugins/slack](https://github.com/bunkerity/bunkerweb-plugins/tree/main/webhook) |
You will find more information in the [plugins section](https://docs.bunkerweb.io/1.5.4/plugins) of the documentation.
You will find more information in the [plugins section](https://docs.bunkerweb.io/1.5.5/plugins/?utm_campaign=self&utm_source=github) of the documentation.
# Support
## Professional
We offer professional services related to BunkerWeb like :
Get technical support directly from the BunkerWeb maintainers. You will find more information by visiting the [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github), our dedicated platform for professional services.
* Consulting
* Support
* Custom development
* Partnership
Please contact us at [contact@bunkerity.com](mailto:contact@bunkerity.com) if you are interested.
Don't hesitate to [contact us](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=github) if you have any question, we will be more than happy to respond to your needs.
## Community
To get free community support you can use the following media :
* The #help channel of BunkerWeb in the [Discord server](https://discord.com/invite/fTf46FmtyD)
* The help category of [GitHub discussions](https://github.com/bunkerity/bunkerweb/discussions)
* The [/r/BunkerWeb](https://www.reddit.com/r/BunkerWeb) subreddit
* The [Server Fault](https://serverfault.com/) and [Super User](https://superuser.com/) forums
- The #help channel of BunkerWeb in the [Discord server](https://discord.com/invite/fTf46FmtyD)
- The help category of [GitHub discussions](https://github.com/bunkerity/bunkerweb/discussions)
- The [/r/BunkerWeb](https://www.reddit.com/r/BunkerWeb) subreddit
- The [Server Fault](https://serverfault.com/) and [Super User](https://superuser.com/) forums
Please don't use [GitHub issues](https://github.com/bunkerity/bunkerweb/issues) to ask for help, use it only for bug reports and feature requests.
# License
This project is licensed under the terms of the [GNU Affero General Public License (AGPL) version 3](https://github.com/bunkerity/bunkerweb/raw/v1.5.4/LICENSE.md).
This project is licensed under the terms of the [GNU Affero General Public License (AGPL) version 3](https://github.com/bunkerity/bunkerweb/raw/v1.5.5/LICENSE.md).
# Contribute
If you would like to contribute to the plugins you can read the [contributing guidelines](https://github.com/bunkerity/bunkerweb/raw/v1.5.4/CONTRIBUTING.md) to get started.
If you would like to contribute to the plugins you can read the [contributing guidelines](https://github.com/bunkerity/bunkerweb/raw/v1.5.5/CONTRIBUTING.md) to get started.
# Security policy
We take security bugs as serious issues and encourage responsible disclosure, see our [security policy](https://github.com/bunkerity/bunkerweb/raw/v1.5.4/SECURITY.md) for more information.
We take security bugs as serious issues and encourage responsible disclosure, see our [security policy](https://github.com/bunkerity/bunkerweb/raw/v1.5.5/SECURITY.md) for more information.
# Stargazers over time

View file

@ -2,7 +2,7 @@
## Who maintains BunkerWeb ?
BunkerWeb is maintained by [Bunkerity](https://www.bunkerity.com), a French 🇫🇷 company specialized in Cybersecurity 🛡️.
BunkerWeb is maintained by [Bunkerity](https://www.bunkerity.com/?utm_campaign=self&utm_source=doc), a French 🇫🇷 company specialized in Cybersecurity 🛡️.
## Do you offer professional services ?
@ -13,7 +13,9 @@ Yes, we offer professional services related to BunkerWeb such as :
- Custom development
- Partnership
Please contact us at [contact@bunkerity.com](mailto:contact@bunkerity.com) if you are interested.
**We have a [dedicated panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc) to centralize all professional requests.**
You can also contact use at [contact@bunkerity.com](mailto:contact@bunkerity.com) if you are interested.
## Where to get community support ?

View file

@ -1,3 +1,8 @@
/* avoid font to pop on family change */
* {
font-display: swap;
}
:root {
--md-primary-fg-color: #125678;
--md-text-font: "Roboto";
@ -7,6 +12,37 @@
background-color: #125678;
}
/* better link contrast */
article a {
color: #2388bb;
}
/* highlight content links */
article a,
article p > a {
text-decoration: underline;
}
/* header list links and config tabs stay default */
article li > a,
article label > a {
text-decoration: none;
}
/* lighter base tab color */
nav.md-tabs ul li a {
opacity: 0.9;
}
/* active desktop tabs nav */
nav.md-tabs ul li.md-tabs__item--active a {
color: #36ce7a;
font-weight: bold;
}
nav.md-tabs ul li.md-tabs__item--active a:hover {
filter: brightness(0.9);
}
/*
@font-face {
font-family: Consolas, monaco, monospace;

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -48,7 +48,7 @@ USE_BROTLI=no
!!! info "Settings generator tool"
To help you tune BunkerWeb, we offer an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io).
To help you tune BunkerWeb, we offer an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io/?utm_campaign=self&utm_source=doc).
## Multisite mode
@ -81,7 +81,7 @@ app3.example.com_USE_BAD_BEHAVIOR=no
!!! info "Going further"
You will find concrete examples of multisite mode in the [quickstart guide](quickstart-guide.md) of the documentation and the [examples](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/examples) directory of the repository.
You will find concrete examples of multisite mode in the [quickstart guide](quickstart-guide.md) of the documentation and the [examples](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/examples) directory of the repository.
## Custom configurations
@ -95,7 +95,7 @@ By leveraging custom configurations, you unlock a world of possibilities to tail
!!! info "Going further"
You will find concrete examples of custom configurations in the [quickstart guide](quickstart-guide.md) of the documentation and the [examples](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/examples) directory of the repository.
You will find concrete examples of custom configurations in the [quickstart guide](quickstart-guide.md) of the documentation and the [examples](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/examples) directory of the repository.
## Database

View file

@ -7,24 +7,15 @@
<figcaption>Make your web services secure by default !</figcaption>
</figure>
Introducing BunkerWeb, the **cutting-edge** and **open-source Web Application Firewall** (WAF) that will revolutionize your web security experience.
BunkerWeb is a next-generation and open-source Web Application Firewall (WAF).
With BunkerWeb, your web services are safeguarded by default, providing you with peace of mind and enhanced protection. Powered by [NGINX](https://nginx.org/), this comprehensive web server combines advanced features seamlessly, ensuring your online assets remain secure.
BunkerWeb effortlessly integrates into your existing environments, whether it's [Linux](integrations.md#linux), [Docker](integrations.md#docker), [Swarm](integrations.md#swarm), [Kubernetes](integrations.md#kubernetes), or more. Its versatility allows for easy configuration to suit your specific requirements. Don't worry if you prefer a user-friendly interface—BunkerWeb offers an exceptional [web UI](web-ui.md) alongside the command-line interface (CLI), ensuring accessibility for all users.
Experience the transformation in cybersecurity, where complexities and obstacles are a thing of the past. With BunkerWeb, fortifying your digital assets has never been more delightful and hassle-free.
Furthermore, BunkerWeb boasts a comprehensive set of primary [security features](security-tuning.md) at its core. However, what sets it apart is its remarkable flexibility through an intuitive [plugin system](plugins.md). This ingenious design empowers you to effortlessly enhance BunkerWeb with additional security measures, ensuring a tailored and robust defense for your web applications.
By seamlessly integrating new plugins into BunkerWeb, you can customize and expand its capabilities to address specific security requirements unique to your environment. Whether you need to strengthen authentication protocols, bolster threat detection, or implement specialized security measures, BunkerWeb's [plugin system](plugins.md) grants you the freedom to fortify your web infrastructure with ease.
With BunkerWeb's dynamic [plugin system](plugins.md), security becomes an enjoyable journey of exploration and empowerment. Discover the endless possibilities and create a fortified web environment that perfectly aligns with your needs.
Being a full-featured web server (based on [NGINX](https://nginx.org/) under the hood), it will protect your web services to make them "secure by default". BunkerWeb integrates seamlessly into your existing environments ([Linux](integrations.md#linux), [Docker](integrations.md#docker), [Swarm](integrations.md#swarm), [Kubernetes](integrations.md#kubernetes), …) and is fully configurable (don't panic, there is an [awesome web UI](web-ui.md) if you don't like the CLI) to meet your own use-cases . In other words, cybersecurity is no more a hassle.
BunkerWeb contains primary [security features](security-tuning.md) as part of the core but can be easily extended with additional ones thanks to a [plugin system](plugins.md).
## Why BunkerWeb ?
- **Easy integration into existing environments** : Seamlessly integrate BunkerWeb into various environments such as Linux, Docker, Swarm, Kubernetes, Ansible, Vagrant, and more. Enjoy a smooth transition and hassle-free implementation.
- **Easy integration into existing environments** : Seamlessly integrate BunkerWeb into various environments such as Linux, Docker, Swarm, Kubernetes and more. Enjoy a smooth transition and hassle-free implementation.
- **Highly customizable** : Tailor BunkerWeb to your specific requirements with ease. Enable, disable, and configure features effortlessly, allowing you to customize the security settings according to your unique use case.
@ -36,6 +27,8 @@ With BunkerWeb's dynamic [plugin system](plugins.md), security becomes an enjoya
- **Free as in "freedom"** : BunkerWeb is licensed under the free [AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html), embracing the principles of freedom and openness. Enjoy the freedom to use, modify, and distribute the software, backed by a supportive community.
- **Professional services** : Get technical support, tailored consulting and custom development directly from the maintainers of BunkerWeb. Visit the [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc) for more information.
## Security features
Explore the impressive array of security features offered by BunkerWeb. While not exhaustive, here are some notable highlights:
@ -61,7 +54,33 @@ To delve deeper into the core security features, we invite you to explore the [s
## Demo
<p align="center">
<iframe style="display: block;" width="560" height="315" src="https://www.youtube-nocookie.com/embed/ZhYV-QELzA4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe style="display: block;" width="560" height="315" data-src="https://www.youtube-nocookie.com/embed/ZhYV-QELzA4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</p>
A demo website protected with BunkerWeb is available at [demo.bunkerweb.io](https://demo.bunkerweb.io). Feel free to visit it and perform some security tests.
A demo website protected with BunkerWeb is available at [demo.bunkerweb.io](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=doc). Feel free to visit it and perform some security tests.
## Professional services
Get the most of BunkerWeb by getting professional services directly from the maintainers of the project. From technical support to tailored consulting and development, we are here to assist you in the security of your web services.
You will find more information by visiting the [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc), our dedicated platform for professional services.
Don't hesitate to [contact us](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=doc) if you have any question, we will be more than happy to respond to your needs.
## Ecosystem, community and resources
Official websites, tools and resources about BunkerWeb :
- [**Website**](https://www.bunkerweb.io/?utm_campaign=self&utm_source=doc) : get more information, news and articles about BunkerWeb
- [**Panel**](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc) : dedicated platform to order and manage professional services (e.g. technical support) around BunkerWeb
- [**Documentation**](https://docs.bunkerweb.io) : technical documentation of the BunkerWeb solution
- [**Demo**](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=doc) : demonstration website of BunkerWeb, don't hesitate to attempt attacks to test the robustness of the solution
- [**Configurator**](https://config.bunkerweb.io/?utm_campaign=self&utm_source=doc) : user-friendly tool to help you configure BunkerWeb
- [**Threatmap**](https://threatmap.bunkerweb.io/?utm_campaign=self&utm_source=doc) : live cyber attack blocked by BunkerWeb instances all around the world
Community and social networks :
- [**Discord**](https://discord.com/invite/fTf46FmtyD)
- [**LinkedIn**](https://www.linkedin.com/company/bunkerity/)
- [**Twitter**](https://twitter.com/bunkerity)
- [**Reddit**](https://www.reddit.com/r/BunkerWeb/)

View file

@ -21,13 +21,13 @@ By accessing these prebuilt images from Docker Hub, you can quickly pull and run
Whether you're conducting tests, developing applications, or deploying BunkerWeb in production, the Docker containerization option provides flexibility and ease of use. Embracing this method empowers you to take full advantage of BunkerWeb's features while leveraging the benefits of Docker technology.
```shell
docker pull bunkerity/bunkerweb:1.5.4
docker pull bunkerity/bunkerweb:1.5.5
```
Docker images are also available on [GitHub packages](https://github.com/orgs/bunkerity/packages?repo_name=bunkerweb) and can be downloaded using the `ghcr.io` repository address :
```shell
docker pull ghcr.io/bunkerity/bunkerweb:1.5.4
docker pull ghcr.io/bunkerity/bunkerweb:1.5.5
```
Alternatively, if you prefer a more hands-on approach, you have the option to build the Docker image directly from the [source](https://github.com/bunkerity/bunkerweb). Building the image from source gives you greater control and customization over the deployment process. However, please note that this method may take some time to complete, depending on your hardware configuration.
@ -57,7 +57,7 @@ When integrating BunkerWeb with Docker, there are key concepts to keep in mind,
- **Networks**: Docker networks play a vital role in the integration of BunkerWeb. These networks serve two main purposes: exposing ports to clients and connecting to upstream web services. By exposing ports, BunkerWeb can accept incoming requests from clients, allowing them to access the protected web services. Additionally, by connecting to upstream web services, BunkerWeb can efficiently route and manage the traffic, providing enhanced security and performance.
!!! info "Database backend"
Please be aware that our instructions assume you are using SQLite as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) folder of the repository for more information.
Please be aware that our instructions assume you are using SQLite as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) folder of the repository for more information.
### Environment variables
@ -67,7 +67,7 @@ Settings are passed to BunkerWeb using Docker environment variables :
...
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
labels:
- "bunkerweb.INSTANCE=yes"
environment:
@ -86,7 +86,7 @@ Please note that the `bunkerweb.INSTANCE` is mandatory to make sure the schedule
The [scheduler](concepts.md#scheduler) is executed in its own container which is also available on Docker Hub :
```shell
docker pull bunkerity/bunkerweb-scheduler:1.5.4
docker pull bunkerity/bunkerweb-scheduler:1.5.5
```
Alternatively, you can build the Docker image directly from the [source](https://github.com/bunkerity/bunkerweb) (less coffee ☕ needed than BunkerWeb image) :
@ -103,7 +103,7 @@ A volume is needed to store the SQLite database that will be used by the schedul
...
services:
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- bw-data:/data
...
@ -165,7 +165,7 @@ You will need to create the Docker API proxy container, mount the socket and set
...
services:
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
env:
- DOCKER_HOST=tcp://bw-docker:2375
...
@ -213,7 +213,7 @@ To secure the communication between the scheduler and BunkerWeb API, it is impor
...
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -222,7 +222,7 @@ services:
- bw-universe
...
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
networks:
- bw-universe
- bw-docker
@ -252,7 +252,7 @@ version: "3.5"
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -266,7 +266,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -326,7 +326,7 @@ By adopting this approach, you can enjoy real-time reconfiguration of BunkerWeb
The Docker autoconf integration implies the use of **multisite mode**. Please refer to the [multisite section](concepts.md#multisite-mode) of the documentation for more information.
!!! info "Database backend"
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) folder of the repository for more information.
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) folder of the repository for more information.
To enable automated configuration updates, include an additional container called `bw-autoconf` in the stack. This container hosts the autoconf service, which manages dynamic configuration changes for BunkerWeb. To support this functionality, use a dedicated "real" database backend (e.g., MariaDB, MySQL, or PostgreSQL) for synchronized configuration storage. By integrating `bw-autoconf` and a suitable database backend, you establish the infrastructure for seamless automated configuration management in BunkerWeb.
@ -335,7 +335,7 @@ version: "3.5"
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -352,7 +352,7 @@ services:
- bw-services
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -365,7 +365,7 @@ services:
- bw-docker
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -464,7 +464,7 @@ Since multiple instances of BunkerWeb are running, a shared data store implement
As for the database volume, the documentation does not specify a specific approach. Choosing either a shared folder or a specific driver for the database volume is dependent on your unique use-case and is left as an exercise for the reader.
!!! info "Database backend"
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) folder of the repository for more information.
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) folder of the repository for more information.
Clustered database backends setup are out-of-the-scope of this documentation.
@ -475,7 +475,7 @@ version: "3.5"
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- published: 80
target: 8080
@ -505,7 +505,7 @@ services:
- "bunkerweb.INSTANCE=yes"
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -537,7 +537,7 @@ services:
- "node.role == manager"
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -637,7 +637,7 @@ For an optimal setup, it is recommended to define BunkerWeb as a **[DaemonSet](h
Given the presence of multiple BunkerWeb instances, it is necessary to establish a shared data store implemented as a [Redis](https://redis.io/) service. This Redis service will be utilized by the instances to cache and share data among themselves. Further information about the Redis settings can be found [here](settings.md#redis).
!!! info "Database backend"
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) folder of the repository for more information.
Please be aware that our instructions assume you are using MariaDB as the default database backend, as configured by the `DATABASE_URI` setting. However, we understand that you may prefer to utilize alternative backends for your Docker integration. If that is the case, rest assured that other database backends are still possible. See docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) folder of the repository for more information.
Clustered database backends setup are out-of-the-scope of this documentation.
@ -654,7 +654,7 @@ metadata:
name: cr-bunkerweb
rules:
- apiGroups: [""]
resources: ["services", "pods", "configmaps"]
resources: ["services", "pods", "configmaps", "secrets"]
verbs: ["get", "watch", "list"]
- apiGroups: ["networking.k8s.io"]
resources: ["ingresses"]
@ -698,7 +698,7 @@ spec:
containers:
# using bunkerweb as name is mandatory
- name: bunkerweb
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
imagePullPolicy: Always
securityContext:
runAsUser: 101
@ -768,7 +768,7 @@ spec:
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-controller
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -795,7 +795,7 @@ spec:
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-scheduler
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -978,12 +978,12 @@ To simplify the installation process, Linux package repositories for BunkerWeb a
!!! warning "Testing version"
If you use the `testing` version, you will need to add the `force-bad-version` directive to your `/etc/dpkg/dpkg.cfg` file before installing BunkerWeb.
And finally install BunkerWeb 1.5.4 :
And finally install BunkerWeb 1.5.5 :
```shell
curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash && \
sudo apt update && \
sudo apt install -y bunkerweb=1.5.4
sudo apt install -y bunkerweb=1.5.5
```
To prevent upgrading NGINX and/or BunkerWeb packages when executing `apt upgrade`, you can use the following command :
@ -1015,12 +1015,12 @@ To simplify the installation process, Linux package repositories for BunkerWeb a
!!! warning "Testing version"
If you use the `testing` version, you will need to add the `force-bad-version` directive to your `/etc/dpkg/dpkg.cfg` file before installing BunkerWeb.
And finally install BunkerWeb 1.5.4 :
And finally install BunkerWeb 1.5.5 :
```shell
curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash && \
sudo apt update && \
sudo apt install -y bunkerweb=1.5.4
sudo apt install -y bunkerweb=1.5.5
```
To prevent upgrading NGINX and/or BunkerWeb packages when executing `apt upgrade`, you can use the following command :
@ -1037,14 +1037,14 @@ To simplify the installation process, Linux package repositories for BunkerWeb a
sudo dnf install -y nginx-1.24.0
```
And finally install BunkerWeb 1.5.4 :
And finally install BunkerWeb 1.5.5 :
```shell
curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | \
sed 's/yum install -y pygpgme --disablerepo='\''bunkerity_bunkerweb'\''/yum install -y python-gnupg/g' | \
sed 's/pypgpme_check=`rpm -qa | grep -qw pygpgme`/python-gnupg_check=`rpm -qa | grep -qw python-gnupg`/g' | sudo bash && \
sudo dnf makecache && \
sudo dnf install -y bunkerweb-1.5.4
sudo dnf install -y bunkerweb-1.5.5
```
To prevent upgrading NGINX and/or BunkerWeb packages when executing `dnf upgrade`, you can use the following command :
@ -1081,13 +1081,13 @@ To simplify the installation process, Linux package repositories for BunkerWeb a
```shell
sudo dnf install nginx-1.24.0
```
And finally install BunkerWeb 1.5.4 :
And finally install BunkerWeb 1.5.5 :
```shell
dnf install -y epel-release && \
curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | sudo bash && \
sudo dnf check-update && \
sudo dnf install -y bunkerweb-1.5.4
sudo dnf install -y bunkerweb-1.5.5
```
To prevent upgrading NGINX and/or BunkerWeb packages when executing `dnf upgrade`, you can use the following command :
@ -1165,7 +1165,7 @@ the configuration of BunkerWeb is done by using specific role variables :
| Name | Type | Description | Default value |
| :-------------------: | :--------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| `bunkerweb_version` | string | Version of BunkerWeb to install. | `1.5.4` |
| `bunkerweb_version` | string | Version of BunkerWeb to install. | `1.5.5` |
| `nginx_version` | string | Version of NGINX to install. | `1.24.0` |
| `freeze_versions` | boolean | Prevent upgrade of BunkerWeb and NGINX when performing packages upgrades. | `true` |
| `variables_env` | string | Path of the variables.env file to configure BunkerWeb. | `files/variables.env` |

View file

@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/env python3
from io import StringIO
from json import loads
@ -39,7 +39,7 @@ doc = StringIO()
print("# Settings\n", file=doc)
print(
'!!! info "Settings generator tool"\n\n To help you tune BunkerWeb, we have made an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io).\n',
'!!! info "Settings generator tool"\n\n To help you tune BunkerWeb, we have made an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io/?utm_campaign=self&utm_source=doc).\n',
file=doc,
)
print(

View file

@ -2,7 +2,7 @@
!!! warning "Read this if you were a 1.4.X user"
A lot of things changed since the 1.4.X releases. Container-based integrations stacks contain more services but, trust us, fundamental principles of BunkerWeb are still there. You will find ready to use boilerplates for various integrations in the [misc/integrations](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) folder of the repository.
A lot of things changed since the 1.4.X releases. Container-based integrations stacks contain more services but, trust us, fundamental principles of BunkerWeb are still there. You will find ready to use boilerplates for various integrations in the [misc/integrations](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) folder of the repository.
## Scheduler

View file

@ -1,22 +1,34 @@
{% extends "base.html" %}
{% block outdated %}
You're not viewing the documentation of the latest version.
<a href="{{ '../' ~ base_url }}">
<strong>Click here to view latest.</strong>
</a>
{% endblock %}
{% block announce %}
📢 Looking for tailored support, consulting or development for BunkerWeb ?
Contact us at <a href="mailto:contact@bunkerity.com" style="color: #3f6ec6; text-decoration: underline">contact@bunkerity.com</a> for enterprise offers !
{% endblock %}
{% block libs %}
{% extends "base.html" %} {% block outdated %} You're not viewing the
documentation of the latest version.
<a href="{{ '../' ~ base_url }}">
<strong>Click here to view latest.</strong>
</a>
{% endblock %} {% block announce %} 📢 Looking for technical support, tailored
consulting or custom development for BunkerWeb ? Visit the
<a
href="https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc"
style="color: #3f6ec6; text-decoration: underline"
>BunkerWeb Panel</a
>
for more information on our enterprise offers. {% endblock %} {% block libs %}
<script
async
defer
data-domain="docs.bunkerweb.io"
src="https://data.bunkerity.com/js/script.js"
></script>
<script defer>
// Lazy load images and embed youtube videos
window.addEventListener("load", () => {
document.querySelectorAll("[data-src]").forEach((el) => {
el.setAttribute("src", el.getAttribute("data-src"));
});
});
// Add missing label
try {
document
.querySelector('div.md-search[data-md-component="search"][role="dialog"]')
.setAttribute("aria-label", "Search in documentation");
} catch (err) {}
</script>
{% endblock %}

1124
docs/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +0,0 @@
{
"dependencies": {
"puppeteer": "^21.3.6"
}
}

View file

@ -58,7 +58,7 @@ The first step is to install the plugin by putting the plugin files inside the c
services:
...
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- ./bw-data:/data
...
@ -95,7 +95,7 @@ The first step is to install the plugin by putting the plugin files inside the c
services:
...
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- ./bw-data:/data
...
@ -134,7 +134,7 @@ The first step is to install the plugin by putting the plugin files inside the c
services:
...
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- /shared/bw-plugins:/data/plugins
...
@ -181,7 +181,7 @@ The first step is to install the plugin by putting the plugin files inside the c
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-scheduler
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -262,7 +262,7 @@ The first step is to install the plugin by putting the plugin files inside the c
!!! tip "Existing plugins"
If the documentation is not enough, you can have a look at the existing source code of [official plugins](https://github.com/bunkerity/bunkerweb-plugins) and the [core plugins](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/src/common/core) (already included in BunkerWeb but they are plugins, technically speaking).
If the documentation is not enough, you can have a look at the existing source code of [official plugins](https://github.com/bunkerity/bunkerweb-plugins) and the [core plugins](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/src/common/core) (already included in BunkerWeb but they are plugins, technically speaking).
The first step is to create a folder that will contain the plugin :
@ -507,7 +507,7 @@ end
!!! tip "More examples"
If you want to see the full list of available functions, you can have a look at the files present in the [lua directory](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/src/bw/lua/bunkerweb) of the repository.
If you want to see the full list of available functions, you can have a look at the files present in the [lua directory](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/src/bw/lua/bunkerweb) of the repository.
### Jobs

View file

@ -0,0 +1,30 @@
# Professional services
## Why should I get professional services ?
Since BunkerWeb is a free (as in freedom) software, you've the right to use it freely as long as you respect the [AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html).
But dedicating time to a specific technology may not be easy depending on your business priorities. Not mentioning that cybersecurity is complex domain where being both judge and jury is not recommended.
Getting professional services in addition to the open-source solution is the ideal solution to cover your business needs. You can focus on your top priorities and rely on a trusted partner when it comes to web security.
Please note that professionnal services are directly offered by [Bunkerity](https://www.bunkerity.com/?utm_campaign=self&utm_source=doc), the company maintaining the BunkerWeb project, through our [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc) online platform.
## Which professional services do you offer ?
We offer technical support around the BunkerWeb solution. By using this service, we will assist you on the technical issues (installation, configuration, false positive, ...).
According to your needs you have the choice between "one time" and subscriptions offers.
One important thing to note is that the support service is based on "credit" system where you pay for a number of support hours dedicated for you. Time passed on your requests will be deducted to your credit. In other words, you only pay for real time dedicated to your needs.
In addition to the support service, we also offer custom services around the BunkerWeb solution to meet your specific needs :
- Consulting : a dedicated expert will give you advices on your project
- Development : if you need specific features in BunkerWeb, we can do it for you
## How can I get more information ?
You will find more information by visiting the [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc), our dedicated platform for professional services.
Don't hesitate to [contact us](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=doc) if you have any question, we will be more than happy to respond to your needs.

View file

@ -4,7 +4,7 @@
We assume that you're already familiar with the [core concepts](concepts.md) and you have followed the [integrations instructions](integrations.md) for your environment.
!!! tip "Going further"
To demonstrate the use of BunkerWeb, we will deploy a dummy "Hello World" web application as an example. See the [examples folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/examples) of the repository to get real-world examples.
To demonstrate the use of BunkerWeb, we will deploy a dummy "Hello World" web application as an example. See the [examples folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/examples) of the repository to get real-world examples.
## Protect HTTP applications
@ -35,7 +35,7 @@ You will find more settings about reverse proxy in the [settings section](settin
- bw-services
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -52,7 +52,7 @@ You will find more settings about reverse proxy in the [settings section](settin
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -389,7 +389,7 @@ You will find more settings about reverse proxy in the [settings section](settin
- bw-services
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -409,7 +409,7 @@ You will find more settings about reverse proxy in the [settings section](settin
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -828,7 +828,7 @@ REAL_IP_HEADER=X-Forwarded-For
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -843,7 +843,7 @@ REAL_IP_HEADER=X-Forwarded-For
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -858,7 +858,7 @@ REAL_IP_HEADER=X-Forwarded-For
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -978,7 +978,7 @@ REAL_IP_HEADER=proxy_protocol
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -994,7 +994,7 @@ REAL_IP_HEADER=proxy_protocol
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -1010,7 +1010,7 @@ REAL_IP_HEADER=proxy_protocol
```yaml
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
...
environment:
- USE_REAL_IP=yes
@ -1156,7 +1156,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett
- bw-services
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080 # Keep it if you want to use Let's Encrypt automation
- 10000:10000 # app1
@ -1178,7 +1178,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -1227,7 +1227,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080 # Keep it if you want to use Let's Encrypt automation
- 10000:10000 # app1
@ -1285,7 +1285,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
# Keep it if you want to use Let's Encrypt automation
- published: 80
@ -1473,7 +1473,7 @@ Some integrations provide more convenient ways to apply configurations, such as
```yaml
...
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
environment:
- |
CUSTOM_CONF_SERVER_HTTP_hello-world=
@ -1516,7 +1516,7 @@ Some integrations provide more convenient ways to apply configurations, such as
```yaml
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- ./bw-data:/data
...
@ -1586,7 +1586,7 @@ Some integrations provide more convenient ways to apply configurations, such as
```yaml
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
volumes:
- ./bw-data:/data
...
@ -1819,7 +1819,7 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma
- bw-services
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
volumes:
- ./www:/var/www/html
ports:
@ -1842,7 +1842,7 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -1920,7 +1920,7 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
volumes:
- ./www:/var/www/html
labels:
@ -1934,7 +1934,7 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -2078,7 +2078,7 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
volumes:
- /shared/www:/var/www/html
...
@ -2360,7 +2360,7 @@ By default, BunkerWeb will only listen on IPv4 addresses and won't use IPv6 for
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
environment:
- USE_IPv6=yes
@ -2405,7 +2405,7 @@ By default, BunkerWeb will only listen on IPv4 addresses and won't use IPv6 for
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
environment:
- USE_IPv6=yes

View file

@ -1,5 +1,5 @@
mike==2.0.0
mkdocs==1.5.3
mkdocs-material==9.4.14
mkdocs-material[imaging]==9.5.3
mkdocs-print-site-plugin==2.3.6
pytablewriter==1.2.0

View file

@ -4,14 +4,76 @@
#
# pip-compile --allow-unsafe --generate-hashes --strip-extras requirements.in
#
babel==2.13.1 \
--hash=sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900 \
--hash=sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed
babel==2.14.0 \
--hash=sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363 \
--hash=sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287
# via mkdocs-material
cairocffi==1.6.1 \
--hash=sha256:78e6bbe47357640c453d0be929fa49cd05cce2e1286f3d2a1ca9cbda7efdb8b7 \
--hash=sha256:aa78ee52b9069d7475eeac457389b6275aa92111895d78fbaa2202a52dac112e
# via cairosvg
cairosvg==2.7.1 \
--hash=sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0 \
--hash=sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b
# via mkdocs-material
certifi==2023.11.17 \
--hash=sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1 \
--hash=sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474
# via requests
cffi==1.16.0 \
--hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \
--hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \
--hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \
--hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \
--hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \
--hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \
--hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \
--hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \
--hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \
--hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \
--hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \
--hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \
--hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \
--hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \
--hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \
--hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \
--hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \
--hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \
--hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \
--hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \
--hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \
--hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \
--hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \
--hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \
--hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \
--hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \
--hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \
--hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \
--hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \
--hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \
--hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \
--hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \
--hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \
--hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \
--hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \
--hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \
--hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \
--hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \
--hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \
--hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \
--hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \
--hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \
--hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \
--hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \
--hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \
--hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \
--hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \
--hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \
--hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \
--hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \
--hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \
--hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357
# via cairocffi
chardet==5.2.0 \
--hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \
--hash=sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970
@ -116,12 +178,20 @@ colorama==0.4.6 \
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
# via mkdocs-material
cssselect2==0.7.0 \
--hash=sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a \
--hash=sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969
# via cairosvg
dataproperty==1.0.1 \
--hash=sha256:0b8b07d4fb6453fcf975b53d35dea41f3cfd69c9d79b5010c3cf224ff0407a7a \
--hash=sha256:723e5729fa6e885e127a771a983ee1e0e34bb141aca4ffe1f0bfa7cde34650a4
# via
# pytablewriter
# tabledata
defusedxml==0.7.1 \
--hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \
--hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61
# via cairosvg
ghp-import==2.1.0 \
--hash=sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619 \
--hash=sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343
@ -130,9 +200,9 @@ idna==3.6 \
--hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \
--hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
# via requests
importlib-metadata==7.0.0 \
--hash=sha256:7fc841f8b8332803464e5dc1c63a2e59121f46ca186c0e2e182e80bf8c1319f7 \
--hash=sha256:d97503976bb81f40a193d41ee6570868479c69d5068651eb039c40d850c59d67
importlib-metadata==7.0.1 \
--hash=sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e \
--hash=sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc
# via
# markdown
# mike
@ -241,11 +311,12 @@ mkdocs==1.5.3 \
# -r requirements.in
# mike
# mkdocs-material
mkdocs-material==9.4.14 \
--hash=sha256:a511d3ff48fa8718b033e7e37d17abd9cc1de0fdf0244a625ca2ae2387e2416d \
--hash=sha256:dbc78a4fea97b74319a6aa9a2f0be575a6028be6958f813ba367188f7b8428f6
mkdocs-material==9.5.3 \
--hash=sha256:5899219f422f0a6de784232d9d40374416302ffae3c160cacc72969fcc1ee372 \
--hash=sha256:76c93a8525cceb0b395b9cedab3428bf518cf6439adef2b940f1c1574b775d89
# via
# -r requirements.in
# mkdocs-material
# mkdocs-print-site-plugin
mkdocs-material-extensions==1.3.1 \
--hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \
@ -264,25 +335,99 @@ packaging==23.2 \
paginate==0.5.6 \
--hash=sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d
# via mkdocs-material
pathspec==0.11.2 \
--hash=sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20 \
--hash=sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3
pathspec==0.12.1 \
--hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \
--hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712
# via mkdocs
pathvalidate==3.2.0 \
--hash=sha256:5e8378cf6712bff67fbe7a8307d99fa8c1a0cb28aa477056f8fc374f0dff24ad \
--hash=sha256:cc593caa6299b22b37f228148257997e2fa850eea2daf7e4cc9205cef6908dee
# via pytablewriter
pillow==9.5.0 \
--hash=sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1 \
--hash=sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba \
--hash=sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a \
--hash=sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799 \
--hash=sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51 \
--hash=sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb \
--hash=sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5 \
--hash=sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270 \
--hash=sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6 \
--hash=sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47 \
--hash=sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf \
--hash=sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e \
--hash=sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b \
--hash=sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66 \
--hash=sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865 \
--hash=sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec \
--hash=sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c \
--hash=sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1 \
--hash=sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38 \
--hash=sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906 \
--hash=sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705 \
--hash=sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef \
--hash=sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc \
--hash=sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f \
--hash=sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf \
--hash=sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392 \
--hash=sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d \
--hash=sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe \
--hash=sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32 \
--hash=sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5 \
--hash=sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7 \
--hash=sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44 \
--hash=sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d \
--hash=sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3 \
--hash=sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625 \
--hash=sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e \
--hash=sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829 \
--hash=sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089 \
--hash=sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3 \
--hash=sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78 \
--hash=sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96 \
--hash=sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964 \
--hash=sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597 \
--hash=sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99 \
--hash=sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a \
--hash=sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140 \
--hash=sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7 \
--hash=sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16 \
--hash=sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903 \
--hash=sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1 \
--hash=sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296 \
--hash=sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572 \
--hash=sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115 \
--hash=sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a \
--hash=sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd \
--hash=sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4 \
--hash=sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1 \
--hash=sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb \
--hash=sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa \
--hash=sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a \
--hash=sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569 \
--hash=sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c \
--hash=sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf \
--hash=sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082 \
--hash=sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062 \
--hash=sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579
# via
# cairosvg
# mkdocs-material
platformdirs==4.1.0 \
--hash=sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380 \
--hash=sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420
# via mkdocs
pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
# via cffi
pygments==2.17.2 \
--hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \
--hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367
# via mkdocs-material
pymdown-extensions==10.5 \
--hash=sha256:1b60f1e462adbec5a1ed79dac91f666c9c0d241fa294de1989f29d20096cfd0b \
--hash=sha256:1f0ca8bb5beff091315f793ee17683bc1390731f6ac4c5eb01e27464b80fe879
pymdown-extensions==10.7 \
--hash=sha256:6ca215bc57bc12bf32b414887a68b810637d039124ed9b2e5bd3325cbb2c050c \
--hash=sha256:c0d64d5cf62566f59e6b2b690a4095c931107c250a8c8e1351c1de5f6b036deb
# via mkdocs-material
pyparsing==3.1.1 \
--hash=sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb \
@ -362,95 +507,100 @@ pyyaml-env-tag==0.1 \
--hash=sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb \
--hash=sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069
# via mkdocs
regex==2023.10.3 \
--hash=sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a \
--hash=sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07 \
--hash=sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca \
--hash=sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58 \
--hash=sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54 \
--hash=sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed \
--hash=sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff \
--hash=sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528 \
--hash=sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9 \
--hash=sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971 \
--hash=sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14 \
--hash=sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af \
--hash=sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302 \
--hash=sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec \
--hash=sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597 \
--hash=sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b \
--hash=sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd \
--hash=sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767 \
--hash=sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f \
--hash=sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6 \
--hash=sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293 \
--hash=sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be \
--hash=sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41 \
--hash=sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc \
--hash=sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29 \
--hash=sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964 \
--hash=sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d \
--hash=sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a \
--hash=sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc \
--hash=sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55 \
--hash=sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af \
--hash=sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930 \
--hash=sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e \
--hash=sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d \
--hash=sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863 \
--hash=sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c \
--hash=sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f \
--hash=sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e \
--hash=sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d \
--hash=sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368 \
--hash=sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb \
--hash=sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52 \
--hash=sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8 \
--hash=sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4 \
--hash=sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac \
--hash=sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e \
--hash=sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2 \
--hash=sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a \
--hash=sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4 \
--hash=sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa \
--hash=sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533 \
--hash=sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b \
--hash=sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588 \
--hash=sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0 \
--hash=sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915 \
--hash=sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841 \
--hash=sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a \
--hash=sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988 \
--hash=sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292 \
--hash=sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3 \
--hash=sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c \
--hash=sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f \
--hash=sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420 \
--hash=sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9 \
--hash=sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f \
--hash=sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0 \
--hash=sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b \
--hash=sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037 \
--hash=sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b \
--hash=sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee \
--hash=sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c \
--hash=sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b \
--hash=sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353 \
--hash=sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051 \
--hash=sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039 \
--hash=sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a \
--hash=sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b \
--hash=sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e \
--hash=sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5 \
--hash=sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf \
--hash=sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94 \
--hash=sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991 \
--hash=sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711 \
--hash=sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a \
--hash=sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab \
--hash=sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a \
--hash=sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11 \
--hash=sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48
regex==2023.12.25 \
--hash=sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5 \
--hash=sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770 \
--hash=sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc \
--hash=sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105 \
--hash=sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d \
--hash=sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b \
--hash=sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9 \
--hash=sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630 \
--hash=sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6 \
--hash=sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c \
--hash=sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482 \
--hash=sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6 \
--hash=sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a \
--hash=sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80 \
--hash=sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5 \
--hash=sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1 \
--hash=sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f \
--hash=sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf \
--hash=sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb \
--hash=sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2 \
--hash=sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347 \
--hash=sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20 \
--hash=sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060 \
--hash=sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5 \
--hash=sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73 \
--hash=sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f \
--hash=sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d \
--hash=sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3 \
--hash=sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae \
--hash=sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4 \
--hash=sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2 \
--hash=sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457 \
--hash=sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c \
--hash=sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4 \
--hash=sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87 \
--hash=sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0 \
--hash=sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704 \
--hash=sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f \
--hash=sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f \
--hash=sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b \
--hash=sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5 \
--hash=sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923 \
--hash=sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715 \
--hash=sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c \
--hash=sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca \
--hash=sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1 \
--hash=sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756 \
--hash=sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360 \
--hash=sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc \
--hash=sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445 \
--hash=sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e \
--hash=sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4 \
--hash=sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a \
--hash=sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8 \
--hash=sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53 \
--hash=sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697 \
--hash=sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf \
--hash=sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a \
--hash=sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415 \
--hash=sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f \
--hash=sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9 \
--hash=sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400 \
--hash=sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d \
--hash=sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392 \
--hash=sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb \
--hash=sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd \
--hash=sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861 \
--hash=sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232 \
--hash=sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95 \
--hash=sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7 \
--hash=sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39 \
--hash=sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887 \
--hash=sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5 \
--hash=sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39 \
--hash=sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb \
--hash=sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586 \
--hash=sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97 \
--hash=sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423 \
--hash=sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69 \
--hash=sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7 \
--hash=sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1 \
--hash=sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7 \
--hash=sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5 \
--hash=sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8 \
--hash=sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91 \
--hash=sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590 \
--hash=sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe \
--hash=sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c \
--hash=sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64 \
--hash=sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd \
--hash=sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa \
--hash=sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31 \
--hash=sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988
# via mkdocs-material
requests==2.31.0 \
--hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \
@ -460,9 +610,9 @@ requests==2.31.0 \
# importlib-resources
# The following packages are considered to be unsafe in a requirements file:
setuptools==69.0.2 \
--hash=sha256:1e8fdff6797d3865f37397be788a4e3cba233608e9b509382a2777d25ebde7f2 \
--hash=sha256:735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6
setuptools==69.0.3 \
--hash=sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05 \
--hash=sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78
# via mkdocs-material
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
@ -476,6 +626,12 @@ tcolorpy==0.1.4 \
--hash=sha256:d0926480aa5012f34877d69fc3b670f207dc165674e68ad07458fa6ee5b12724 \
--hash=sha256:f0dceb1cb95e554cee63024b3cd2fd8d4628c568773de2d1e6b4f0478461901c
# via pytablewriter
tinycss2==1.2.1 \
--hash=sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847 \
--hash=sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627
# via
# cairosvg
# cssselect2
typepy==1.3.2 \
--hash=sha256:b69fd48b9f50cdb3809906eef36b855b3134ff66c8893a4f8580abddb0b39517 \
--hash=sha256:d5d1022a424132622993800f1d2cd16cfdb691ac4e3b9c325f0fcb37799db1ae
@ -521,6 +677,12 @@ watchdog==3.0.0 \
--hash=sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44 \
--hash=sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33
# via mkdocs
webencodings==0.5.1 \
--hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \
--hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923
# via
# cssselect2
# tinycss2
zipp==3.17.0 \
--hash=sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31 \
--hash=sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0

View file

@ -484,7 +484,7 @@ You can quickly protect sensitive resources like the admin area for example, by
### Auth request
You can deploy complex authentication (e.g. SSO), by using the auth request settings (see [here](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/) for more information on the feature). Please note that you will find [Authelia](https://www.authelia.com/) and [Authentik](https://goauthentik.io/) examples in the [repository](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/examples).
You can deploy complex authentication (e.g. SSO), by using the auth request settings (see [here](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/) for more information on the feature). Please note that you will find [Authelia](https://www.authelia.com/) and [Authentik](https://goauthentik.io/) examples in the [repository](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/examples).
**Auth request settings are related to reverse proxy rules.**

View file

@ -2,7 +2,7 @@
!!! info "Settings generator tool"
To help you tune BunkerWeb, we have made an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io).
To help you tune BunkerWeb, we have made an easy-to-use settings generator tool available at [config.bunkerweb.io](https://config.bunkerweb.io/?utm_campaign=self&utm_source=doc).
This section contains the full list of settings supported by BunkerWeb. If you are not yet familiar with BunkerWeb, you should first read the [concepts](concepts.md) section of the documentation. Please follow the instructions for your own [integration](integrations.md) on how to apply the settings.
@ -205,11 +205,13 @@ STREAM support :white_check_mark:
Choose custom certificate for HTTPS.
| Setting |Default| Context |Multiple| Description |
|-----------------|-------|---------|--------|--------------------------------------------------------------------------------|
|`USE_CUSTOM_SSL` |`no` |multisite|no |Use custom HTTPS certificate. |
|`CUSTOM_SSL_CERT`| |multisite|no |Full path of the certificate or bundle file (must be readable by the scheduler).|
|`CUSTOM_SSL_KEY` | |multisite|no |Full path of the key file (must be readable by the scheduler). |
| Setting |Default| Context |Multiple| Description |
|----------------------|-------|---------|--------|--------------------------------------------------------------------------------|
|`USE_CUSTOM_SSL` |`no` |multisite|no |Use custom HTTPS certificate. |
|`CUSTOM_SSL_CERT` | |multisite|no |Full path of the certificate or bundle file (must be readable by the scheduler).|
|`CUSTOM_SSL_KEY` | |multisite|no |Full path of the key file (must be readable by the scheduler). |
|`CUSTOM_SSL_CERT_DATA`| |multisite|no |Certificate data encoded in base64. |
|`CUSTOM_SSL_KEY_DATA` | |multisite|no |Key data encoded in base64. |
### DB
@ -241,7 +243,7 @@ Manage default error pages
| Setting | Default | Context |Multiple| Description |
|-------------------------|-------------------------------------------------|---------|--------|------------------------------------------------------------------------------------------------------------------------|
|`ERRORS` | |multisite|no |List of HTTP error code and corresponding error pages, separated with spaces (404=/my404.html 403=/errors/403.html ...).|
|`INTERCEPTED_ERROR_CODES`|`400 401 403 404 405 413 429 500 501 502 503 504`|multisite|no |List of HTTP error code intercepted by Bunkerweb |
|`INTERCEPTED_ERROR_CODES`|`400 401 403 404 405 413 429 500 501 502 503 504`|multisite|no |List of HTTP error code intercepted by BunkerWeb |
### Greylist
@ -363,6 +365,7 @@ Miscellaneous settings.
|`OPEN_FILE_CACHE_VALID` |`30s` |multisite|no |Open file cache valid time |
|`EXTERNAL_PLUGIN_URLS` | |global |no |List of external plugins URLs (direct download to .zip or .tar file) to download and install (URLs are separated with space).|
|`DENY_HTTP_STATUS` |`403` |global |no |HTTP status code to send when the request is denied (403 or 444). When using 444, BunkerWeb will close the connection. |
|`SEND_ANONYMOUS_REPORT` |`yes` |global |no |Send anonymous report to BunkerWeb maintainers. |
### ModSecurity
@ -424,16 +427,22 @@ STREAM support :white_check_mark:
Redis server configuration when using BunkerWeb in cluster mode.
| Setting |Default|Context|Multiple| Description |
|----------------------|-------|-------|--------|------------------------------------------------------------------|
|`USE_REDIS` |`no` |global |no |Activate Redis. |
|`REDIS_HOST` | |global |no |Redis server IP or hostname. |
|`REDIS_PORT` |`6379` |global |no |Redis server port. |
|`REDIS_DATABASE` |`0` |global |no |Redis database number. |
|`REDIS_SSL` |`no` |global |no |Use SSL/TLS connection with Redis server. |
|`REDIS_TIMEOUT` |`1000` |global |no |Redis server timeout (in ms) for connect, read and write. |
|`REDIS_KEEPALIVE_IDLE`|`30000`|global |no |Max idle time (in ms) before closing redis connection in the pool.|
|`REDIS_KEEPALIVE_POOL`|`10` |global |no |Max number of redis connection(s) kept in the pool. |
| Setting |Default|Context|Multiple| Description |
|-------------------------|-------|-------|--------|-------------------------------------------------------------------|
|`USE_REDIS` |`no` |global |no |Activate Redis. |
|`REDIS_HOST` | |global |no |Redis server IP or hostname. |
|`REDIS_PORT` |`6379` |global |no |Redis server port. |
|`REDIS_DATABASE` |`0` |global |no |Redis database number. |
|`REDIS_SSL` |`no` |global |no |Use SSL/TLS connection with Redis server. |
|`REDIS_TIMEOUT` |`1000` |global |no |Redis server timeout (in ms) for connect, read and write. |
|`REDIS_KEEPALIVE_IDLE` |`30000`|global |no |Max idle time (in ms) before closing redis connection in the pool. |
|`REDIS_KEEPALIVE_POOL` |`10` |global |no |Max number of redis connection(s) kept in the pool. |
|`REDIS_USERNAME` | |global |no |Redis username used in AUTH command. |
|`REDIS_PASSWORD` | |global |no |Redis password used in AUTH command. |
|`REDIS_SENTINEL_HOSTS` | |global |no |Redis sentinel hosts with format host:[port] separated with spaces.|
|`REDIS_SENTINEL_USERNAME`| |global |no |Redis sentinel username. |
|`REDIS_SENTINEL_PASSWORD`| |global |no |Redis sentinel password. |
|`REDIS_SENTINEL_MASTER` | |global |no |Redis sentinel master name. |
### Reverse proxy
@ -468,6 +477,7 @@ Manage reverse proxy configurations.
|`REVERSE_PROXY_CONNECT_TIMEOUT` |`60s` |multisite|yes |Timeout when connecting to the proxied resource. |
|`REVERSE_PROXY_READ_TIMEOUT` |`60s` |multisite|yes |Timeout when reading from the proxied resource. |
|`REVERSE_PROXY_SEND_TIMEOUT` |`60s` |multisite|yes |Timeout when sending to the proxied resource. |
|`REVERSE_PROXY_INCLUDES` | |multisite|yes |Additional configuration to include in the location block, separated with spaces. |
### Reverse scan
@ -540,4 +550,3 @@ Allow access based on internal and external IP/network/rDNS/ASN whitelists.
|`WHITELIST_USER_AGENT_URLS`| |global |no |List of URLs, separated with spaces, containing good User-Agent to whitelist. |
|`WHITELIST_URI` | |multisite|no |List of URI (PCRE regex), separated with spaces, to whitelist. |
|`WHITELIST_URI_URLS` | |global |no |List of URLs, separated with spaces, containing bad URI to whitelist. |

View file

@ -1,5 +1,8 @@
# Troubleshooting
!!! info "BunkerWeb Panel"
If you are unable to resolve your problems, you can [contact us directly via our panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc). This centralises all requests relating to the BunkerWeb solution.
## Logs
When troubleshooting, logs are your best friends. We try our best to provide user-friendly logs to help you understand what's happening.

View file

@ -3,7 +3,7 @@
## Overview
<p align="center">
<iframe style="display: block;" width="560" height="315" src="https://www.youtube-nocookie.com/embed/Ao20SfvQyr4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe style="display: block;" width="560" height="315" data-src="https://www.youtube-nocookie.com/embed/Ao20SfvQyr4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</p>
The "Web UI" is a web application that helps you manage your BunkerWeb instance using a user-friendly interface instead of the command-line one.
@ -40,14 +40,14 @@ Because the web UI is a web application, the recommended installation procedure
The setup wizard is a feature that helps you to **configure** and **install the web UI** using a **user-friendly interface**. You will need to set the `UI_HOST` setting (`http://hostname-of-web-ui:7000`) and browse the `/setup` URI of your server to access the setup wizard.
<figure markdown>
![Overview](assets/img/ui-wizard-account.png){ align=center, width="350" }
![Overview](assets/img/ui-wizard-account.webp){ align=center, width="350" }
<figcaption>Account section of the setup wizard</figcaption>
</figure>
Choose your administator username and password. Please note that password must have at least 8 chars with 1 lower case letter, 1 upper case letter, 1 digit and 1 special char.
Choose your administrator username and password. Please note that password must have at least 8 chars with 1 lower case letter, 1 upper case letter, 1 digit and 1 special char.
<figure markdown>
![Overview](assets/img/ui-wizard-settings.png){ align=center, width="350" }
![Overview](assets/img/ui-wizard-settings.webp){ align=center, width="350" }
<figcaption>Settings section of the setup wizard</figcaption>
</figure>
@ -73,7 +73,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -89,7 +89,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -111,7 +111,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
depends_on:
- bw-docker
environment:
@ -160,7 +160,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -177,7 +177,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-services
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -190,7 +190,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -225,7 +225,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
networks:
bw-docker:
bw-universe:
@ -263,7 +263,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- published: 80
target: 8080
@ -293,7 +293,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- "bunkerweb.INSTANCE=yes"
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -321,7 +321,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- "node.role == manager"
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -348,7 +348,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-universe
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -435,7 +435,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
containers:
# using bunkerweb as name is mandatory
- name: bunkerweb
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
imagePullPolicy: Always
securityContext:
runAsUser: 101
@ -508,7 +508,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-controller
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -535,7 +535,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-scheduler
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -619,7 +619,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
spec:
containers:
- name: bunkerweb-ui
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -754,7 +754,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
!!! info "Database backend"
If you want another Database backend than MariaDB please refer to the docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) of the repository.
If you want another Database backend than MariaDB please refer to the docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) of the repository.
Here is the docker-compose boilerplate that you can use (don't forget to edit the `changeme` data) :
@ -763,7 +763,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -787,7 +787,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -809,7 +809,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
depends_on:
- bw-docker
environment:
@ -874,7 +874,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
!!! info "Database backend"
If you want another Database backend than MariaDB please refer to the docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) of the repository.
If you want another Database backend than MariaDB please refer to the docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) of the repository.
Here is the docker-compose boilerplate that you can use (don't forget to edit the `changeme` data) :
@ -883,7 +883,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -900,7 +900,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-services
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -913,7 +913,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- bunkerweb
- bw-docker
@ -948,7 +948,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-docker
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
networks:
bw-docker:
bw-universe:
@ -1009,7 +1009,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
!!! info "Database backend"
If you want another Database backend than MariaDB please refer to the stack files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) of the repository.
If you want another Database backend than MariaDB please refer to the stack files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) of the repository.
Here is the stack boilerplate that you can use (don't forget to edit the `changeme` data) :
@ -1018,7 +1018,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
services:
bunkerweb:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- published: 80
target: 8080
@ -1048,7 +1048,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- "bunkerweb.INSTANCE=yes"
bw-autoconf:
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -1076,7 +1076,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- "node.role == manager"
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
environment:
- SWARM_MODE=yes
- DOCKER_HOST=tcp://bw-docker:2375
@ -1103,7 +1103,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
- bw-universe
bw-ui:
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
environment:
- DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db # Remember to set a stronger password for the database
- DOCKER_HOST=tcp://bw-docker:2375
@ -1157,7 +1157,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
!!! info "Database backend"
If you want another Database backend than MariaDB please refer to the yaml files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.4/misc/integrations) of the repository.
If you want another Database backend than MariaDB please refer to the yaml files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.5/misc/integrations) of the repository.
Here is the yaml boilerplate that you can use (don't forget to edit the `changeme` data) :
@ -1212,7 +1212,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
containers:
# using bunkerweb as name is mandatory
- name: bunkerweb
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
imagePullPolicy: Always
securityContext:
runAsUser: 101
@ -1282,7 +1282,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-controller
image: bunkerity/bunkerweb-autoconf:1.5.4
image: bunkerity/bunkerweb-autoconf:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -1309,7 +1309,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
serviceAccountName: sa-bunkerweb
containers:
- name: bunkerweb-scheduler
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
imagePullPolicy: Always
env:
- name: KUBERNETES_MODE
@ -1393,7 +1393,7 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
spec:
containers:
- name: bunkerweb-ui
image: bunkerity/bunkerweb-ui:1.5.4
image: bunkerity/bunkerweb-ui:1.5.5
imagePullPolicy: Always
env:
- name: ADMIN_USERNAME
@ -1641,4 +1641,4 @@ Review your final BunkerWeb UI URL and then click on the `Setup` button. Once th
```shell
systemctl restart bunkerweb
```
```

View file

@ -2,7 +2,7 @@ version: "3.4"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -44,7 +44,7 @@ services:
- app2.example.com_REVERSE_PROXY_HEADERS=Remote-User $$user;Remote-Groups $$groups;Remote-Name $$name;Remote-Email $$email
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,12 +7,14 @@
{
"type": "string",
"url": "https://app1.example.com",
"string": "authelia"
"string": "authelia",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com",
"string": "authelia"
"string": "authelia",
"tls": "app2.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3.4"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -53,7 +53,7 @@ services:
- app2.example.com_REVERSE_PROXY_HEADERS=X-authentik-username $$authentik_username;X-authentik-groups $$authentik_groups;X-authentik-email $$authentik_email;X-authentik-name $$authentik_name;X-authentik-uid $$authentik_uid
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,17 +7,20 @@
{
"type": "string",
"url": "https://app1.example.com/hello",
"string": "app1"
"string": "app1",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com/hello",
"string": "app2"
"string": "app2",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com/hello",
"string": "app3"
"string": "app3",
"tls": "app3.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
environment:
- SERVER_NAME=www.example.com # replace with your domains
- API_WHITELIST_IP=127.0.0.0/8 10.20.30.0/24
@ -24,7 +24,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -24,6 +24,7 @@ if [ -f /lib/systemd/system/haproxy.service ] ; then
systemctl daemon-reload
fi
systemctl start haproxy
# shellcheck disable=SC2181
if [ $? -ne 0 ] ; then
systemctl status haproxy
journalctl -u haproxy.service

View file

@ -27,7 +27,7 @@ services:
...
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -50,7 +50,7 @@ services:
bw-universe:
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -33,7 +33,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -33,7 +33,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -33,7 +33,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -33,7 +33,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -33,7 +33,7 @@ services:
- bw-services
bbw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -38,7 +38,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -6,17 +6,20 @@
{
"type": "string",
"url": "https://app1.example.com",
"string": "app1"
"string": "app1",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com",
"string": "app2"
"string": "app2",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com",
"string": "app3"
"string": "app3",
"tls": "app3.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -53,7 +53,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,22 +7,26 @@
{
"type": "string",
"url": "https://app1.example.com/hello",
"string": "world"
"string": "world",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com/hello",
"string": "world"
"string": "world",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app1.example.com/app1",
"string": "app1"
"string": "app1",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com/app2",
"string": "app2"
"string": "app2",
"tls": "app2.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -28,7 +28,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -8,7 +8,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "drupal"
"string": "drupal",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -24,7 +24,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,7 +7,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "ghost"
"string": "ghost",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -28,7 +28,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -8,7 +8,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "gogs"
"string": "gogs",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
# dropping all capabilities
cap_drop:
- ALL
@ -39,7 +39,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -6,7 +6,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "hello"
"string": "hello",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -28,7 +28,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,7 +7,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "joomla"
"string": "joomla",
"tls": "www.example.com"
}
]
}

View file

@ -7,32 +7,38 @@
{
"type": "string",
"url": "https://app1.example.com/hello",
"string": "hello"
"string": "hello",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com/hello",
"string": "hello"
"string": "hello",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com/hello",
"string": "hello"
"string": "hello",
"tls": "app3.example.com"
},
{
"type": "string",
"url": "https://app1.example.com/app1",
"string": "app1"
"string": "app1",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com/app2",
"string": "app2"
"string": "app2",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com/app3",
"string": "app3"
"string": "app3",
"tls": "app3.example.com"
}
]
}

View file

@ -7,17 +7,20 @@
{
"type": "string",
"url": "https://app1.example.com",
"string": "hello"
"string": "hello",
"tls": "app1.example.com"
},
{
"type": "string",
"url": "https://app2.example.com",
"string": "hello"
"string": "hello",
"tls": "app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com",
"string": "hello"
"string": "hello",
"tls": "app3.example.com"
}
]
}

View file

@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOTCCAyGgAwIBAgIUDBbkHicmx8nqUQNnkDvx32hqmiswDQYJKoZIhvcNAQEL
BQAwLDEqMCgGA1UEAwwhYXBwMS5leGFtcGxlLmNvbSxhcHAyLmV4YW1wbGUuY29t
MB4XDTIzMTIxNzExMjg0NFoXDTMzMTIxNDExMjg0NFowLDEqMCgGA1UEAwwhYXBw
MS5leGFtcGxlLmNvbSxhcHAyLmV4YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA0PE86OpiyWSgQlm30SF737CM7+NIsUn0jo7RZUoB/rmM
jryWruQ/IZOH7TjKyPBemX+90q56ExIPthuGK6QTZBGpwNdGLRG7ghvKeJSWTkZv
8lYWx/ROSQZ5xRbJFMDyZAwjbhJhLlV2vV19vbC5NkgbBowSpMzwd9Ymy7ULazIQ
cQ7frZu4BNhLQ3aTuNktxT11tuvI4zOK6Ma0aoBWEMgyI/lYq/U61zLc0MOWVta1
9Llo5AO90MN5+5pM0xZPgvVNsrwCyWga+cl/oykkimmzxRMA67t01ew8MheK6fFC
5sLqQPqSmelgkB/Ff3eaoxYhGgWYVx6jOg89zuW65wVbOVokq0pmlLWe48Ea6oTe
AC/+Xq2TWnzm/3RI10YSFTdzcslqO8H2e4Pa3oyj2kNk7JE8GHewCA9WL+SIP18t
GtbTAXonSHaseWu1Stelm43V/N2AViILv7aBNFHJ8iGWsOqSjJCVqymtOsmosZYZ
zosLSItNrTGtRTqj5v5gsynQrnEj2hM9nFVOsVSTHltMOj39nfrkcG70Vsn1Z7dB
mhm1hIDi0fZSPiLw1o/PsKdNOcfnmPX4ol4vW48HilBDINVaQAJMU016JgSOeBls
tGdCZWFceOdEwVy+12ATPolSaY8Ro6NtHW5r6ONcIkZi9Nccxjl5ETz9WalfyIEC
AwEAAaNTMFEwHQYDVR0OBBYEFHiUEzaEK6Iv6zQMopthSOfZpK5JMB8GA1UdIwQY
MBaAFHiUEzaEK6Iv6zQMopthSOfZpK5JMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggIBAAtXURD4HT3kMSscVByqUM4inJc3p8dGEAxAQRNBxN3VOkwA
melyRQ3SeBUJKnElGTtgMIW7JmEPdZdAcQiUZ2UEI7AKhMWACGg6LBGRNXATp1sA
GAzPgVqNVs+x2Iyif5kE9xWss+VE3PH17LMJMhqlpKcjkrrFwtmtRC2a1fGnDLtK
UoewUIjC/9qEKySQs3eyCCbjnJWDpvJaUrBpIUvjFHHus/UOYmCu7UBxSa31kku/
cVpJVi0fODyA5VH606AS4fR9XQBDF80FYH7dr+jkXcMmh9FAl5AsvPeP7nhcX/nM
fwlEHT6/TOX0xw8c5P+sKmJASBt/Lvc+pFWxNRLlF9SWcskXT3wf5hoz8qRS89ip
567cPDquOHmG4qg2c0f8I2mNomxVl4TW4fjSqtvsoIQDDTzyXBBG1pMMhQMNcjGI
twpusIdIQHTkR6heBfmSjGSkh6c4bXw44QWl1kq0+uouKF2aFajAUmRq3MC+r6iP
yg1zBpPkNMICfCyekhY1N3THfU9bhEBtvbIqobuTGp2OyekBShOkpXfeLp1hDIPh
10RQU3lzE4/fipja+t/IiBxAJ20MSsHOFvPRpX2Q6/7584eguA5hAsflQw1PIXj5
wOi4cm6tx3xVWzhuRHa6oUBtSS/IjRX55lcWFE8xYXqulpHM2rP/KAsCKu3N
-----END CERTIFICATE-----

View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDQ8Tzo6mLJZKBC
WbfRIXvfsIzv40ixSfSOjtFlSgH+uYyOvJau5D8hk4ftOMrI8F6Zf73SrnoTEg+2
G4YrpBNkEanA10YtEbuCG8p4lJZORm/yVhbH9E5JBnnFFskUwPJkDCNuEmEuVXa9
XX29sLk2SBsGjBKkzPB31ibLtQtrMhBxDt+tm7gE2EtDdpO42S3FPXW268jjM4ro
xrRqgFYQyDIj+Vir9TrXMtzQw5ZW1rX0uWjkA73Qw3n7mkzTFk+C9U2yvALJaBr5
yX+jKSSKabPFEwDru3TV7DwyF4rp8ULmwupA+pKZ6WCQH8V/d5qjFiEaBZhXHqM6
Dz3O5brnBVs5WiSrSmaUtZ7jwRrqhN4AL/5erZNafOb/dEjXRhIVN3NyyWo7wfZ7
g9rejKPaQ2TskTwYd7AID1Yv5Ig/Xy0a1tMBeidIdqx5a7VK16WbjdX83YBWIgu/
toE0UcnyIZaw6pKMkJWrKa06yaixlhnOiwtIi02tMa1FOqPm/mCzKdCucSPaEz2c
VU6xVJMeW0w6Pf2d+uRwbvRWyfVnt0GaGbWEgOLR9lI+IvDWj8+wp005x+eY9fii
Xi9bjweKUEMg1VpAAkxTTXomBI54GWy0Z0JlYVx450TBXL7XYBM+iVJpjxGjo20d
bmvo41wiRmL01xzGOXkRPP1ZqV/IgQIDAQABAoICAQCtnhcnz0Ng532HRLfKThF5
sWGbH/hSYQqWvrPef52ixRm3rZtkHgMbalTDWLKgP6PL1uqruxFy8Uoe30Yg00jN
mSO+OuN0JczycxdOFOHEjyEMdF6frjCy22+pxqI13ZJMcg2qtBkOgDOXbK1ERynP
oiDa0t/XEvgqC8fW80xWuZYR6/MPdlp1pCj+GPTs34H56HT9F3Wo3TZq8FoQOS3K
6h9H5zS4RqCrGveDfVJaPDWb8cjn1vgOFbAx0mhN6rcNMbprb3C9XQU1VCr8L/7O
CME5W+4i83RFIfRvB0MF29TknUg70DqrK9JyUAQzQ/Y51/SPg+CvW6T0ZJ/OYPRo
7HfNGk1+yhou2wvZnC9OqI98tZBniO5fEdcUCguaZZWW7jwMpONk0cI8sm6NoWpy
uiIb2W5jNlOpXqBx/0veejfDtfso7MvkPY/hwppw++DY331au2rsLsDbXUx96SOJ
d7PyflXNjrrzSTO5X6UyQiYNl1/EaBQjQN/R9YxyC2uS+UsM5UesB5Tg++jER6HL
mT6cccE5YLjbdTfT9TDvgNIgB2tS1mnBvI4nObaMX/JuASyMYUEoQQsiNPtuElqC
U7DXkgMKHd6qlrsVMxrIyih3UNjtyQZBQcokP4UcW5hIzTLyrNPyBSzh6QUbs4Kn
lL9PyYYcDEXlMP30i+M3AQKCAQEA7ccgjMYIYq2qv8X/G15ZmWdw5+Hz16S58KzE
n0mVF4Ht16mBDfrQve0h5nn6/h33bffpgxKigmM0b+vEzgPtPSlNhaLCE4Kt7SZn
NuRVHJ74nHXsTi+Z0ZSkgeKwBRmji5TN7PBEoVdaExhM/qGnwG7x5CQNLQ0O1w2J
5b6ywGnghjlhHRI5uGdmHy2n6N5Rj37OFrLVOLdEexy351ogZY74673BXGVjLNe2
UMM6CazE00gDwKv0rOniZv732O8MVaOMR6CYG3z7TgfVGESWS1mEGTrkbLgGbT4X
naGhUH90+AKZwD2LmMJPbQR5PhwcmaCx/xgPj1RWRl4zemDjsQKCAQEA4PRl41Wd
Yiirgc41oXC3hk/cMtCsz+Cz8WL7pCRJL3hvX/Z+7Pp6eMeiHBnaObjZNUY/eC+s
I1i4tCShMnqSddm/YnvgiS1UsDF2N4Xm0oR0PfK0jcQDq/IYyxCJmp56ZJ8y1c5W
v9wvJ+7U/AELjuqkGiZ0w0wDGtdNdFVbUSjyf385Dmq0D19rrl3Y9OmoDaECYVdS
L7/8hjIgmT09+Yrf05+IlEo/f6aPjM1xi6WYC3+aQOp3yjW6oSPEZZuc2WfVyhss
AiDSwbqu1nxS5WswOTGKmirl3btACafOK8x/czeoqM8Wjju8HAG1btlUT4BzLNVk
GZR14iJcFxZ10QKCAQBri6czRNbCGx6hwqIR9Oi9s8Wje9VYcc8QBnSgPx3KFiBH
bQlME2ean8i3f/CAQ3mIKZtah3EtXEV5YcAQFkKVaTsA+I6jWHXmT3pbn4bHfTeh
PMz2yBzgaETH4ooOpHwOQ+2n/zxrZSD+hf09JkzDguqxb4TuHXva1OrMGSasVLcS
vp0oEvg8abgM3g+WCggFySrZpWU/U9ULgf/ECkWg6bu4lIkCi3EB9Ucm3EZB3fzg
OzBHUv9FvjuCrkvXuLdxfJmURBTISg04S96cLVl1FzXiW3q5mbp+apkv2M0npZ54
FmUISE39d9WIz38vEnP1IHOhl3ZiM5kaFr1d2rjhAoIBAGOtB0R/GBh5at0+cNcS
6c7yreA6RIhryW/I6zWk+mS1WaxMvZrltcS0uGj5L4/qDxyi/taTURPsaRMxM9f5
JdJgZIQP3cMKuf7EO9yIUWmwVQ1p8ITseLAEuuWnc0F2vUa+n7jLD/c9aguosOjk
0alG4OXRamVq1elbwy8r7yV8Hk9OIQr5TsWNA1qkrNCAg/1d/X8CQSF1UUBpD7a2
wzJCTcEobE1AxPgb5nl+QrSc8E0QAlqHSgLoYcSq44geNpbCgqFl/s8GmjxLKtNR
DS4om5qMEB0Vqvrf0JU2rI0NtN9ppyr9b8IgR86lFy6Bz/DWOrJ/7zXCaaWEkgeM
5TECggEAKSvloR9pVm0nzvN3e4Xtjj01rVUZOU667lUT3TAeDycTTLK4tXsYR47V
olDmKwIN7YL/U6WAm1ClE+DGMnt27hKeIBctKJXiiIqK7hlAAOmk6nCWUXU7yCgb
RkV9DTXHQ4gEtzgU0kx0r9pTydc19rMAanl7fgiNUNc+RcHeNSH9hoWPTGpOb5Om
R4LuAJSewMdtnYFa7Xu3P7QjT7b0d7ARGnF1OrjKA9Nqm65D3bh8hlikANrGkM+k
pPM2BJiTnh6vLYMh5TBMSFNLJPUKItyTaIz2CVFdWE5ipV3UPjj8beYsFDt24XmC
FI88g7aCJHlP2wvuyZiPnOtCdGVVKw==
-----END PRIVATE KEY-----

View file

@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFFzCCAv+gAwIBAgIUETXxobflxWhnHIL/u7KBRE/y4eswDQYJKoZIhvcNAQEL
BQAwGzEZMBcGA1UEAwwQYXBwMy5leGFtcGxlLmNvbTAeFw0yMzEyMTcxMTMwMTda
Fw0zMzEyMTQxMTMwMTdaMBsxGTAXBgNVBAMMEGFwcDMuZXhhbXBsZS5jb20wggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEq6OCSCs3Uyswq4sH8FWfd4oR
ssX/qIzu5FwTjpvFKOa/d+b6rnWC2SR6RKKmR47bwGBx2jvQIOZ118ta0rKtws0F
AHYXgwxTpuljz3vESrybXxUA7Pmjiog2zvGkKIKHAOZdjwRbDQBvceocurChKn3V
t8CjKSGecq6qN4dh0xPwEIWAsIpIsnrMSI3JbjCDlUe7SKEcWYKcFZfgm71KBYnD
gwTTFaRnzrVWLyvqJ/wfQldCzmbGJ5cR6CsF9Keu/KQelJxQA9SEqqxLzU04dHOB
wYJVyBWL6m2udh6qWRRP3FwAdX6QB9cT0ql/JwxirS/+kBmHAKS8K+iTxl7JzaDw
hxwfjJkTNiw3mMnvah6L7SHAKVd53UXt1lc6vsz02/4cIiNxCA/k9TKWwYb6ogl0
MenPPjfmSDp2zEHX9FP/xbJgnO9wPdzO1nQrVKFRynrC5tlnmzU9DKpn+dflKvmQ
/hqFwu//ZUnCfyApdrtF7ICj+mngJkD8M6aJ4ALDhXpOjPzIMxLe/b+vArPhOVIj
CEUSUg6u3eDuksKKS+0fBZgrrYhHpBNNiLXzD7rAXoAKOWorAgshdSlsLbWcEfm7
RhiwXIfqK/Ykk0YOQRLlowRJuHU17w+8nfnGz80GL9ZN06AE3o7uCLem4FS0WK22
3I8WKJWY3opjD6FdyQIDAQABo1MwUTAdBgNVHQ4EFgQUnyUyfZmtc1z0AtSo8AS2
SHklcV4wHwYDVR0jBBgwFoAUnyUyfZmtc1z0AtSo8AS2SHklcV4wDwYDVR0TAQH/
BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAn4OP9GNeUl42T1mPewQa8x1jbFj/
klALcY1onrUFbpLHceFljyOLkDL+XufXGZ842h1/g4PVFQZlCku6qUaSNc9pz6JX
48olhJODV4+HZXh3KUpCDBXNxywnnKw+dF60imDPp7TdL2wdCSZAyH7pkbFlXsPU
B9SWLemyr/aX+/z3qD7OC6q1sHH9h7asRXbXycowROZozDCSVQKITC8P4avzbLJ9
yrUgjHyj2ymxMUOGs65fnKr1/xrMLjYyjN8v9OMVEh02+qO4pOhz4WCEEur1zIC1
X24YUhnX4QNJ4Qi1qwidAbBIZrXt4PW2i4Mw2eQO1RU1w81pz8vY725l2GygFG3N
DhEkAdILJ99KUN0YlU7BAPsCU5pe+uA40uBe5Oti9PAlEnvH4i49p34JKjZ4q30e
FIy5VjuCkmVlSzUfRQhZ8QRz2hdK/hJY6Pwo63UP7Mb1tup8hmEcfZATotMjUK4U
d+BYe6OFw50s2s6uMiVuu2Wb2sWsP5gOk9SkaCKbvQa4Miu/kWKbvT9Pb81u544t
XoqVO2d83uOm5FTM+gFgMDtJDK/poqIXho6MDnUES1SoUZgY2XRHLOBvCAms9SIW
HCzbrzSqs8P6UxaiV59Ht3toL/xQmR/skfrn/QUYdsSh9dtOStkHUOzzepkTroj0
MZUb2FnSikWBzcI=
-----END CERTIFICATE-----

View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDEq6OCSCs3Uysw
q4sH8FWfd4oRssX/qIzu5FwTjpvFKOa/d+b6rnWC2SR6RKKmR47bwGBx2jvQIOZ1
18ta0rKtws0FAHYXgwxTpuljz3vESrybXxUA7Pmjiog2zvGkKIKHAOZdjwRbDQBv
ceocurChKn3Vt8CjKSGecq6qN4dh0xPwEIWAsIpIsnrMSI3JbjCDlUe7SKEcWYKc
FZfgm71KBYnDgwTTFaRnzrVWLyvqJ/wfQldCzmbGJ5cR6CsF9Keu/KQelJxQA9SE
qqxLzU04dHOBwYJVyBWL6m2udh6qWRRP3FwAdX6QB9cT0ql/JwxirS/+kBmHAKS8
K+iTxl7JzaDwhxwfjJkTNiw3mMnvah6L7SHAKVd53UXt1lc6vsz02/4cIiNxCA/k
9TKWwYb6ogl0MenPPjfmSDp2zEHX9FP/xbJgnO9wPdzO1nQrVKFRynrC5tlnmzU9
DKpn+dflKvmQ/hqFwu//ZUnCfyApdrtF7ICj+mngJkD8M6aJ4ALDhXpOjPzIMxLe
/b+vArPhOVIjCEUSUg6u3eDuksKKS+0fBZgrrYhHpBNNiLXzD7rAXoAKOWorAgsh
dSlsLbWcEfm7RhiwXIfqK/Ykk0YOQRLlowRJuHU17w+8nfnGz80GL9ZN06AE3o7u
CLem4FS0WK223I8WKJWY3opjD6FdyQIDAQABAoICABxlA4htzv9/3H58ZehRhKsv
YRnJC9krhp1/DuQr9MV0cEw4jXqn8YNgwml8u1bygeesUMBfV79m4J8m9s84GGAJ
/fu441PlscPqF0w3ypC+kZiFE808aZZ5C82N90lSJ/ZB5QChA2n56JQuiDR5p8K9
Fcnja8aiy53KxPkCZ2NyTDCe0geQdYalbiFMYFwysoJs7RxXEhu7uKW8YF8nXR7w
ycEWi33GZCQwrfGxgc+e0kHZHCwjDKeTU7ZcJMoJVqRnCXL41dCfnPFCivmuvHVo
Kr0TKTQlXScEQ62qlCbYEZyuHgJa9FjrKNxNz/bxtlIQ2xsPxv+80gvw8vVS8KBF
KKZQ5R7SuCT1tGveHk3MEO8yUXj+LNB4H4xNK5LHcBc5ZFH5mcop5kkk4rnR+1pK
LFH1jpy1vdNEAeHNKbJAxrec1Z4NKs4Lwv6n5/b4EsoFwNlFM9IJ6dNqijMJXlsC
It9byyjKpcY/8w89EgN00aae4xPSBJTQU/gFgnUJmP+YD6i7B3/WCsZfnFeuj7qM
2T8Qxhf5R4/aNOqf0mCyV14HmglFygAzTin/e5fiEA1Pk8bc3+CHWmmfNIURq2kr
gQOg5k6R46P/93zLs6kZyLD4UL/7kn2rOIIlQqrbityaIppUNka7kxcD7h0R+yJW
lKLTMoEHPinkaM2X125ZAoIBAQD1ZZ7eeTsIdW5AcG+U1J690SGu03MHQAyZ+a0L
WOhVJn21lEuCTCu0dKcNSXET5ZLkzUmXt0UKJ20IZL1Az7cDekNvtNoTFDYrl1e7
uH52TuoUxxiANkDlTm5dSqA44flzNtG1rPcjNBbW6IRWAUQGSzOWPzJHAO2H4Wa4
m1m0YzwFz8PC5A1/NX8/BHsTYiIFsmf3o1I6M3HnrqHkftZmIVKataRZadDLpbTp
426kpY8WnnV9udXMPHmvBZ+P3kKjKc99oY/u4mtnPReBj0LIz+3Smc6cUpkdq/EI
VK2xCvFm/uJN93iLPyx2HJUf+bu/f+GvH8Fz8KCe/0PpKCv7AoIBAQDNKwu0jlaI
Y0mtrJZvXUPWtK3ZNUQ24BuVcCvi99R391f++oZ+g8ib1SqqLGNmY3DJ4WsbLtpi
9toPDLT4mgZAUEhjRLY+S0IeXTVxdN/JOZ6eMamyM3x75efWPILhxLk4AeibGIha
L5Ln2CWlDjc7mGZNjUn0HbXvdwEtDnlhoAnFDpKCOxEFt+r2cke3D0StpnFdcDfp
jL8NHmsSPBz2TFtMhtczkFB/1pc5Grf+3LemHQmKpOCfFQcS+VCI1UU5gfhkr6IS
ycCvvdioSwmolqhaBzug9yCx1pUL9s2FaiWIMzvvsy63lZkEC9009Zy5rGo0RWN8
Hr5HllKXs04LAoIBAQDPHyV3W1VzL0KOSxgywz70sZY/bCNThEDemTjwMetvK1zB
LNiKsmXVGvyAn3M8uvFAAvFRh5NTHbHOetCt6mPrIH/YwgmqPs31/vhC7lZ23uZ+
AQlx9djScl9+iGUxfbHBCAz6zXGOmgGJBJnlyY2zzjdNYiu6eFMD9EByIlUVhwh7
U0BEt52Yt/udodeLpbFXo5xTDNtzWkaSqPfl1xR5ATkqcZO1EDX2HPfUzWxutXpP
OhGqu3Zzurtt+U4S7SLLepexzvKgSyUh7xNu/A7/VVjC/6S+loy72YtIX8h2fOkB
6LHz4qMwzHJngnpvkaZg3LwMxr3OcNPxPzz/hzOPAoIBAQCQ6s3KzBtdHNyG+vgL
U1I+jsKZQOGc7TEundux5qHB1wjlxmlHZahGQgxvxQi04pphToLL4Y1KB9jAdpZB
XvH5bXuj+n3LhHcAYZAFQqtrQ/LBBI07nNhZ32uhTH6aH81APUDihDKTmTTn5Cm6
606iHqRsNNc+wdmnemRvQeEEzvj3orJjoHsGkgE58ECtkfBNw9ohSMmFgu/TwV+Z
srI2WnrGlBvfhRkHIzkPkcrTD238vFfoAUvTshOcGFQFQrcxxpb/73rIUI900uD9
BnudBEWHycIZkVUbqFkA6WQDz5URHjdAuUzPSbCaRhMKfE4mbB1cLIL3wfNfN1PB
aVo/AoIBAFISVR5sVewY2uBu9a4eb64p/30g+BaOmvhVt2gLfm65sCCLzYH4GjcW
ZI1IPvf7NtTfKa/RvNEGcGs2GYyWhUu4GlC5t3oKDyZo66oHSeM005nDbsMszaeQ
m1c0eGj8NsSf+3GHxTwVAtxwOlEkznxLE+dZADD49DJSG9B/FnG/0g6LGfOxSWRk
J3iQAUTriVRKcIxBmYe/BUxtyfkwEv3Wjc7W5LMRzT87pljd2i4jy1fxSqXCH9Wy
tButCdI31UcQdZ9jrPydCy5eJng087pHSMvsVHv/CDP3aka5HQU/tCMERsaFJKiS
l2qeGi6z5g40o9wd3s0sBaPePtZ7dUY=
-----END PRIVATE KEY-----

View file

@ -0,0 +1,164 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
spec:
tls:
- hosts:
- app1.example.com
- app2.example.com
secretName: secret-tls-app1app2
- hosts:
- app3.example.com
secretName: secret-tls-app3
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-app1
port:
number: 80
- host: app2.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-app2
port:
number: 80
- host: app3.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-app3
port:
number: 80
---
apiVersion: v1
kind: Secret
metadata:
name: secret-tls-app1app2
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZPVENDQXlHZ0F3SUJBZ0lVREJia0hpY214OG5xVVFObmtEdngzMmhxbWlzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xERXFNQ2dHQTFVRUF3d2hZWEJ3TVM1bGVHRnRjR3hsTG1OdmJTeGhjSEF5TG1WNFlXMXdiR1V1WTI5dApNQjRYRFRJek1USXhOekV4TWpnME5Gb1hEVE16TVRJeE5ERXhNamcwTkZvd0xERXFNQ2dHQTFVRUF3d2hZWEJ3Ck1TNWxlR0Z0Y0d4bExtTnZiU3hoY0hBeUxtVjRZVzF3YkdVdVkyOXRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUYKQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwUEU4Nk9waXlXU2dRbG0zMFNGNzM3Q003K05Jc1VuMGpvN1JaVW9CL3JtTQpqcnlXcnVRL0laT0g3VGpLeVBCZW1YKzkwcTU2RXhJUHRodUdLNlFUWkJHcHdOZEdMUkc3Z2h2S2VKU1dUa1p2CjhsWVd4L1JPU1FaNXhSYkpGTUR5WkF3amJoSmhMbFYydlYxOXZiQzVOa2diQm93U3BNendkOVlteTdVTGF6SVEKY1E3ZnJadTRCTmhMUTNhVHVOa3R4VDExdHV2STR6T0s2TWEwYW9CV0VNZ3lJL2xZcS9VNjF6TGMwTU9XVnRhMQo5TGxvNUFPOTBNTjUrNXBNMHhaUGd2Vk5zcndDeVdnYStjbC9veWtraW1tenhSTUE2N3QwMWV3OE1oZUs2ZkZDCjVzTHFRUHFTbWVsZ2tCL0ZmM2Vhb3hZaEdnV1lWeDZqT2c4OXp1VzY1d1ZiT1Zva3EwcG1sTFdlNDhFYTZvVGUKQUMvK1hxMlRXbnptLzNSSTEwWVNGVGR6Y3NscU84SDJlNFBhM295ajJrTms3SkU4R0hld0NBOVdMK1NJUDE4dApHdGJUQVhvblNIYXNlV3UxU3RlbG00M1YvTjJBVmlJTHY3YUJORkhKOGlHV3NPcVNqSkNWcXltdE9zbW9zWllaCnpvc0xTSXROclRHdFJUcWo1djVnc3luUXJuRWoyaE05bkZWT3NWU1RIbHRNT2ozOW5mcmtjRzcwVnNuMVo3ZEIKbWhtMWhJRGkwZlpTUGlMdzFvL1BzS2ROT2Nmbm1QWDRvbDR2VzQ4SGlsQkRJTlZhUUFKTVUwMTZKZ1NPZUJscwp0R2RDWldGY2VPZEV3VnkrMTJBVFBvbFNhWThSbzZOdEhXNXI2T05jSWtaaTlOY2N4amw1RVR6OVdhbGZ5SUVDCkF3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZIaVVFemFFSzZJdjZ6UU1vcHRoU09mWnBLNUpNQjhHQTFVZEl3UVkKTUJhQUZIaVVFemFFSzZJdjZ6UU1vcHRoU09mWnBLNUpNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQpodmNOQVFFTEJRQURnZ0lCQUF0WFVSRDRIVDNrTVNzY1ZCeXFVTTRpbkpjM3A4ZEdFQXhBUVJOQnhOM1ZPa3dBCm1lbHlSUTNTZUJVSktuRWxHVHRnTUlXN0ptRVBkWmRBY1FpVVoyVUVJN0FLaE1XQUNHZzZMQkdSTlhBVHAxc0EKR0F6UGdWcU5Wcyt4Mkl5aWY1a0U5eFdzcytWRTNQSDE3TE1KTWhxbHBLY2prcnJGd3RtdFJDMmExZkduREx0SwpVb2V3VUlqQy85cUVLeVNRczNleUNDYmpuSldEcHZKYVVyQnBJVXZqRkhIdXMvVU9ZbUN1N1VCeFNhMzFra3UvCmNWcEpWaTBmT0R5QTVWSDYwNkFTNGZSOVhRQkRGODBGWUg3ZHIramtYY01taDlGQWw1QXN2UGVQN25oY1gvbk0KZndsRUhUNi9UT1gweHc4YzVQK3NLbUpBU0J0L0x2YytwRld4TlJMbEY5U1djc2tYVDN3ZjVob3o4cVJTODlpcAo1NjdjUERxdU9IbUc0cWcyYzBmOEkybU5vbXhWbDRUVzRmalNxdHZzb0lRRERUenlYQkJHMXBNTWhRTU5jakdJCnR3cHVzSWRJUUhUa1I2aGVCZm1TakdTa2g2YzRiWHc0NFFXbDFrcTArdW91S0YyYUZhakFVbVJxM01DK3I2aVAKeWcxekJwUGtOTUlDZkN5ZWtoWTFOM1RIZlU5YmhFQnR2Yklxb2J1VEdwMk95ZWtCU2hPa3BYZmVMcDFoRElQaAoxMFJRVTNsekU0L2ZpcGphK3QvSWlCeEFKMjBNU3NIT0Z2UFJwWDJRNi83NTg0ZWd1QTVoQXNmbFF3MVBJWGo1CndPaTRjbTZ0eDN4Vld6aHVSSGE2b1VCdFNTL0lqUlg1NWxjV0ZFOHhZWHF1bHBITTJyUC9LQXNDS3UzTgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1N3d2dna29BZ0VBQW9JQ0FRRFE4VHpvNm1MSlpLQkMKV2JmUklYdmZzSXp2NDBpeFNmU09qdEZsU2dIK3VZeU92SmF1NUQ4aGs0ZnRPTXJJOEY2WmY3M1Nybm9URWcrMgpHNFlycEJOa0VhbkExMFl0RWJ1Q0c4cDRsSlpPUm0veVZoYkg5RTVKQm5uRkZza1V3UEprRENOdUVtRXVWWGE5ClhYMjlzTGsyU0JzR2pCS2t6UEIzMWliTHRRdHJNaEJ4RHQrdG03Z0UyRXREZHBPNDJTM0ZQWFcyNjhqak00cm8KeHJScWdGWVF5RElqK1ZpcjlUclhNdHpRdzVaVzFyWDB1V2prQTczUXczbjdta3pURmsrQzlVMnl2QUxKYUJyNQp5WCtqS1NTS2FiUEZFd0RydTNUVjdEd3lGNHJwOFVMbXd1cEErcEtaNldDUUg4Vi9kNXFqRmlFYUJaaFhIcU02CkR6M081YnJuQlZzNVdpU3JTbWFVdFo3andScnFoTjRBTC81ZXJaTmFmT2IvZEVqWFJoSVZOM055eVdvN3dmWjcKZzlyZWpLUGFRMlRza1R3WWQ3QUlEMVl2NUlnL1h5MGExdE1CZWlkSWRxeDVhN1ZLMTZXYmpkWDgzWUJXSWd1Lwp0b0UwVWNueUlaYXc2cEtNa0pXckthMDZ5YWl4bGhuT2l3dElpMDJ0TWExRk9xUG0vbUN6S2RDdWNTUGFFejJjClZVNnhWSk1lVzB3NlBmMmQrdVJ3YnZSV3lmVm50MEdhR2JXRWdPTFI5bEkrSXZEV2o4K3dwMDA1eCtlWTlmaWkKWGk5Ymp3ZUtVRU1nMVZwQUFreFRUWG9tQkk1NEdXeTBaMEpsWVZ4NDUwVEJYTDdYWUJNK2lWSnBqeEdqbzIwZApibXZvNDF3aVJtTDAxeHpHT1hrUlBQMVpxVi9JZ1FJREFRQUJBb0lDQVFDdG5oY256ME5nNTMySFJMZktUaEY1CnNXR2JIL2hTWVFxV3ZyUGVmNTJpeFJtM3JadGtIZ01iYWxURFdMS2dQNlBMMXVxcnV4Rnk4VW9lMzBZZzAwak4KbVNPK091TjBKY3p5Y3hkT0ZPSEVqeUVNZEY2ZnJqQ3kyMitweHFJMTNaSk1jZzJxdEJrT2dET1hiSzFFUnluUApvaURhMHQvWEV2Z3FDOGZXODB4V3VaWVI2L01QZGxwMXBDaitHUFRzMzRINTZIVDlGM1dvM1RacThGb1FPUzNLCjZoOUg1elM0UnFDckd2ZURmVkphUERXYjhjam4xdmdPRmJBeDBtaE42cmNOTWJwcmIzQzlYUVUxVkNyOEwvN08KQ01FNVcrNGk4M1JGSWZSdkIwTUYyOVRrblVnNzBEcXJLOUp5VUFRelEvWTUxL1NQZytDdlc2VDBaSi9PWVBSbwo3SGZOR2sxK3lob3Uyd3ZabkM5T3FJOTh0WkJuaU81ZkVkY1VDZ3VhWlpXVzdqd01wT05rMGNJOHNtNk5vV3B5CnVpSWIyVzVqTmxPcFhxQngvMHZlZWpmRHRmc283TXZrUFkvaHdwcHcrK0RZMzMxYXUycnNMc0RiWFV4OTZTT0oKZDdQeWZsWE5qcnJ6U1RPNVg2VXlRaVlObDEvRWFCUWpRTi9SOVl4eUMydVMrVXNNNVVlc0I1VGcrK2pFUjZITAptVDZjY2NFNVlMamJkVGZUOVREdmdOSWdCMnRTMW1uQnZJNG5PYmFNWC9KdUFTeU1ZVUVvUVFzaU5QdHVFbHFDClU3RFhrZ01LSGQ2cWxyc1ZNeHJJeWloM1VOanR5UVpCUWNva1A0VWNXNWhJelRMeXJOUHlCU3poNlFVYnM0S24KbEw5UHlZWWNERVhsTVAzMGkrTTNBUUtDQVFFQTdjY2dqTVlJWXEycXY4WC9HMTVabVdkdzUrSHoxNlM1OEt6RQpuMG1WRjRIdDE2bUJEZnJRdmUwaDVubjYvaDMzYmZmcGd4S2lnbU0wYit2RXpnUHRQU2xOaGFMQ0U0S3Q3U1puCk51UlZISjc0bkhYc1RpK1owWlNrZ2VLd0JSbWppNVRON1BCRW9WZGFFeGhNL3FHbndHN3g1Q1FOTFEwTzF3MkoKNWI2eXdHbmdoamxoSFJJNXVHZG1IeTJuNk41UmozN09GckxWT0xkRWV4eTM1MW9nWlk3NDY3M0JYR1ZqTE5lMgpVTU02Q2F6RTAwZ0R3S3Ywck9uaVp2NzMyTzhNVmFPTVI2Q1lHM3o3VGdmVkdFU1dTMW1FR1Rya2JMZ0diVDRYCm5hR2hVSDkwK0FLWndEMkxtTUpQYlFSNVBod2NtYUN4L3hnUGoxUldSbDR6ZW1EanNRS0NBUUVBNFBSbDQxV2QKWWlpcmdjNDFvWEMzaGsvY010Q3N6K0N6OFdMN3BDUkpMM2h2WC9aKzdQcDZlTWVpSEJuYU9ialpOVVkvZUMrcwpJMWk0dENTaE1ucVNkZG0vWW52Z2lTMVVzREYyTjRYbTBvUjBQZkswamNRRHEvSVl5eENKbXA1NlpKOHkxYzVXCnY5d3ZKKzdVL0FFTGp1cWtHaVowdzB3REd0ZE5kRlZiVVNqeWYzODVEbXEwRDE5cnJsM1k5T21vRGFFQ1lWZFMKTDcvOGhqSWdtVDA5K1lyZjA1K0lsRW8vZjZhUGpNMXhpNldZQzMrYVFPcDN5alc2b1NQRVpadWMyV2ZWeWhzcwpBaURTd2JxdTFueFM1V3N3T1RHS21pcmwzYnRBQ2FmT0s4eC9jemVvcU04V2pqdThIQUcxYnRsVVQ0QnpMTlZrCkdaUjE0aUpjRnhaMTBRS0NBUUJyaTZjelJOYkNHeDZod3FJUjlPaTlzOFdqZTlWWWNjOFFCblNnUHgzS0ZpQkgKYlFsTUUyZWFuOGkzZi9DQVEzbUlLWnRhaDNFdFhFVjVZY0FRRmtLVmFUc0ErSTZqV0hYbVQzcGJuNGJIZlRlaApQTXoyeUJ6Z2FFVEg0b29PcEh3T1ErMm4venhyWlNEK2hmMDlKa3pEZ3VxeGI0VHVIWHZhMU9yTUdTYXNWTGNTCnZwMG9Fdmc4YWJnTTNnK1dDZ2dGeVNyWnBXVS9VOVVMZ2YvRUNrV2c2YnU0bElrQ2kzRUI5VWNtM0VaQjNmemcKT3pCSFV2OUZ2anVDcmt2WHVMZHhmSm1VUkJUSVNnMDRTOTZjTFZsMUZ6WGlXM3E1bWJwK2Fwa3YyTTBucFo1NApGbVVJU0UzOWQ5V0l6Mzh2RW5QMUlIT2hsM1ppTTVrYUZyMWQycmpoQW9JQkFHT3RCMFIvR0JoNWF0MCtjTmNTCjZjN3lyZUE2UklocnlXL0k2eldrK21TMVdheE12WnJsdGNTMHVHajVMNC9xRHh5aS90YVRVUlBzYVJNeE05ZjUKSmRKZ1pJUVAzY01LdWY3RU85eUlVV213VlExcDhJVHNlTEFFdXVXbmMwRjJ2VWErbjdqTEQvYzlhZ3Vvc09qawowYWxHNE9YUmFtVnExZWxid3k4cjd5VjhIazlPSVFyNVRzV05BMXFrck5DQWcvMWQvWDhDUVNGMVVVQnBEN2EyCnd6SkNUY0VvYkUxQXhQZ2I1bmwrUXJTYzhFMFFBbHFIU2dMb1ljU3E0NGdlTnBiQ2dxRmwvczhHbWp4TEt0TlIKRFM0b201cU1FQjBWcXZyZjBKVTJySTBOdE45cHB5cjliOElnUjg2bEZ5NkJ6L0RXT3JKLzd6WENhYVdFa2dlTQo1VEVDZ2dFQUtTdmxvUjlwVm0wbnp2TjNlNFh0amowMXJWVVpPVTY2N2xVVDNUQWVEeWNUVExLNHRYc1lSNDdWCm9sRG1Ld0lON1lML1U2V0FtMUNsRStER01udDI3aEtlSUJjdEtKWGlpSXFLN2hsQUFPbWs2bkNXVVhVN3lDZ2IKUmtWOURUWEhRNGdFdHpnVTBreDByOXBUeWRjMTlyTUFhbmw3ZmdpTlVOYytSY0hlTlNIOWhvV1BUR3BPYjVPbQpSNEx1QUpTZXdNZHRuWUZhN1h1M1A3UWpUN2IwZDdBUkduRjFPcmpLQTlOcW02NUQzYmg4aGxpa0FOckdrTStrCnBQTTJCSmlUbmg2dkxZTWg1VEJNU0ZOTEpQVUtJdHlUYUl6MkNWRmRXRTVpcFYzVVBqajhiZVlzRkR0MjRYbUMKRkk4OGc3YUNKSGxQMnd2dXlaaVBuT3RDZEdWVkt3PT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
type: kubernetes.io/tls
---
apiVersion: v1
kind: Secret
metadata:
name: secret-tls-app3
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGekNDQXYrZ0F3SUJBZ0lVRVRYeG9iZmx4V2huSElML3U3S0JSRS95NGVzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0d6RVpNQmNHQTFVRUF3d1FZWEJ3TXk1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TXpFeU1UY3hNVE13TVRkYQpGdzB6TXpFeU1UUXhNVE13TVRkYU1Cc3hHVEFYQmdOVkJBTU1FR0Z3Y0RNdVpYaGhiWEJzWlM1amIyMHdnZ0lpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQ0R3QXdnZ0lLQW9JQ0FRREVxNk9DU0NzM1V5c3dxNHNIOEZXZmQ0b1IKc3NYL3FJenU1RndUanB2RktPYS9kK2I2cm5XQzJTUjZSS0ttUjQ3YndHQngyanZRSU9aMTE4dGEwckt0d3MwRgpBSFlYZ3d4VHB1bGp6M3ZFU3J5Ylh4VUE3UG1qaW9nMnp2R2tLSUtIQU9aZGp3UmJEUUJ2Y2VvY3VyQ2hLbjNWCnQ4Q2pLU0dlY3E2cU40ZGgweFB3RUlXQXNJcElzbnJNU0kzSmJqQ0RsVWU3U0tFY1dZS2NGWmZnbTcxS0JZbkQKZ3dUVEZhUm56clZXTHl2cUovd2ZRbGRDem1iR0o1Y1I2Q3NGOUtldS9LUWVsSnhRQTlTRXFxeEx6VTA0ZEhPQgp3WUpWeUJXTDZtMnVkaDZxV1JSUDNGd0FkWDZRQjljVDBxbC9Kd3hpclMvK2tCbUhBS1M4SytpVHhsN0p6YUR3Cmh4d2ZqSmtUTml3M21NbnZhaDZMN1NIQUtWZDUzVVh0MWxjNnZzejAyLzRjSWlOeENBL2s5VEtXd1liNm9nbDAKTWVuUFBqZm1TRHAyekVIWDlGUC94Ykpnbk85d1Bkek8xblFyVktGUnluckM1dGxubXpVOURLcG4rZGZsS3ZtUQovaHFGd3UvL1pVbkNmeUFwZHJ0RjdJQ2orbW5nSmtEOE02YUo0QUxEaFhwT2pQeklNeExlL2IrdkFyUGhPVklqCkNFVVNVZzZ1M2VEdWtzS0tTKzBmQlpncnJZaEhwQk5OaUxYekQ3ckFYb0FLT1dvckFnc2hkU2xzTGJXY0VmbTcKUmhpd1hJZnFLL1lrazBZT1FSTGxvd1JKdUhVMTd3KzhuZm5HejgwR0w5Wk4wNkFFM283dUNMZW00RlMwV0syMgozSThXS0pXWTNvcGpENkZkeVFJREFRQUJvMU13VVRBZEJnTlZIUTRFRmdRVW55VXlmWm10YzF6MEF0U284QVMyClNIa2xjVjR3SHdZRFZSMGpCQmd3Rm9BVW55VXlmWm10YzF6MEF0U284QVMyU0hrbGNWNHdEd1lEVlIwVEFRSC8KQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBbjRPUDlHTmVVbDQyVDFtUGV3UWE4eDFqYkZqLwprbEFMY1kxb25yVUZicExIY2VGbGp5T0xrREwrWHVmWEdaODQyaDEvZzRQVkZRWmxDa3U2cVVhU05jOXB6NkpYCjQ4b2xoSk9EVjQrSFpYaDNLVXBDREJYTnh5d25uS3crZEY2MGltRFBwN1RkTDJ3ZENTWkF5SDdwa2JGbFhzUFUKQjlTV0xlbXlyL2FYKy96M3FEN09DNnExc0hIOWg3YXNSWGJYeWNvd1JPWm96RENTVlFLSVRDOFA0YXZ6YkxKOQp5clVnakh5ajJ5bXhNVU9HczY1Zm5LcjEveHJNTGpZeWpOOHY5T01WRWgwMitxTzRwT2h6NFdDRUV1cjF6SUMxClgyNFlVaG5YNFFOSjRRaTFxd2lkQWJCSVpyWHQ0UFcyaTRNdzJlUU8xUlUxdzgxcHo4dlk3MjVsMkd5Z0ZHM04KRGhFa0FkSUxKOTlLVU4wWWxVN0JBUHNDVTVwZSt1QTQwdUJlNU90aTlQQWxFbnZINGk0OXAzNEpLalo0cTMwZQpGSXk1Vmp1Q2ttVmxTelVmUlFoWjhRUnoyaGRLL2hKWTZQd282M1VQN01iMXR1cDhobUVjZlpBVG90TWpVSzRVCmQrQlllNk9GdzUwczJzNnVNaVZ1dTJXYjJzV3NQNWdPazlTa2FDS2J2UWE0TWl1L2tXS2J2VDlQYjgxdTU0NHQKWG9xVk8yZDgzdU9tNUZUTStnRmdNRHRKREsvcG9xSVhobzZNRG5VRVMxU29VWmdZMlhSSExPQnZDQW1zOVNJVwpIQ3picnpTcXM4UDZVeGFpVjU5SHQzdG9ML3hRbVIvc2tmcm4vUVVZZHNTaDlkdE9TdGtIVU96emVwa1Ryb2owCk1aVWIyRm5TaWtXQnpjST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRREVxNk9DU0NzM1V5c3cKcTRzSDhGV2ZkNG9Sc3NYL3FJenU1RndUanB2RktPYS9kK2I2cm5XQzJTUjZSS0ttUjQ3YndHQngyanZRSU9aMQoxOHRhMHJLdHdzMEZBSFlYZ3d4VHB1bGp6M3ZFU3J5Ylh4VUE3UG1qaW9nMnp2R2tLSUtIQU9aZGp3UmJEUUJ2CmNlb2N1ckNoS24zVnQ4Q2pLU0dlY3E2cU40ZGgweFB3RUlXQXNJcElzbnJNU0kzSmJqQ0RsVWU3U0tFY1dZS2MKRlpmZ203MUtCWW5EZ3dUVEZhUm56clZXTHl2cUovd2ZRbGRDem1iR0o1Y1I2Q3NGOUtldS9LUWVsSnhRQTlTRQpxcXhMelUwNGRIT0J3WUpWeUJXTDZtMnVkaDZxV1JSUDNGd0FkWDZRQjljVDBxbC9Kd3hpclMvK2tCbUhBS1M4CksraVR4bDdKemFEd2h4d2ZqSmtUTml3M21NbnZhaDZMN1NIQUtWZDUzVVh0MWxjNnZzejAyLzRjSWlOeENBL2sKOVRLV3dZYjZvZ2wwTWVuUFBqZm1TRHAyekVIWDlGUC94Ykpnbk85d1Bkek8xblFyVktGUnluckM1dGxubXpVOQpES3BuK2RmbEt2bVEvaHFGd3UvL1pVbkNmeUFwZHJ0RjdJQ2orbW5nSmtEOE02YUo0QUxEaFhwT2pQeklNeExlCi9iK3ZBclBoT1ZJakNFVVNVZzZ1M2VEdWtzS0tTKzBmQlpncnJZaEhwQk5OaUxYekQ3ckFYb0FLT1dvckFnc2gKZFNsc0xiV2NFZm03Umhpd1hJZnFLL1lrazBZT1FSTGxvd1JKdUhVMTd3KzhuZm5HejgwR0w5Wk4wNkFFM283dQpDTGVtNEZTMFdLMjIzSThXS0pXWTNvcGpENkZkeVFJREFRQUJBb0lDQUJ4bEE0aHR6djkvM0g1OFplaFJoS3N2CllSbkpDOWtyaHAxL0R1UXI5TVYwY0V3NGpYcW44WU5nd21sOHUxYnlnZWVzVU1CZlY3OW00SjhtOXM4NEdHQUoKL2Z1NDQxUGxzY1BxRjB3M3lwQytrWmlGRTgwOGFaWjVDODJOOTBsU0ovWkI1UUNoQTJuNTZKUXVpRFI1cDhLOQpGY25qYThhaXk1M0t4UGtDWjJOeVREQ2UwZ2VRZFlhbGJpRk1ZRnd5c29KczdSeFhFaHU3dUtXOFlGOG5YUjd3CnljRVdpMzNHWkNRd3JmR3hnYytlMGtIWkhDd2pES2VUVTdaY0pNb0pWcVJuQ1hMNDFkQ2ZuUEZDaXZtdXZIVm8KS3IwVEtUUWxYU2NFUTYycWxDYllFWnl1SGdKYTlGanJLTnhOei9ieHRsSVEyeHNQeHYrODBndnc4dlZTOEtCRgpLS1pRNVI3U3VDVDF0R3ZlSGszTUVPOHlVWGorTE5CNEg0eE5LNUxIY0JjNVpGSDVtY29wNWtrazRyblIrMXBLCkxGSDFqcHkxdmRORUFlSE5LYkpBeHJlYzFaNE5LczRMd3Y2bjUvYjRFc29Gd05sRk05SUo2ZE5xaWpNSlhsc0MKSXQ5Ynl5aktwY1kvOHc4OUVnTjAwYWFlNHhQU0JKVFFVL2dGZ25VSm1QK1lENmk3QjMvV0NzWmZuRmV1ajdxTQoyVDhReGhmNVI0L2FOT3FmMG1DeVYxNEhtZ2xGeWdBelRpbi9lNWZpRUExUGs4YmMzK0NIV21tZk5JVVJxMmtyCmdRT2c1azZSNDZQLzkzekxzNmtaeUxENFVMLzdrbjJyT0lJbFFxcmJpdHlhSXBwVU5rYTdreGNEN2gwUit5SlcKbEtMVE1vRUhQaW5rYU0yWDEyNVpBb0lCQVFEMVpaN2VlVHNJZFc1QWNHK1UxSjY5MFNHdTAzTUhRQXlaK2EwTApXT2hWSm4yMWxFdUNUQ3UwZEtjTlNYRVQ1WkxrelVtWHQwVUtKMjBJWkwxQXo3Y0Rla052dE5vVEZEWXJsMWU3CnVINTJUdW9VeHhpQU5rRGxUbTVkU3FBNDRmbHpOdEcxclBjak5CYlc2SVJXQVVRR1N6T1dQekpIQU8ySDRXYTQKbTFtMFl6d0Z6OFBDNUExL05YOC9CSHNUWWlJRnNtZjNvMUk2TTNIbnJxSGtmdFptSVZLYXRhUlphZERMcGJUcAo0MjZrcFk4V25uVjl1ZFhNUEhtdkJaK1Aza0tqS2M5OW9ZL3U0bXRuUFJlQmowTEl6KzNTbWM2Y1Vwa2RxL0VJClZLMnhDdkZtL3VKTjkzaUxQeXgySEpVZitidS9mK0d2SDhGejhLQ2UvMFBwS0N2N0FvSUJBUUROS3d1MGpsYUkKWTBtdHJKWnZYVVBXdEszWk5VUTI0QnVWY0N2aTk5UjM5MWYrK29aK2c4aWIxU3FxTEdObVkzREo0V3NiTHRwaQo5dG9QRExUNG1nWkFVRWhqUkxZK1MwSWVYVFZ4ZE4vSk9aNmVNYW15TTN4NzVlZldQSUxoeExrNEFlaWJHSWhhCkw1TG4yQ1dsRGpjN21HWk5qVW4wSGJYdmR3RXREbmxob0FuRkRwS0NPeEVGdCtyMmNrZTNEMFN0cG5GZGNEZnAKakw4Tkhtc1NQQnoyVEZ0TWh0Y3prRkIvMXBjNUdyZiszTGVtSFFtS3BPQ2ZGUWNTK1ZDSTFVVTVnZmhrcjZJUwp5Y0N2dmRpb1N3bW9scWhhQnp1Zzl5Q3gxcFVMOXMyRmFpV0lNenZ2c3k2M2xaa0VDOTAwOVp5NXJHbzBSV044CkhyNUhsbEtYczA0TEFvSUJBUURQSHlWM1cxVnpMMEtPU3hneXd6NzBzWlkvYkNOVGhFRGVtVGp3TWV0dksxekIKTE5pS3NtWFZHdnlBbjNNOHV2RkFBdkZSaDVOVEhiSE9ldEN0Nm1QcklIL1l3Z21xUHMzMS92aEM3bFoyM3VaKwpBUWx4OWRqU2NsOStpR1V4ZmJIQkNBejZ6WEdPbWdHSkJKbmx5WTJ6empkTllpdTZlRk1EOUVCeUlsVVZod2g3ClUwQkV0NTJZdC91ZG9kZUxwYkZYbzV4VEROdHpXa2FTcVBmbDF4UjVBVGtxY1pPMUVEWDJIUGZVeld4dXRYcFAKT2hHcXUzWnp1cnR0K1U0UzdTTExlcGV4enZLZ1N5VWg3eE51L0E3L1ZWakMvNlMrbG95NzJZdElYOGgyZk9rQgo2TEh6NHFNd3pISm5nbnB2a2FaZzNMd014cjNPY05QeFB6ei9oek9QQW9JQkFRQ1E2czNLekJ0ZEhOeUcrdmdMClUxSStqc0taUU9HYzdURXVuZHV4NXFIQjF3amx4bWxIWmFoR1FneHZ4UWkwNHBwaFRvTEw0WTFLQjlqQWRwWkIKWHZINWJYdWorbjNMaEhjQVlaQUZRcXRyUS9MQkJJMDduTmhaMzJ1aFRINmFIODFBUFVEaWhES1RtVFRuNUNtNgo2MDZpSHFSc05OYyt3ZG1uZW1SdlFlRUV6dmozb3JKam9Ic0drZ0U1OEVDdGtmQk53OW9oU01tRmd1L1R3VitaCnNySTJXbnJHbEJ2ZmhSa0hJemtQa2NyVEQyMzh2RmZvQVV2VHNoT2NHRlFGUXJjeHhwYi83M3JJVUk5MDB1RDkKQm51ZEJFV0h5Y0laa1ZVYnFGa0E2V1FEejVVUkhqZEF1VXpQU2JDYVJoTUtmRTRtYkIxY0xJTDN3Zk5mTjFQQgphVm8vQW9JQkFGSVNWUjVzVmV3WTJ1QnU5YTRlYjY0cC8zMGcrQmFPbXZoVnQyZ0xmbTY1c0NDTHpZSDRHamNXClpJMUlQdmY3TnRUZkthL1J2TkVHY0dzMkdZeVdoVXU0R2xDNXQzb0tEeVpvNjZvSFNlTTAwNW5EYnNNc3phZVEKbTFjMGVHajhOc1NmKzNHSHhUd1ZBdHh3T2xFa3pueExFK2RaQURENDlESlNHOUIvRm5HLzBnNkxHZk94U1dSawpKM2lRQVVUcmlWUktjSXhCbVllL0JVeHR5Zmt3RXYzV2pjN1c1TE1SelQ4N3BsamQyaTRqeTFmeFNxWENIOVd5CnRCdXRDZEkzMVVjUWRaOWpyUHlkQ3k1ZUpuZzA4N3BIU012c1ZIdi9DRFAzYWthNUhRVS90Q01FUnNhRkpLaVMKbDJxZUdpNno1ZzQwbzl3ZDNzMHNCYVBlUHRaN2RVWT0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
type: kubernetes.io/tls
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
labels:
app: app1
spec:
replicas: 1
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: app1
image: tutum/hello-world
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app2
labels:
app: app2
spec:
replicas: 1
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
containers:
- name: app2
image: tutum/hello-world
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app3
labels:
app: app3
spec:
replicas: 1
selector:
matchLabels:
app: app3
template:
metadata:
labels:
app: app3
spec:
containers:
- name: app3
image: tutum/hello-world
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: svc-app1
spec:
selector:
app: app1
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: svc-app2
spec:
selector:
app: app2
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: svc-app3
spec:
selector:
app: app3
ports:
- protocol: TCP
port: 80
targetPort: 80

View file

@ -0,0 +1,26 @@
{
"name": "kubernetes-ingress",
"kinds": ["kubernetes"],
"timeout": 60,
"delay": 60,
"tests": [
{
"type": "string",
"url": "https://app1.example.com",
"string": "hello",
"tls": "app1.example.com,app2.example.com"
},
{
"type": "string",
"url": "https://app2.example.com",
"string": "hello",
"tls": "app1.example.com,app2.example.com"
},
{
"type": "string",
"url": "https://app3.example.com",
"string": "hello",
"tls": "app3.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -31,7 +31,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,7 +7,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "hello"
"string": "hello",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -29,7 +29,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -8,7 +8,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "magento"
"string": "magento",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -44,7 +44,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,7 +7,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "mattermost"
"string": "mattermost",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -27,7 +27,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -8,7 +8,8 @@
{
"type": "status",
"url": "https://www.example.com",
"status": 401
"status": 401,
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -25,7 +25,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -7,7 +7,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "moodle"
"string": "moodle",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -54,7 +54,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -8,7 +8,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "nextcloud"
"string": "nextcloud",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -26,7 +26,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -6,7 +6,8 @@
{
"type": "string",
"url": "https://www.example.com",
"string": "passbolt"
"string": "passbolt",
"tls": "www.example.com"
}
]
}

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -31,7 +31,7 @@ services:
- bw-services
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

View file

@ -2,7 +2,7 @@ version: "3"
services:
mybunker:
image: bunkerity/bunkerweb:1.5.4
image: bunkerity/bunkerweb:1.5.5
ports:
- 80:8080
- 443:8443
@ -34,7 +34,7 @@ services:
- net-app2
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.4
image: bunkerity/bunkerweb-scheduler:1.5.5
depends_on:
- mybunker
environment:

Some files were not shown because too many files have changed in this diff Show more