<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rvogel1</id>
	<title>BlueSpice Helpdesk - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rvogel1"/>
	<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/wiki/Special:Contributions/Rvogel1"/>
	<updated>2026-08-14T02:45:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14723</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14723"/>
		<updated>2026-08-10T15:06:45Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|&amp;lt;code&amp;gt;pro&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;farm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
&amp;lt;code&amp;gt;wiki&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cache&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Main application image ===&lt;br /&gt;
Pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; oras discover docker.bluespice.com/bluespice-farm/wiki:5.2.6&lt;br /&gt;
docker.bluespice.com/bluespice-farm/wiki@sha256:c683b74003ebedf40f0aa6c66fe858619dcbb036eeb191d3afc4385c3779260b&lt;br /&gt;
└── application/vnd.cyclonedx+json&lt;br /&gt;
    └── sha256:3d7b0eca2caad4ac8a2f9e939186183722f43923ebdf6c07e38bb1fe58454058&lt;br /&gt;
        └── [annotations]&lt;br /&gt;
            └── org.opencontainers.image.created: &amp;quot;2026-08-03T15:18:42Z&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment, e.g. &amp;lt;code&amp;gt;3d7b0e...58&amp;lt;/code&amp;gt; from the example):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Companion service images ===&lt;br /&gt;
Pull the image for the desired version:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect the attachments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perform a security scan ===&lt;br /&gt;
The previous commands have created a ​ &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt; file in the local directory. You can now scan it. Below is a scanning example for &amp;lt;code&amp;gt;trivy&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14714</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14714"/>
		<updated>2026-08-07T14:12:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; oras discover docker.bluespice.com/bluespice-farm/wiki:5.2.6&lt;br /&gt;
docker.bluespice.com/bluespice-farm/wiki@sha256:c683b74003ebedf40f0aa6c66fe858619dcbb036eeb191d3afc4385c3779260b&lt;br /&gt;
└── application/vnd.cyclonedx+json&lt;br /&gt;
    └── sha256:3d7b0eca2caad4ac8a2f9e939186183722f43923ebdf6c07e38bb1fe58454058&lt;br /&gt;
        └── [annotations]&lt;br /&gt;
            └── org.opencontainers.image.created: &amp;quot;2026-08-03T15:18:42Z&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment, e.g. &amp;lt;code&amp;gt;3d7b0e...58&amp;lt;/code&amp;gt; from the example):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14713</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14713"/>
		<updated>2026-08-07T14:07:02Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14712</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14712"/>
		<updated>2026-08-07T14:06:31Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy:0.72.0 \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14711</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14711"/>
		<updated>2026-08-07T13:18:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha-string):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \ -v &amp;quot;$PWD:/work:ro&amp;quot; \ aquasec/trivy:0.72.0 \ sbom \ --severity CRITICAL \ --ignore-unfixed \ --exit-code 1 \ /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14710</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14710"/>
		<updated>2026-08-07T13:15:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com /bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com /bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha-string):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com /bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \ -v &amp;quot;$PWD:/work:ro&amp;quot; \ aquasec/trivy:0.72.0 \ sbom \ --severity CRITICAL \ --ignore-unfixed \ --exit-code 1 \ /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14655</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14655"/>
		<updated>2026-08-04T06:02:34Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.6.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.6.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.6/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Use one consistent version number|text=The tag number 5.2.5 in this command (could be 5.1.9, 5.2.4 etc. as well) should also be used as the &amp;lt;code&amp;gt;VERSION=&amp;lt;/code&amp;gt; number in Step 2.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.2.5&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Since tag 5.1.4 and tag 5.2.0 of project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, we allow to edit and maintain a separate &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. Just place the file next to the other &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; s and run &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Reference:BlueSpiceInterwikiSearch&amp;diff=14644</id>
		<title>Reference:BlueSpiceInterwikiSearch</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Reference:BlueSpiceInterwikiSearch&amp;diff=14644"/>
		<updated>2026-07-31T13:06:41Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BSExtensionInfo&lt;br /&gt;
