<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Docker_Stack_Traefik</id>
	<title>Docker Stack Traefik - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Docker_Stack_Traefik"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;action=history"/>
	<updated>2026-11-14T16:53:35Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71496&amp;oldid=prev</id>
		<title>Thomas.will am 27. Juni 2026 um 16:26 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71496&amp;oldid=prev"/>
		<updated>2026-06-27T16:26:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;amp;diff=71496&amp;amp;oldid=71495&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71495&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde geleert.</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71495&amp;oldid=prev"/>
		<updated>2026-06-27T16:25:41Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde geleert.&lt;/p&gt;
&lt;a href=&quot;https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;amp;diff=71495&amp;amp;oldid=71494&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71494&amp;oldid=prev</id>
		<title>Thomas.will am 27. Juni 2026 um 16:21 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71494&amp;oldid=prev"/>
		<updated>2026-06-27T16:21:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;amp;diff=71494&amp;amp;oldid=71492&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71492&amp;oldid=prev</id>
		<title>Thomas.will am 27. Juni 2026 um 16:13 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71492&amp;oldid=prev"/>
		<updated>2026-06-27T16:13:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;amp;diff=71492&amp;amp;oldid=71491&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71491&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „Dieser Artikel beschreibt einen kompletten Docker-Compose-Stack mit &#039;&#039;&#039;Traefik&#039;&#039;&#039; als Reverse-Proxy, einer gemeinsamen &#039;&#039;&#039;MariaDB&#039;&#039;&#039; und den beiden Webanwendun…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Docker_Stack_Traefik&amp;diff=71491&amp;oldid=prev"/>
		<updated>2026-06-27T16:06:46Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Dieser Artikel beschreibt einen kompletten Docker-Compose-Stack mit &amp;#039;&amp;#039;&amp;#039;Traefik&amp;#039;&amp;#039;&amp;#039; als Reverse-Proxy, einer gemeinsamen &amp;#039;&amp;#039;&amp;#039;MariaDB&amp;#039;&amp;#039;&amp;#039; und den beiden Webanwendun…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Dieser Artikel beschreibt einen kompletten Docker-Compose-Stack mit &amp;#039;&amp;#039;&amp;#039;Traefik&amp;#039;&amp;#039;&amp;#039; als Reverse-Proxy, einer gemeinsamen &amp;#039;&amp;#039;&amp;#039;MariaDB&amp;#039;&amp;#039;&amp;#039; und den beiden Webanwendungen &amp;#039;&amp;#039;&amp;#039;Nextcloud&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;MediaWiki&amp;#039;&amp;#039;&amp;#039;. Traefik erkennt die Container automatisch über Labels und terminiert TLS mit einem statischen Wildcard-Zertifikat.&lt;br /&gt;
