KKeine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
||
Zeile 1: | Zeile 1: | ||
__TOC__ | __TOC__ | ||
== Übersicht == | |||
Seit Version 4.5 kann BlueSpice MediaWiki einfach mithilfe eines Stapels von Docker-Container-Images installiert werden. Alles ist modular aufgebaut, um verschiedene Arten von Setups zu ermöglichen. | Seit Version 4.5 kann BlueSpice MediaWiki einfach mithilfe eines Stapels von Docker-Container-Images installiert werden. Alles ist modular aufgebaut, um verschiedene Arten von Setups zu ermöglichen. | ||
Zeile 18: | Zeile 8: | ||
#Benutzerdefinierte Datenbank und Suchdienst | #Benutzerdefinierte Datenbank und Suchdienst | ||
#Benutzerdefinierter Load Balancer / Proxy | #Benutzerdefinierter Load Balancer / Proxy | ||
== Architektur == | |||
==== Architektur ==== | |||
<drawio filename="Setup:Installationsanleitung_Docker-Achitektur" alt="Diagramm der BlueSpice Docker Stack-Architektur" /> | |||
'''Hinweise''' | |||
* Interne HTTP-Verbindungen können nicht standardmäßige Ports verwenden. Diese sind neben den jeweiligen Diensten angegeben. | |||
** HTTP (unsicher) wird nur für die interne Kommunikation innerhalb des virtuellen Netzwerks verwendet, in dem der Stack betrieben wird. Alle Verbindungen zum Client verwenden TLS. | |||
* Proprietäre Ports (insbesondere für Datenbankverbindungen) sind neben den jeweiligen Diensten angegeben. | |||
* Je nach Setup können zusätzliche Dienste und Ports verwendet werden. Einige Beispiele: | |||
** Bei Verwendung der LDAP-basierten Authentifizierung wird eine LDAPS-Verbindung (Port <code>636</code>) von den <code>bluespice/wiki</code>-Containern zum LDAP-Server verwendet. | |||
** Bei Verwendung der Kerberos-Authentifizierung wird eine Verbindung (Port <code>88</code>) von den <code>bluespice/kerberos-proxy</code>-Containern zum Kerberos-Server verwendet. | |||
** Bei Verwendung von DeepL- oder OpenAI-Diensten wird eine HTTPS-Verbindung (Port <code>443</code>) von den <code>bluespice/wiki</code>-Containern zum jeweiligen Dienst verwendet. | |||
** Bei Verwendung der OpenIDConnect-Authentifizierung wird eine HTTPS-Verbindung (Port <code>443</code>) vom <code>bluespice/wiki</code>-"Task"-Container zum Authentifizierungsanbieter verwendet. | |||
** Bei Verwendung von "Let's Encrypt" Certbot wird eine HTTPS-Verbindung (Port <code>443</code>) vom <code>acme-companion</code>-Container zum Dienst „Let’s Encrypt“ | |||
===Schritt 1: Den Stack abrufen=== | ===Schritt 1: Den Stack abrufen=== |
Version vom 4. Juni 2025, 13:39 Uhr
Übersicht[Bearbeiten | Quelltext bearbeiten]
Seit Version 4.5 kann BlueSpice MediaWiki einfach mithilfe eines Stapels von Docker-Container-Images installiert werden. Alles ist modular aufgebaut, um verschiedene Arten von Setups zu ermöglichen.
Die häufigsten Fälle sind
- „All-in-one“ (mit und ohne Let’s Encrypt)
- Benutzerdefinierte Datenbank und Suchdienst
- Benutzerdefinierter Load Balancer / Proxy
Architektur[Bearbeiten | Quelltext bearbeiten]
Architektur[Bearbeiten | Quelltext bearbeiten]
Hinweise
- Interne HTTP-Verbindungen können nicht standardmäßige Ports verwenden. Diese sind neben den jeweiligen Diensten angegeben.
- HTTP (unsicher) wird nur für die interne Kommunikation innerhalb des virtuellen Netzwerks verwendet, in dem der Stack betrieben wird. Alle Verbindungen zum Client verwenden TLS.
- Proprietäre Ports (insbesondere für Datenbankverbindungen) sind neben den jeweiligen Diensten angegeben.
- Je nach Setup können zusätzliche Dienste und Ports verwendet werden. Einige Beispiele:
- Bei Verwendung der LDAP-basierten Authentifizierung wird eine LDAPS-Verbindung (Port
636
) von denbluespice/wiki
-Containern zum LDAP-Server verwendet. - Bei Verwendung der Kerberos-Authentifizierung wird eine Verbindung (Port
88
) von denbluespice/kerberos-proxy
-Containern zum Kerberos-Server verwendet. - Bei Verwendung von DeepL- oder OpenAI-Diensten wird eine HTTPS-Verbindung (Port
443
) von denbluespice/wiki
-Containern zum jeweiligen Dienst verwendet. - Bei Verwendung der OpenIDConnect-Authentifizierung wird eine HTTPS-Verbindung (Port
443
) vombluespice/wiki
-"Task"-Container zum Authentifizierungsanbieter verwendet. - Bei Verwendung von "Let's Encrypt" Certbot wird eine HTTPS-Verbindung (Port
443
) vomacme-companion
-Container zum Dienst „Let’s Encrypt“
- Bei Verwendung der LDAP-basierten Authentifizierung wird eine LDAPS-Verbindung (Port
Schritt 1: Den Stack abrufen[Bearbeiten | Quelltext bearbeiten]
Von https://github.com/hallowelt/bluespice-deploy die „docker-compose“-Dateien abrufen.
Beispiel:
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/heads/main.zip \
&& unzip main.zip \
&& cd bluespice-deploy-main/compose
Aktuell ist nur der FREE edition Stack auf GitHub verfügbar. Wir planen auch den PRO Stack zu veröffentlichen. In der Zwischenzeit, kontaktieren Sie bitte unser Sales-Team, wenn Sie den PRO Stack zur Selbstinstallation benötigen.
Das Verzeichnis enthält die folgenden Dateien:
Dateiname | Typ | Pflichtfeld | Kommentar |
---|---|---|---|
bluespice-deploy
|
bash-script | false | Wrapper für den allgemeinen Start der benötigten Container |
bluespice-prepare
|
bash-script | false | Ordner und Berechtigungen vor dem ersten Start vorbereiten, registriert den Dienst auch beim Betriebssystem |
bluespice.service
|
service-script | false | Richtige Handhabung der Container beim Neustart |
docker-compose.main.yml
|
yml | true | Hauptanwendungsdienste/ ausgeführt von bluespice-deploy
|
docker-compose.persistent-data-services.yml
|
yml | false | Datenbank und Suche/ ausgeführt von bluespice-deploy
|
docker-compose.stateless-services.yml
|
yml | true | PDF-Renderer/Cache/Formel/Diagramm-Dienst |
docker-compose.proxy.yml
|
yml | false, aber empfohlen | Proxy-Dienst |
docker-compose.proxy-letsencrypt.yml
|
yml | false | Zusätzlicher automatischer Erneuerungsdienst für „Let’s Encrypt“-Zertifikate |
docker-compose.kerberos-proxy.yml
|
yml | false | Zusätzlicher Proxy für Kerberos-basierte Authentifizierung |
.env.sample
|
text-file | false | Vorlage für .env Datei |
Der Einfachheit halber umschließt das Skript bluespice-deploy
standardmäßig die ersten vier yml
-Dateien. Dies umfasst die Haupt-Wiki-Anwendung und auch erforderliche Backend-Dienste wie eine Datenbank, eine Suche und einen Anwendungscache.
Zusätzliche Dienste können durch Hinzufügen von -f <filename>
geladen werden.
Beispiel:
bluespice-deploy \
-f docker-compose.proxy-letsencrypt.yml \
up -d
Dadurch wird der Stapel mit „Let’s Encrypt“-Zertifikaten gestartet. Weitere Einzelheiten finden Sie im Abschnitt SSL-Zertifikate.
Schritt 2: Umgebungsvariablen einrichten[Bearbeiten | Quelltext bearbeiten]
Erstellen Sie die Datei .env
entsprechend der vorhandenen oder zukünftigen Installation.
Beispiel:
DATADIR=/data/bluespice
VERSION=4.5
EDITION=pro
BACKUP_HOUR=04
WIKI_NAME=BlueSpice
WIKI_LANG=en
WIKI_PASSWORDSENDER=no-reply@wiki.company.local
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local
WIKI_HOST=wiki.company.local
WIKI_PORT=443 WIKI_PROTOCOL=https
DB_USER=bluespice
DB_PASS=...
DB_HOST=database
DB_NAME=bluespice
DB_PREFIX=
SMTP_HOST=mail.company.local
SMTP_PORT=25 SMTP_USER=...
SMTP_PASS=...
SMTP_ID_HOST=...
Schritt 3: Datenverzeichnisse vorbereiten[Bearbeiten | Quelltext bearbeiten]
Ausführen Das Skript bluespice-prepare
hilft Ihnen beim Einrichten der richtigen Ordnerstruktur und Berechtigungen. Außerdem wird ein Dienst für die ordnungsgemäße Handhabung der Container bei Neustarts installiert. Stellen Sie sicher, dass Sie diesen Befehl in einem privilegierten Benutzerkontext (wie root
) ausführen, da er Berechtigungen für die neu erstellten Verzeichnisse festlegt.
Schritt 4: Stack starten[Bearbeiten | Quelltext bearbeiten]
Wenn Sie den Stapel zum ersten Mal starten, führt der Container wiki-task
die Installation automatisch durch. Es kann einige Minuten dauern, bis der Vorgang die Datenbank eingerichtet und abgeschlossen hat. Sobald er abgeschlossen ist, finden Sie das Passwort für den Standardbenutzer Admin
in $DATADIR/wiki/adminPassword
.
Verwenden Sie bluespice-deploy up -d
, um den Stack zu starten, sobald die .env
-Datei und die „Datenverzeichnisse“ bereit sind. Sobald alle Container als „bereit“ angezeigt werden, können Sie in Ihrem bevorzugten Webbrowser zu $WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT
(z. B. https://wiki.company.local
) navigieren und mit der Verwendung der Anwendung beginnen.
Zusätzliche Optionen[Bearbeiten | Quelltext bearbeiten]
SSL-Zertifikate[Bearbeiten | Quelltext bearbeiten]
Um Let’s Encrypt-Zertifikate zu verwenden, fügen Sie einfach docker-compose.proxy-letsencrypt.yml
in Ihre bluespice-deploy
-Datei ein.
Um selbstsignierte Zertifikate zu verwenden, geben Sie bitte <bluespice-wiki.com>.crt
und <bluespice-wiki.com>.key
mit dem genauen Namen der URL Ihres Wikis in ${DATADIR}/proxy/certs
ein
Wenn Sie SSL nach der ersten Erstellung des Wikis aktivieren, ändern Sie bitte $wgServer
in $DATADIR/wiki/bluespice/pre-init-settings.php
in https://bluespice-wiki.com
verknüpfen Sie Ihr Zertifikat auch mit dem Bluespice-Container in Ihrer docker-compose.yml
-Datei:
- $DATADIR/proxy/certs/<FQDNofyourWiki>.crt:/usr/local/share/ca-certificates/<FQDNofyourWiki>.crt:ro
Bitte starten Sie Container nach dem Ändern/Hinzufügen von SSL-Dateien neu.
Dienst auf Betriebssystemebene[Bearbeiten | Quelltext bearbeiten]
Erweitern Sie den Parameter ExecStart
in /etc/systemd/system/bluespice.service
Beispiel:
ExecStart=<WORKDIR>/bluespice-deploy -f docker-compose.proxy-letsencrypt.yml up -f -d --remove-orphans
Benutzerdefinierte Wiki-Anwendungskonfiguration[Bearbeiten | Quelltext bearbeiten]
Nach der Erstinstallation enthält ${DATADIR}/wiki/bluespice/
zwei Dateien, mit denen Sie eine benutzerdefinierte Anwendungskonfiguration festlegen können, wie sie unter mediawiki.org zu finden ist:
pre-init-settings.php
- Kann verwendet werden, um eine Konfiguration festzulegen, die vom Init übernommen werden kann Prozesspost-init-settings.php
- Kann verwendet werden, um Konfigurationen zu manipulieren, die vom Init-Prozess festgelegt wurden
Benutzerdefinierte Datenbank und Suche[Bearbeiten | Quelltext bearbeiten]
Wenn Sie einen MySQL/MariaDB- und einen OpenSearch-Server in Ihrem lokalen Netzwerk laufen haben, können Sie docker-compose.persistent-data-services.yml
vollständig aus Ihrer bluespice-deploy
-Datei entfernen. Stellen Sie sicher, dass Sie die richtigen Variablen in der .env
-Datei festlegen.
Kerberos-Proxy[Bearbeiten | Quelltext bearbeiten]
Für die implizite Authentifizierung mit Kerberos muss ein zusätzlicher Proxy verwendet werden: bluespice/kerberos-proxy
. Die Datei docker-compose.kerberos-proxy.yml
enthält eine gemeinsame Konfiguration. Es kann anstelle der regulären Datei docker-compose.proxy.yml
in bluespice-deploy
verwendet werden.
Stellen Sie sicher, dass die Dateien
${DATADIR}/kerberos/krb5.conf
${DATADIR}/kerberos/kerberos.keytab
richtig eingerichtet sind.
Die Datei ${DATADIR}/wiki/bluespice/pre-init-settings.php
kann dann verwendet werden, um „Extension:Auth_remoteuser“ einzurichten.
SAML-Authentifizierung[Bearbeiten | Quelltext bearbeiten]
Während der Erstinstallation wird automatisch ein Zertifikat zur Nachrichtensignierung erstellt. Es befindet sich in ${DATADIR}/wiki/simplesamlphp/certs/
.
Um einen Remote-IDP zu konfigurieren, muss man die IdP-Metadaten-XML in eine Datei namens ${DATADIR}/wiki/simplesamlphp/simplesamlphp/saml_idp_metadata.xml
kopieren. Die SP-Metadaten können dann über https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp
abgerufen werden. Sie müssen im Remote-IdP konfiguriert werden.
Sie können die Authentifizierung direkt in der SimpleSAMLphp-Anwendung testen. Navigieren Sie dazu zu https://{{$WIKI_HOST}}/_sp/module.php/admin
und melden Sie sich mit admin
und dem INTERNAL_SIMPLESAMLPHP_ADMIN_PASS
an, der sich in ${DATADIR}/wiki/.wikienv
befindet
Als nächstes müssen die Erweiterungen „PluggableAuth“ und „SimpleSAMLphp“ im Wiki aktiviert werden. Fügen Sie dazu in ${DATADIR}/wiki/bluespice/post-init-settings.php
Folgendes hinzu:
wfLoadExtensions( [
'PluggableAuth',
'SimpleSAMLphp'
] );

Führen Sie folgenden Befehl aus, um die Installation abzuschließen.
./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick
Danach kann die Konfiguration des Authentifizierungs-Plugins in Spezial:BlueSpiceConfigManager unter „Authentifizierung“ angewendet werden.