|desc=Simultaneous search in multiple wikis&lt;br /&gt;
|status=stable&lt;br /&gt;
|developer=HalloWelt&lt;br /&gt;
|type=BlueSpice&lt;br /&gt;
|edition=BlueSpice pro (deactivated), BlueSpice farm (deactivated)&lt;br /&gt;
|compatible=BlueSpice&lt;br /&gt;
|license=GPL v3&lt;br /&gt;
|docu=Manual:Extension/BlueSpiceInterwikiSearch&lt;br /&gt;
|active=Yes&lt;br /&gt;
|features=&lt;br /&gt;
&#039;&#039;&#039;InterwikiSearch&#039;&#039;&#039; alows simultaneously searching other BlueSpice wikis.&lt;br /&gt;
==Usage / features==&lt;br /&gt;
If BlueSpiceInterwikiSearch is enabled and configured on the wiki, the &amp;lt;code&amp;gt;Special:SearchCenter&amp;lt;/code&amp;gt;, shows results from other wikis. Results are shown as buttons on top of the results list.&lt;br /&gt;
&lt;br /&gt;
==Technical information==&lt;br /&gt;
===Configuration===&lt;br /&gt;
To set up this service, wiki administrator must add following settings into LocalSettings.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgBlueSpiceInterwikiSearch&#039;][&#039;Wiki_name&#039;] = [&lt;br /&gt;
   &amp;quot;name&amp;quot; =&amp;gt; &amp;quot;Wiki name&amp;quot;, // Will be displayed as the wiki name in the results&lt;br /&gt;
   &amp;quot;api-endpoint&amp;quot; =&amp;gt; &amp;quot;http://other.wiki.com/w/api.php&amp;quot;,&lt;br /&gt;
   &amp;quot;search-on-wiki-url&amp;quot; =&amp;gt; &amp;quot;http://other.wiki.com/wiki/Special:SearchCenter&amp;quot; // URL to the SearchCenter SpecialPage on target wiki&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{Messagebox|boxtype=note|Note text=This does not apply to [[Manual:Extension/BlueSpiceWikiFarm|BlueSpiceWikiFarm]] users, BlueSpiceInterwikiSearch within a WikiFarm is handled separately.}}&lt;br /&gt;