&lt;br /&gt;
==Konzept==&lt;br /&gt;
&lt;br /&gt;
; Traefik als Reverse-Proxy&lt;br /&gt;
* Im Gegensatz zu HAProxy werden die Backends nicht von Hand konfiguriert. Traefik liest die Docker-Labels der Container und erzeugt Router und Services dynamisch.&lt;br /&gt;
&lt;br /&gt;
; Statisches Zertifikat&lt;br /&gt;
* Im Lab gibt es kein ACME/Let&amp;#039;s-Encrypt nach außen. Das Wildcard-Zertifikat liegt unter &amp;lt;code&amp;gt;/etc/ssl/own.crt&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/etc/ssl/own.key&amp;lt;/code&amp;gt; und wird per File-Provider als Default registriert.&lt;br /&gt;
&lt;br /&gt;
; Eine Datenbank für beide Apps&lt;br /&gt;
* Ein gemeinsamer MariaDB-Container hält zwei getrennte Datenbanken (&amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;) mit jeweils eigenem Benutzer.&lt;br /&gt;
&lt;br /&gt;
==Verzeichnisstruktur==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker-stack/&lt;br /&gt;
├── docker-compose.yml&lt;br /&gt;
├── traefik/&lt;br /&gt;
│   └── dynamic/&lt;br /&gt;
│       └── tls.yml&lt;br /&gt;
└── db-init/&lt;br /&gt;
    └── 01-init.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==docker-compose.yml==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  # Traefik - Reverse Proxy (statisches Wildcard-Cert)&lt;br /&gt;
  traefik:&lt;br /&gt;
    image: traefik:v3.3&lt;br /&gt;
    container_name: traefik&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    command:&lt;br /&gt;
      - &amp;quot;--providers.docker=true&amp;quot;&lt;br /&gt;
      - &amp;quot;--providers.docker.exposedbydefault=false&amp;quot;&lt;br /&gt;
      - &amp;quot;--providers.file.directory=/etc/traefik/dynamic&amp;quot;&lt;br /&gt;
      - &amp;quot;--providers.file.watch=true&amp;quot;&lt;br /&gt;
      - &amp;quot;--entrypoints.web.address=:80&amp;quot;&lt;br /&gt;
      - &amp;quot;--entrypoints.websecure.address=:443&amp;quot;&lt;br /&gt;
      - &amp;quot;--entrypoints.web.http.redirections.entrypoint.to=websecure&amp;quot;&lt;br /&gt;
      - &amp;quot;--entrypoints.web.http.redirections.entrypoint.scheme=https&amp;quot;&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;80:80&amp;quot;&lt;br /&gt;
      - &amp;quot;443:443&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - &amp;quot;/var/run/docker.sock:/var/run/docker.sock:ro&amp;quot;&lt;br /&gt;
      - &amp;quot;./traefik/dynamic:/etc/traefik/dynamic:ro&amp;quot;&lt;br /&gt;
      - &amp;quot;/etc/ssl/own.crt:/etc/ssl/own.crt:ro&amp;quot;&lt;br /&gt;
      - &amp;quot;/etc/ssl/own.key:/etc/ssl/own.key:ro&amp;quot;&lt;br /&gt;
    networks:&lt;br /&gt;
      - proxy&lt;br /&gt;
&lt;br /&gt;
  # MariaDB - gemeinsame DB fuer Nextcloud + MediaWiki&lt;br /&gt;
  db:&lt;br /&gt;
    image: mariadb:11&lt;br /&gt;
    container_name: db&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW&lt;br /&gt;
    environment:&lt;br /&gt;
      MARIADB_ROOT_PASSWORD: rootpass&lt;br /&gt;
      MARIADB_AUTO_UPGRADE: &amp;quot;1&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - db_data:/var/lib/mysql&lt;br /&gt;
      - ./db-init:/docker-entrypoint-initdb.d:ro&lt;br /&gt;
    networks:&lt;br /&gt;
      - backend&lt;br /&gt;
&lt;br /&gt;
  # Nextcloud&lt;br /&gt;
  nextcloud:&lt;br /&gt;
    image: nextcloud:30-apache&lt;br /&gt;
    container_name: nextcloud&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - db&lt;br /&gt;
    environment:&lt;br /&gt;
      MYSQL_HOST: db&lt;br /&gt;
      MYSQL_DATABASE: nextcloud&lt;br /&gt;
      MYSQL_USER: nextcloud&lt;br /&gt;
      MYSQL_PASSWORD: nextcloudpass&lt;br /&gt;
      NEXTCLOUD_ADMIN_USER: admin&lt;br /&gt;
      NEXTCLOUD_ADMIN_PASSWORD: adminpass&lt;br /&gt;
      NEXTCLOUD_TRUSTED_DOMAINS: cloud.it2XX.xinmen.de.int&lt;br /&gt;
      OVERWRITEPROTOCOL: https&lt;br /&gt;
    volumes:&lt;br /&gt;
      - nextcloud_data:/var/www/html&lt;br /&gt;
    networks:&lt;br /&gt;
      - proxy&lt;br /&gt;
      - backend&lt;br /&gt;
    labels:&lt;br /&gt;
      - &amp;quot;traefik.enable=true&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.nextcloud.rule=Host(`cloud.it2XX.xinmen.de.int`)&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.nextcloud.entrypoints=websecure&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.nextcloud.tls=true&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.services.nextcloud.loadbalancer.server.port=80&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.middlewares.nc-dav.redirectregex.regex=https://([^/]*)/.well-known/(card|cal)dav&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.middlewares.nc-dav.redirectregex.replacement=https://$${1}/remote.php/dav/&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.nextcloud.middlewares=nc-dav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  # MediaWiki&lt;br /&gt;
  mediawiki:&lt;br /&gt;
    image: mediawiki:1.43&lt;br /&gt;
    container_name: mediawiki&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - db&lt;br /&gt;
    volumes:&lt;br /&gt;
      - mediawiki_data:/var/www/html/images&lt;br /&gt;
      # LocalSettings.php nach dem Setup einhaengen:&lt;br /&gt;
      # - ./LocalSettings.php:/var/www/html/LocalSettings.php:ro&lt;br /&gt;
    networks:&lt;br /&gt;
      - proxy&lt;br /&gt;
      - backend&lt;br /&gt;
    labels:&lt;br /&gt;
      - &amp;quot;traefik.enable=true&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.mediawiki.rule=Host(`wiki.it2XX.xinmen.de.int`)&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.mediawiki.entrypoints=websecure&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.routers.mediawiki.tls=true&amp;quot;&lt;br /&gt;
      - &amp;quot;traefik.http.services.mediawiki.loadbalancer.server.port=80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  proxy:&lt;br /&gt;
  backend:&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  db_data:&lt;br /&gt;
  nextcloud_data:&lt;br /&gt;
  mediawiki_data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erklärung der Bausteine==&lt;br /&gt;
