Fork me on GitHub

Herr Knedel/Großartiges mit Containern: Eigenes MediaWiki auf der Synology-Diskstation installieren

Created Fri, 16 Apr 2021 00:00:00 +0000 Modified Sun, 02 Apr 2023 16:35:47 +0000 Schwierigkeitsgrad: Für jeden machbar

481 Words

MediaWiki ist ein auf PHP basiertes Wiki-System, welches als Open Source-Produkt kostenlos verfügbar ist. Heute zeige ich, wie man einen MediaWiki-Dienst auf der Synology-Diskstation installiert.

Option für Profis

Als erfahrener Synology-Nutzer kann man sich natürlich gleich mit SSH einloggen und das ganze Setup via Docker-Compose-Datei installieren.

version: '3'
services:
  mediawiki:
    image: mediawiki
    restart: always
    ports:
      - 8081:80
    links:
      - database
    volumes:
      - ./images:/var/www/html/images
      # After initial setup, download LocalSettings.php to the same directory as
      # this yaml and uncomment the following line and use compose to restart
      # the mediawiki service
      # - ./LocalSettings.php:/var/www/html/LocalSettings.php

  database:
    image: mariadb
    restart: always
    volumes:
       - ./mysql:/var/lib/mysql
    environment:
      # @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
      MYSQL_ROOT_PASSWORD: my_wiki_pass1
      MYSQL_DATABASE: my_wiki
      MYSQL_USER: wikiuser
      MYSQL_PASSWORD: my_wiki_pass

Schritt 1: MediaWiki-Ordner vorbereiten

Ich erstelle ein neues Verzeichnis namens „wiki“ im Docker-Verzeichnis.

Schritt 2: Datenbank installieren

Danach muss eine Datenbank erstellt werden. Ich klicke im Synology-Docker-Fenster auf den Reiter „Registrierung“ und suche nach „mariadb“. Ich wähle das Docker-Image „mariadb“ und klicke anschließend auf den Tag „latest“.

Nach dem Image – Download liegt das Image als Abbild bereit. Docker unterscheide zwischen 2 Zuständen, Container „Dynamisch zustand“ und Image/Abbild (Festzustand). Bevor wir nun einen Container aus dem Abbild erzeugen, müssen noch ein paar Einstellungen getätigt werden.

Ich klicke per Doppelklick auf mein mariadb-Abbild.

Danach klicke ich auf „Erweiterte Einstellungen“ und aktiviere den „Automatischen Neustart". Ich wähle den Reiter „Volumen“ aus und klicke auf „Ordner hinzufügen“. Dort erstelle ich einen neuen Datenbank-Ordner mit diesem Mount-Pfad „/var/lib/mysql“.

Unter „Port-Einstellungen“ werden alle Ports gelöscht. Das heißt, dass ich den „3306“-Port auswähle und mit dem “-"-Button lösche.

Zum Schluss trage ich noch diese Umgebungsvariablen ein:

Variablenname Wert Was ist das?
TZ Europe/Berlin Zeitzone
MYSQL_ROOT_PASSWORD my_wiki_pass Masterpassword der Datenbank.
MYSQL_DATABASE my_wiki Das ist der Datenbankname.
MYSQL_USER wikiuser Benutzer-Name der Wiki-Datenbank.
MYSQL_PASSWORD my_wiki_pass Passwort des Wiki-Datenbanknutzers.

Siehe:

Nach diesen Einstellungen kann Mariadb-Server gestartet werden! Ich drücke überall auf „Übernehmen“.

Schritt 3: MediaWiki installieren

Ich klicke im Synology-Docker-Fenster auf den Reiter „Registrierung“ und suche nach „mediawiki“. Ich wähle das Docker-Image „mediawiki“ aus und klicke anschließend auf den Tag „latest“.

Ich klicke per Doppelklick auf mein Mediawiki-Abbild.

Danach klicke ich auf „Erweiterte Einstellungen“ und aktiviere auch hier den „Automatischen Neustart”. Ich wähle den Reiter „Volumen“ und klicke auf „Ordner hinzufügen“. Dort erstelle ich einen neuen Ordner mit diesem Mount-Pfad „/var/www/html/images“.

Ich vergebe feste Ports für den „MediaWiki“ – Container. Ohne feste Ports könnte es sein, dass der „MediaWiki-Server“ nach einem Neustart auf einen anderen Port läuft.

Außerdem muss noch ein „Link“ zum „mariadb“-Container erstellt werden. Ich klicke auf den „Links“-Reiter und wählen den Datenbank-Container aus. Den Aliasnamen sollte man sich für die Wiki-Installation gut merken.

Zum Schluss trage ich noch eine Umgebungsvariable „TZ“ mit Wert „Europe/Berlin“ ein.

Der Container kann nun gestartet werden. Ich rufe den Mediawiki-Server mit der Synology-IP-Adresse und meinem Container–Port auf. Bei Datenbankserver trage ich den Aliasnamen des Datenbank-Containers ein. Außerdem trage ich den Datenbanknamen, Nutzernamen und das Password aus „Schritt 2“ ein.