&lt;br /&gt;
== Demo ==&lt;br /&gt;
&lt;br /&gt;
Try out InterwikiSearch in our [https://en.demo.bluespice.com demo]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{wcagCheck&lt;br /&gt;
|wcagStatus=2-testing complete&lt;br /&gt;
|wcagCheckedfor=Web, Authoring tool&lt;br /&gt;
|wcagTestdate=2022-10-10&lt;br /&gt;
|wcagLevel=AA&lt;br /&gt;
|wcagSupport=partially supports&lt;br /&gt;
|wcagWorkaround=no&lt;br /&gt;
|wcagComments=Interwiki links are commonly not used. Only relevant for wikis that connect search to other wikis.&lt;br /&gt;
&lt;br /&gt;
Web:  screen reader needs label for interwiki search results announced. Ticket: erm30061&lt;br /&gt;
&lt;br /&gt;
Authoring tool: Standard ext-js pagination issue: buttons not announced to screen readers.&lt;br /&gt;
|extensionType=extended&lt;br /&gt;
|extensionFocus=reader&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14616</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14616"/>
		<updated>2026-07-27T12:50:07Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected / low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
* [https://advisories.gitlab.com/composer/phpoffice/phpspreadsheet/CVE-2026-59933/ CVE-2026-59933]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
|&lt;br /&gt;
* Extension:BlueSpiceUEModuleTable2Excel&lt;br /&gt;
* Extension:DataTransfer&lt;br /&gt;
* Extension:SemanticResultFormats&lt;br /&gt;
|&lt;br /&gt;
* Uncontrolled Resource Consumption&lt;br /&gt;
* Loop with Unreachable Exit Condition (&#039;Infinite Loop&#039;)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Extension:BlueSpiceUEModuleTable2Excel and Extension:SemanticResultFormats don&#039;t use affected code at all. Only Extension:DataTransfer may be affected.&lt;br /&gt;
|If concerned temporarily disable Special:ImportSpreadsheet via &amp;lt;code&amp;gt;$DATA/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
 \Hooks::register( &#039;SpecialPage_initList&#039;, static function( &amp;amp;$specialPages ) {&lt;br /&gt;
     unset( $list[&#039;ImportSpreadsheet&#039;] );&lt;br /&gt;
 });&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. If concerned about CVE-2026-59933, apply the temporary fix. CVE-2026-59933 will be fixed in one of the next patch releases.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14612</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14612"/>
		<updated>2026-07-27T09:45:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected / low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
* [https://advisories.gitlab.com/composer/phpoffice/phpspreadsheet/CVE-2026-59933/ CVE-2026-59933]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
|&lt;br /&gt;
* Extension:BlueSpiceUEModuleTable2Excel&lt;br /&gt;
* Extension:DataTransfer&lt;br /&gt;
* Extension:SemanticResultFormats&lt;br /&gt;
|&lt;br /&gt;
* Uncontrolled Resource Consumption&lt;br /&gt;
* Loop with Unreachable Exit Condition (&#039;Infinite Loop&#039;)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Extension:BlueSpiceUEModuleTable2Excel and Extension:SemanticResultFormats don&#039;t use affected code at all. Only Extension:DataTransfer may be affected.&lt;br /&gt;
|If concerned temporarily disable Special:ImportSpreadsheet via &amp;lt;code&amp;gt;$DATA/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
 \Hooks::register( &#039;SpecialPage_initList&#039;, static function( &amp;amp;$specialPages ) {&lt;br /&gt;
     unset( $list[&#039;ImportSpreadsheet&#039;] );&lt;br /&gt;
 });&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14611</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14611"/>
		<updated>2026-07-27T09:26:21Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-17&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14440</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14440"/>
		<updated>2026-07-17T13:39:04Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-17&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14437</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14437"/>
		<updated>2026-07-17T13:36:47Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-06-22 |- |Severity |reported &amp;quot;high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;not affected&amp;#039;&amp;#039;&amp;#039; |- |Affected |&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions) |- |Fixed in |Next regular update |- |CVE | * [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376] |}  ==Problem== {| class=&amp;quot;wikitable&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; |- |CVE-2026-8376 |&amp;lt;code&amp;gt;bluespice/migrate-confl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8376&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (Perl regex compilation, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8376&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit Perl builds; the &amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image uses a 64-bit base image and therefore runs a 64-bit Perl. Additionally, the regular expressions used in the application are part of the application logic and cannot be injected by an attacker.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected library will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14413</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14413"/>
		<updated>2026-07-14T11:34:22Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14412</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14412"/>
		<updated>2026-07-14T11:33:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14411</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14411"/>
		<updated>2026-07-14T11:31:56Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14410</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14410"/>
		<updated>2026-07-14T11:25:38Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14409</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14409"/>
		<updated>2026-07-14T11:24:36Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14408</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14408"/>
		<updated>2026-07-14T11:22:35Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt; └── saml-idp     ├── saml-config.php     ├── saml-sp-metadata.php     └── saml-users.php  &amp;lt;/syntaxhighlight&amp;gt;  Add the following content to the files  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt; &amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt; &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php  #SIMPLESAMLPHP_SP_ENTITY_ID: https://${D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14407</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14407"/>
		<updated>2026-07-14T11:09:24Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/S3 filestore service|S3 filestore service]]&lt;br /&gt;
&lt;br /&gt;
=== Add SAML 2.0 IdP ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/SAML 2.0 IdP|SAML 2.0 IdP]]&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/S3_filestore_service&amp;diff=14406</id>
		<title>Development/S3 filestore service</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/S3_filestore_service&amp;diff=14406"/>
		<updated>2026-07-14T11:08:39Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt; x-common-dev: &amp;amp;x-common ...   environment:     FILESTORE_HOST: filestore     FILESTORE_PORT: 9000     FILESTORE_PROTOCOL: http     FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}     FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}     FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}     F...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
You will need to &#039;&#039;manually create&#039;&#039; a bucket with the name of &amp;lt;code&amp;gt;FILESTORE_BUCKET_NAME&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14405</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14405"/>
		<updated>2026-07-14T11:08:29Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/S3 filestore service|S3 filestore service]]&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14404</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14404"/>
		<updated>2026-07-10T06:17:57Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Add S3 filestore service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