&lt;br /&gt;
===Traefik===&lt;br /&gt;
&lt;br /&gt;
; Docker-Provider mit Opt-in&lt;br /&gt;
* &amp;lt;code&amp;gt;exposedbydefault=false&amp;lt;/code&amp;gt; sorgt dafür, dass nur Container mit &amp;lt;code&amp;gt;traefik.enable=true&amp;lt;/code&amp;gt; veröffentlicht werden. Alles andere bleibt unsichtbar.&lt;br /&gt;
&lt;br /&gt;
; File-Provider für TLS&lt;br /&gt;
* Das statische Zertifikat wird nicht über Labels, sondern über eine Datei eingebunden (siehe &amp;lt;code&amp;gt;tls.yml&amp;lt;/code&amp;gt;). &amp;lt;code&amp;gt;watch=true&amp;lt;/code&amp;gt; lädt Änderungen ohne Neustart.&lt;br /&gt;
&lt;br /&gt;
; HTTP→HTTPS-Redirect global&lt;br /&gt;
* Die beiden &amp;lt;code&amp;gt;redirections&amp;lt;/code&amp;gt;-Zeilen leiten den gesamten Port-80-Verkehr auf HTTPS um. Das muss kein Container selbst regeln.&lt;br /&gt;
&lt;br /&gt;
; Docker-Socket read-only&lt;br /&gt;
* Traefik liest die Container-Labels über den Docker-Socket. Der wird &amp;#039;&amp;#039;&amp;#039;read-only&amp;#039;&amp;#039;&amp;#039; gemountet.&lt;br /&gt;
&lt;br /&gt;
===MariaDB===&lt;br /&gt;
&lt;br /&gt;
; Gemeinsame Datenbank&lt;br /&gt;
* Ein Container, zwei Datenbanken. Die Anlage übernimmt das Init-Skript (siehe unten), das beim ersten Start automatisch ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
; Transaction-Isolation&lt;br /&gt;
* &amp;lt;code&amp;gt;READ-COMMITTED&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;binlog-format=ROW&amp;lt;/code&amp;gt; sind die von Nextcloud empfohlenen Einstellungen.&lt;br /&gt;
&lt;br /&gt;
===Netze===&lt;br /&gt;
&lt;br /&gt;
; Zwei Netze trennen Front und Back&lt;br /&gt;
* &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; verbindet Traefik mit den Webanwendungen. &amp;lt;code&amp;gt;backend&amp;lt;/code&amp;gt; verbindet die Webanwendungen mit der Datenbank. Die DB hängt &amp;#039;&amp;#039;&amp;#039;nicht&amp;#039;&amp;#039;&amp;#039; am Proxy-Netz und ist damit von außen nicht erreichbar.&lt;br /&gt;
&lt;br /&gt;
==Traefik Dynamic Config (tls.yml)==&lt;br /&gt;
&lt;br /&gt;
Pfad im Container: &amp;lt;code&amp;gt;/etc/traefik/dynamic/tls.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
tls:&lt;br /&gt;
  certificates:&lt;br /&gt;
    - certFile: /etc/ssl/own.crt&lt;br /&gt;
      keyFile: /etc/ssl/own.key&lt;br /&gt;
  stores:&lt;br /&gt;
    default:&lt;br /&gt;
      defaultCertificate:&lt;br /&gt;
        certFile: /etc/ssl/own.crt&lt;br /&gt;
        keyFile: /etc/ssl/own.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Default-Zertifikat&lt;br /&gt;