You will need to &#039;&#039;manually create&#039;&#039; a bucket with the name of &amp;lt;code&amp;gt;FILESTORE_BUCKET_NAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14403</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14403"/>
		<updated>2026-07-10T06:16:54Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Add S3 filestore service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14402</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14402"/>
		<updated>2026-07-10T06:11:56Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;/bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14401</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14401"/>
		<updated>2026-07-10T06:08:39Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information about how to set up a local development environment for BlueSpice.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;/bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14350</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14350"/>
		<updated>2026-06-22T08:41:06Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-04&amp;diff=14349</id>
		<title>Security:Security Advisories/BSSA-2026-04</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-04&amp;diff=14349"/>
		<updated>2026-06-22T08:38:42Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-06-22 |- |Severity |reported &amp;quot;high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;not affected&amp;#039;&amp;#039;&amp;#039; |- |Affected |&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions) |- |Fixed in |Next regular update |- |CVE | * [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376] |}  ==Problem== {| class=&amp;quot;wikitable&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; |- |CVE-2026-8376 |&amp;lt;code&amp;gt;bluespice/migrate-confl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8376&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (Perl regex compilation, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8376&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit Perl builds; the &amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image uses a 64-bit base image and therefore runs a 64-bit Perl. Additionally, the regular expressions used in the application are part of the application logic and cannot be injected by an attacker.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected library will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14308</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14308"/>
		<updated>2026-06-08T09:06:59Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14307</id>
		<title>Security:Security Advisories/BSSA-2026-03</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14307"/>
		<updated>2026-06-08T09:02:50Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;medium/high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|Cloudogu Container Images (library present, not exploitable)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-31789&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-mathoid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/bluespice-collabpadsbackend&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/mongodb&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (OpenSSL, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-43512&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-pdfrenderer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Authentication Bypass (Apache Tomcat DIGEST)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-7261&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice&amp;lt;/code&amp;gt;&lt;br /&gt;
|PHP SOAP Server Session Persistence&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-31789&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit platforms. Additionally, the way OpenSSL is used in the affected container images does not expose any exploitable attack surface.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-43512&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. Neither &amp;lt;code&amp;gt;bluespice-pdfrenderer&amp;lt;/code&amp;gt; nor &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; use DIGEST authentication. Access to both services is anonymous by design.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-7261&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. BlueSpice does not use a PHP SOAP server, and the affected &amp;lt;code&amp;gt;SOAP_PERSISTENCE_SESSION&amp;lt;/code&amp;gt; setting is not in use.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected libraries will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14306</id>
		<title>Security:Security Advisories/BSSA-2026-03</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14306"/>
		<updated>2026-06-08T09:00:07Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-06-08 |- |Severity |reported &amp;quot;medium/high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;not affected&amp;#039;&amp;#039;&amp;#039; |- |Affected |Cloudogu Container Images (library present, not exploitable) |- |Fixed in |Next regular update |- |CVE | * [https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789] * [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512] * [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261] |- |Validated by |RV, FS |}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;medium/high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|Cloudogu Container Images (library present, not exploitable)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|-&lt;br /&gt;
|Validated by&lt;br /&gt;
|RV, FS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-31789&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-mathoid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/bluespice-collabpadsbackend&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/mongodb&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (OpenSSL, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-43512&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-pdfrenderer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Authentication Bypass (Apache Tomcat DIGEST)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-7261&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice&amp;lt;/code&amp;gt;&lt;br /&gt;
|PHP SOAP Server Session Persistence&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-31789&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit platforms. Additionally, the way OpenSSL is used in the affected container images does not expose any exploitable attack surface.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-43512&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. Neither &amp;lt;code&amp;gt;bluespice-pdfrenderer&amp;lt;/code&amp;gt; nor &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; use DIGEST authentication. Access to both services is anonymous by design.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-7261&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. BlueSpice does not use a PHP SOAP server, and the affected &amp;lt;code&amp;gt;SOAP_PERSISTENCE_SESSION&amp;lt;/code&amp;gt; setting is not in use.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected libraries will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14278</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14278"/>
		<updated>2026-05-28T06:56:24Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.4.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.4.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.4/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Use one consistent version number|text=The tag number 5.2.3 in this command (could be 5.1.4, 5.1.5, 5.2.1 etc. as well) should also be used as the &amp;lt;code&amp;gt;VERSION=&amp;lt;/code&amp;gt; number in Step 2.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.2.2&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Since tag 5.1.4 and tag 5.2.0 of project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, we allow to edit and maintain a separate &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. Just place the file next to the other &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; s and run &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=User:Rvogel1&amp;diff=14143</id>
		<title>User:Rvogel1</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=User:Rvogel1&amp;diff=14143"/>
		<updated>2026-05-05T08:16:31Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: User profile edited&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Userpage standard content}}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14041</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14041"/>
		<updated>2026-04-21T08:54:52Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Step 1: Get the stack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=sh&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.3.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.3.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.3/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Use one consistent version number|text=The tag number 5.2.3 in this command (could be 5.1.4, 5.1.5, 5.2.1 etc. as well) should also be used as the &amp;lt;code&amp;gt;VERSION=&amp;lt;/code&amp;gt; number in Step 2.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.2.2&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Since tag 5.1.4 and tag 5.2.0 of project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, we allow to edit and maintain a separate &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. Just place the file next to the other &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; s and run &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=13919</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=13919"/>
		<updated>2026-03-17T07:03:30Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information about how to set up a local development environment for BlueSpice.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.overrides.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13861</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13861"/>
		<updated>2026-03-04T15:36:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13860</id>
		<title>Security:Security Advisories/BSSA-2026-02</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13860"/>
		<updated>2026-03-04T15:32:37Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in LTS version &amp;lt; 5.1.5&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.1.4&lt;br /&gt;