* Durch das &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;-Store reicht an jedem Router ein einfaches &amp;lt;code&amp;gt;tls=true&amp;lt;/code&amp;gt;. Traefik greift automatisch auf dieses Zertifikat zurück, ein eigener Cert-Verweis pro Router entfällt.&lt;br /&gt;
&lt;br /&gt;
==Datenbank-Init (01-init.sql)==&lt;br /&gt;
&lt;br /&gt;
Pfad: &amp;lt;code&amp;gt;./db-init/01-init.sql&amp;lt;/code&amp;gt; – wird beim &amp;#039;&amp;#039;&amp;#039;ersten&amp;#039;&amp;#039;&amp;#039; Start von MariaDB automatisch ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE IF NOT EXISTS nextcloud&lt;br /&gt;
  CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;&lt;br /&gt;
CREATE USER IF NOT EXISTS &amp;#039;nextcloud&amp;#039;@&amp;#039;%&amp;#039; IDENTIFIED BY &amp;#039;nextcloudpass&amp;#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON nextcloud.* TO &amp;#039;nextcloud&amp;#039;@&amp;#039;%&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE IF NOT EXISTS mediawiki&lt;br /&gt;
  CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;&lt;br /&gt;
CREATE USER IF NOT EXISTS &amp;#039;mediawiki&amp;#039;@&amp;#039;%&amp;#039; IDENTIFIED BY &amp;#039;mediawikipass&amp;#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON mediawiki.* TO &amp;#039;mediawiki&amp;#039;@&amp;#039;%&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Nur beim ersten Start&lt;br /&gt;
* Das Init-Verzeichnis wird nur ausgeführt, solange das Datenverzeichnis &amp;lt;code&amp;gt;db_data&amp;lt;/code&amp;gt; leer ist. Bei einem späteren Lauf muss man die Datenbanken von Hand anlegen oder das Volume löschen.&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme==&lt;br /&gt;
&lt;br /&gt;
; Zertifikat ablegen&lt;br /&gt;
* Das Wildcard-Zertifikat zur Domain mit dem vorhandenen Skript ziehen, sodass &amp;lt;code&amp;gt;/etc/ssl/own.crt&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/etc/ssl/own.key&amp;lt;/code&amp;gt; vorhanden sind.&lt;br /&gt;
* &amp;lt;code&amp;gt;./get-cert.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Stack starten&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Status prüfen&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Logs verfolgen&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose logs -f traefik&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
&lt;br /&gt;
Die beiden Hostnamen müssen auf den Docker-Host zeigen:&lt;br /&gt;
&lt;br /&gt;
; Nextcloud&lt;br /&gt;
* &amp;lt;code&amp;gt;cloud.it2XX.xinmen.de.int&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; MediaWiki&lt;br /&gt;
* &amp;lt;code&amp;gt;wiki.it2XX.xinmen.de.int&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MediaWiki-Setup abschließen==&lt;br /&gt;
&lt;br /&gt;
; Erstaufruf im Browser&lt;br /&gt;
* MediaWiki startet ohne &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; mit dem Web-Installer. Als Datenbank-Host &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt;, Datenbank &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;, Benutzer &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt; angeben.&lt;br /&gt;
&lt;br /&gt;
; LocalSettings.php einhängen&lt;br /&gt;
* Nach dem Setup wird die generierte &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; heruntergeladen, neben das Compose-File gelegt und der auskommentierte Volume-Mount im &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;-Service aktiviert. Danach Container neu starten.&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose up -d mediawiki&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>