&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.2.0&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|BlueSpice PRO/FARM 5.1.4&lt;br /&gt;
BlueSpice PRO/FARM 5.2.1&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2025/cve-2025-15467/ CVE-2025-15467]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-15467&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/database&amp;lt;/code&amp;gt;&lt;br /&gt;
|Buffer Overflow&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
|Extension:NSFileRepo&lt;br /&gt;
|Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-15467&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low, as by default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, this is not exploitable&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low, as by default configuration of BlueSpice MediaWiki, this is not exploitable. The affected type of configuration is considered an edge-case.&lt;br /&gt;
|Make sure &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;read&#039;]&amp;lt;/code&amp;gt; is set to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in the  &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to BlueSpice 5.1.4+ or 5.2.1+&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13859</id>
		<title>Security:Security Advisories/BSSA-2026-02</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13859"/>
		<updated>2026-03-04T13:01:32Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in LTS version &amp;lt; 5.1.5&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.1.5&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.2.0&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|BlueSpice PRO/FARM 5.1.4&lt;br /&gt;
BlueSpice PRO/FARM 5.2.1&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2025/cve-2025-15467/ CVE-2025-15467]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-15467&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/database&amp;lt;/code&amp;gt;&lt;br /&gt;
|Buffer Overflow&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
|&lt;br /&gt;
|Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-15467&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Medium&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
To mitigate &amp;lt;code&amp;gt;CVE-2026-24732&amp;lt;/code&amp;gt; , please update to&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13858</id>
		<title>Security:Security Advisories/BSSA-2026-02</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13858"/>
		<updated>2026-03-04T13:00:54Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-01-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in LTS version &amp;lt; 5.1.5&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.1.5&lt;br /&gt;
BlueSpice PRO/FARM &amp;lt; 5.2.0&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|BlueSpice PRO/FARM 5.1.4&lt;br /&gt;
BlueSpice PRO/FARM 5.2.1&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2025/cve-2025-15467/ CVE-2025-15467]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-15467&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/database&amp;lt;/code&amp;gt;&lt;br /&gt;
|Buffer Overflow&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
|&lt;br /&gt;
|Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-15467&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-24732&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Medium&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
To mitigate &amp;lt;code&amp;gt;CVE-2026-24732&amp;lt;/code&amp;gt; , please update to&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-01&amp;diff=13857</id>
		<title>Security:Security Advisories/BSSA-2026-01</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-01&amp;diff=13857"/>
		<updated>2026-03-04T12:52:08Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Undo previous change; Will go into dedicated BSSA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-01-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in current LTS version &amp;lt; 5.1.4&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|5.2.1, 5.1.5&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
| [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
* Service &amp;lt;code&amp;gt;collabpads-database&amp;lt;/code&amp;gt; (image name: &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; ) - [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
* Service &amp;lt;code&amp;gt;collabpads-database&amp;lt;/code&amp;gt; (image name: &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; ) &lt;br /&gt;
** A unauthenticated MongoDB client can attack the service if reachable.  By default BlueSpice setup, the service runs only in the background and can not be accessed from outside the virtual network. So not even unauthenticated access is possible from any external location.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
To mitigate &amp;lt;code&amp;gt;CVE-2025-14847&amp;lt;/code&amp;gt;  use one of the following options:&lt;br /&gt;
&lt;br /&gt;
# Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups.&lt;br /&gt;
# Update the &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; docker image via BlueSpice&#039;s deploy tool: &amp;lt;code&amp;gt;bluespice-deploy pull collabpads-database &amp;amp;&amp;amp; bluespice-deploy up -d&amp;lt;/code&amp;gt; &lt;br /&gt;
# Update to version &amp;gt;=5.1.5 or &amp;gt;=5.2.1  of the BlueSpice images&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13855</id>
		<title>Security:Security Advisories/BSSA-2026-02</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-02&amp;diff=13855"/>
		<updated>2026-03-04T12:20:41Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-01-29 |- |Severity |reported &amp;quot;high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;low&amp;#039;&amp;#039;&amp;#039; |- |Affected | Services in current LTS version &amp;lt; 5.1.4 |- |Fixed in | |- |CVE | * [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847] * [https://avd.aquasec.com/nvd/2025/cve-2025-15467/ CVE-2025-15467] |}  ==Problem== {| class=&amp;quot;wikitable&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 4&amp;#039;&amp;#039;&amp;#039; |- |CVE-2025-148...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-01-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in current LTS version &amp;lt; 5.1.4&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2025/cve-2025-15467/ CVE-2025-15467]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14847&lt;br /&gt;
|&amp;lt;code&amp;gt;container collabpads-database(image:mongo:8.0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-15467&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/database&amp;lt;/code&amp;gt;&lt;br /&gt;
|Buffer Overflow&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
* Service &amp;lt;code&amp;gt;collabpads-database&amp;lt;/code&amp;gt; (image name: &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; ) &lt;br /&gt;
** A unauthenticated MongoDB client can attack the service if reachable.  By default BlueSpice setup, the service runs only in the background and can not be accessed from outside the virtual network. So not even unauthenticated access is possible from any external location.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14847&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-15467&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Low&lt;br /&gt;
|Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
To mitigate &amp;lt;code&amp;gt;CVE-2025-14847&amp;lt;/code&amp;gt;  use one of the following options:&lt;br /&gt;
&lt;br /&gt;
# Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups.&lt;br /&gt;
# Update the &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; docker image via BlueSpice&#039;s deploy tool: &amp;lt;code&amp;gt;bluespice-deploy pull collabpads-database &amp;amp;&amp;amp; bluespice-deploy up -d&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13854</id>
		<title>Confluence migration</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13854"/>
		<updated>2026-02-27T09:59:22Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Roadmap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Hallo Welt!&#039;&#039; has created a migration tool that can be used to import Confluence spaces into a MediaWiki or BlueSpice installation. This is a command line tool and you need access to your MediaWiki or BlueSpice server environment.&lt;br /&gt;
&lt;br /&gt;
==Migration tool==&lt;br /&gt;
The [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data migration tool can be found on GitHub] and is [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data documented there].&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
The output generated by the tool contains certain elements that require &#039;&#039;&#039;additional extensions&#039;&#039;&#039; to activate. These extensions are already included in a BlueSpice Pro installation:&lt;br /&gt;
&lt;br /&gt;
#[[mediawikiwiki:Extension:TemplateStyles|TemplateStyles]]&lt;br /&gt;
#[[mediawikiwiki:Extension:ParserFunctions|ParserFunctions]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SimpleTasks|SimpleTasks]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Semantic_MediaWiki|Semantic MediaWiki]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Header_Tabs|HeaderTabs]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SubPageList|SubPageList]]&lt;br /&gt;
&lt;br /&gt;
==Macro check==&lt;br /&gt;
On the BlueSpice website, you can use a [https://bluespice.com/confluence-migration-process/#confluence-migration-input-desktop macro check] to see which Confluence macros are not automatically converted. If an important macro is marked as unsupported, the content can most likely still be transferred.&lt;br /&gt;
[[File:Confluence macro check.png|alt=Textarea for adding a list of macros (with step-by-step instructions)|center|thumb|650x650px|Macro check]]&lt;br /&gt;
&lt;br /&gt;
== Not migrated ==&lt;br /&gt;
The following Confluence elements are excluded from the migration:&lt;br /&gt;
&lt;br /&gt;
*User identities&lt;br /&gt;
*Comments&lt;br /&gt;
*Various macros&lt;br /&gt;
*Various layouts&lt;br /&gt;
*Blog posts&lt;br /&gt;
*Files in an area that cannot be assigned to a page&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* March &#039;26: Provide Docker Container (ERM46685) - Eases installation and allows for better automation&lt;br /&gt;
* March/April &#039;26: Allow for parallel processing (ERM45405) - Speeds up conversion of large Confluence exports&lt;br /&gt;
* March/April &#039;26: Migrate blogs posts to [[mw:Extension:SimpleBlogPage]] pages (ERM46628) - Additional content&lt;br /&gt;
* March/April &#039;26: Migrate page comments to [[mw:Extension:CommentStreams]] threads (ERM46627) - Additional content&lt;br /&gt;
* April &#039;26: Add support for historic page and file revisions (ERM35013) - Additional content&lt;br /&gt;
&lt;br /&gt;
==More information==&lt;br /&gt;
&lt;br /&gt;
*https://bluespice.com/migration-from-confluence-to-bluespice-mediawiki/&lt;br /&gt;
*https://bluespice.com/mediawiki-versus-confluence-not-a-question-of-features/&lt;br /&gt;
&lt;br /&gt;
[[de:Confluence Migration]]&lt;br /&gt;
[[Category:Setup]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13853</id>
		<title>Confluence migration</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13853"/>
		<updated>2026-02-27T09:57:46Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Hallo Welt!&#039;&#039; has created a migration tool that can be used to import Confluence spaces into a MediaWiki or BlueSpice installation. This is a command line tool and you need access to your MediaWiki or BlueSpice server environment.&lt;br /&gt;
&lt;br /&gt;
==Migration tool==&lt;br /&gt;
The [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data migration tool can be found on GitHub] and is [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data documented there].&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
The output generated by the tool contains certain elements that require &#039;&#039;&#039;additional extensions&#039;&#039;&#039; to activate. These extensions are already included in a BlueSpice Pro installation:&lt;br /&gt;
&lt;br /&gt;
#[[mediawikiwiki:Extension:TemplateStyles|TemplateStyles]]&lt;br /&gt;
#[[mediawikiwiki:Extension:ParserFunctions|ParserFunctions]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SimpleTasks|SimpleTasks]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Semantic_MediaWiki|Semantic MediaWiki]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Header_Tabs|HeaderTabs]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SubPageList|SubPageList]]&lt;br /&gt;
&lt;br /&gt;
==Macro check==&lt;br /&gt;
On the BlueSpice website, you can use a [https://bluespice.com/confluence-migration-process/#confluence-migration-input-desktop macro check] to see which Confluence macros are not automatically converted. If an important macro is marked as unsupported, the content can most likely still be transferred.&lt;br /&gt;
[[File:Confluence macro check.png|alt=Textarea for adding a list of macros (with step-by-step instructions)|center|thumb|650x650px|Macro check]]&lt;br /&gt;
&lt;br /&gt;
== Not migrated ==&lt;br /&gt;
The following Confluence elements are excluded from the migration:&lt;br /&gt;
&lt;br /&gt;
*User identities&lt;br /&gt;
*Comments&lt;br /&gt;
*Various macros&lt;br /&gt;
*Various layouts&lt;br /&gt;
*Blog posts&lt;br /&gt;
*Files in an area that cannot be assigned to a page&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
# Provide Docker Container (ERM46685) - Eases installation and allows for better automation&lt;br /&gt;
# Allow for parallel processing (ERM45405) - Speeds up conversion of large Confluence exports&lt;br /&gt;
# Migrate blogs posts to [[mw:Extension:SimpleBlogPage]] pages (ERM46628) - Additional content&lt;br /&gt;
# Migrate page comments to [[mw:Extension:CommentStreams]] threads (ERM46627) - Additional content&lt;br /&gt;
# Add support for historic page and file revisions (ERM35013) - Additional content&lt;br /&gt;
&lt;br /&gt;
==More information==&lt;br /&gt;
&lt;br /&gt;
*https://bluespice.com/migration-from-confluence-to-bluespice-mediawiki/&lt;br /&gt;
*https://bluespice.com/mediawiki-versus-confluence-not-a-question-of-features/&lt;br /&gt;
&lt;br /&gt;
[[de:Confluence Migration]]&lt;br /&gt;
[[Category:Setup]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13852</id>
		<title>Confluence migration</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Confluence_migration&amp;diff=13852"/>
		<updated>2026-02-27T09:54:22Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Hallo Welt!&#039;&#039; has created a migration tool that can be used to import Confluence spaces into a MediaWiki or BlueSpice installation. This is a command line tool and you need access to your MediaWiki or BlueSpice server environment.&lt;br /&gt;
&lt;br /&gt;
==Migration tool==&lt;br /&gt;
The [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data migration tool can be found on GitHub] and is [https://github.com/hallowelt/migrate-confluence?tab=readme-ov-file#migrate-confluence-xml-export-to-mediawiki-import-data documented there].&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
The output generated by the tool contains certain elements that require &#039;&#039;&#039;additional extensions&#039;&#039;&#039; to activate. These extensions are already included in a BlueSpice Pro installation:&lt;br /&gt;
&lt;br /&gt;
#[[mediawikiwiki:Extension:TemplateStyles|TemplateStyles]]&lt;br /&gt;
#[[mediawikiwiki:Extension:ParserFunctions|ParserFunctions]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SimpleTasks|SimpleTasks]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Semantic_MediaWiki|Semantic MediaWiki]]&lt;br /&gt;
#[[mediawikiwiki:Extension:Header_Tabs|HeaderTabs]]&lt;br /&gt;
#[[mediawikiwiki:Extension:SubPageList|SubPageList]]&lt;br /&gt;
&lt;br /&gt;
==Macro check==&lt;br /&gt;
On the BlueSpice website, you can use a [https://bluespice.com/confluence-migration-process/#confluence-migration-input-desktop macro check] to see which Confluence macros are not automatically converted. If an important macro is marked as unsupported, the content can most likely still be transferred.&lt;br /&gt;
[[File:Confluence macro check.png|alt=Textarea for adding a list of macros (with step-by-step instructions)|center|thumb|650x650px|Macro check]]&lt;br /&gt;
&lt;br /&gt;
== Not migrated ==&lt;br /&gt;
The following Confluence elements are excluded from the migration:&lt;br /&gt;
&lt;br /&gt;
*User identities&lt;br /&gt;
*Comments&lt;br /&gt;
*Various macros&lt;br /&gt;
*Various layouts&lt;br /&gt;
*Blog posts&lt;br /&gt;
*Files in an area that cannot be assigned to a page&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
# Provide Docker Container - Eases installation and allows for better automation&lt;br /&gt;
# Allow for parallel processing (ERM45405) - Speeds up conversion of large Confluence exports&lt;br /&gt;
# Migrate blogs posts to [[mw:Extension:SimpleBlogPage]] pages (ERM46628) - Additional content&lt;br /&gt;
# Migrate page comments to [[mw:Extension:CommentStreams]] threads (ERM46627) - Additional content&lt;br /&gt;
# Add support for historic page and file revisions (ERM35013) - Additional content&lt;br /&gt;
&lt;br /&gt;
==More information==&lt;br /&gt;
&lt;br /&gt;
*https://bluespice.com/migration-from-confluence-to-bluespice-mediawiki/&lt;br /&gt;
*https://bluespice.com/mediawiki-versus-confluence-not-a-question-of-features/&lt;br /&gt;
&lt;br /&gt;
[[de:Confluence Migration]]&lt;br /&gt;
[[Category:Setup]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=13827</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=13827"/>
		<updated>2026-02-23T16:19:05Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;This page contains information about how to set up a local development environment for BlueSpice.  == Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; == A developer can use the default deployment stack and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt; git clone -b 5.2.x git@github.com:hallowelt/bluespic...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information about how to set up a local development environment for BlueSpice.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.overrides.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13739</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13739"/>
		<updated>2026-01-28T14:39:45Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-01&amp;diff=13738</id>
		<title>Security:Security Advisories/BSSA-2026-01</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-01&amp;diff=13738"/>
		<updated>2026-01-28T14:32:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-01-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
| Services in current LTS version &amp;lt; 5.1.4&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|5.2.1, 5.1.5&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
| [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
* Service &amp;lt;code&amp;gt;collabpads-database&amp;lt;/code&amp;gt; (image name: &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; ) - [https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
* Service &amp;lt;code&amp;gt;collabpads-database&amp;lt;/code&amp;gt; (image name: &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; ) &lt;br /&gt;
** A unauthenticated MongoDB client can attack the service if reachable.  By default BlueSpice setup, the service runs only in the background and can not be accessed from outside the virtual network. So not even unauthenticated access is possible from any external location.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
To mitigate &amp;lt;code&amp;gt;CVE-2025-14847&amp;lt;/code&amp;gt;  use one of the following options:&lt;br /&gt;
&lt;br /&gt;
# Make sure the service has no access to the internet. This is the default configuration of BlueSpice setups.&lt;br /&gt;
# Update the &amp;lt;code&amp;gt;mongo&amp;lt;/code&amp;gt; docker image via BlueSpice&#039;s deploy tool: &amp;lt;code&amp;gt;bluespice-deploy pull collabpads-database &amp;amp;&amp;amp; bluespice-deploy up -d&amp;lt;/code&amp;gt; &lt;br /&gt;
# Update to version &amp;gt;=5.1.5 or &amp;gt;=5.2.1  of the BlueSpice images&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=13717</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=13717"/>
		<updated>2026-01-22T14:02:42Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=sh&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.1.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.1.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.1/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.1.3&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Starting with bluespice-deploy 5.1.4 and 5.2.0 Branches, we allow to edit and maintan   a separate   &amp;lt;code&amp;gt;docker-compose.override,yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. just place the file next to the other docker-compose.*.ymls and run ./bluespice-deploy up -d&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=13716</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=13716"/>
		<updated>2026-01-22T14:00:52Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=sh&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.1.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.1.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.1/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.1.3&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Starting with bluespice-deploy 5.1.4 and 5.2.0 Branches, we allow to edit and maintan   a separate   &amp;lt;code&amp;gt;docker-compose.override,yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. just place the file next to the other docker-compose.*.ymls and run ./bluespice-deploy up -d&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /code/extensions/X:/app/bluespice/w/extensions/X&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
      - /code/extensions/X:/app/bluespice/w/extensions/X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13651</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=13651"/>
		<updated>2025-12-08T15:43:40Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
</feed>