Moodle (https://moodle.de) ist eine open source Kurs und Lernplattform. Viele Schulen und Universitäten nutzen die Plattform. In Moodle lassen sich Kurse / Nutzer und Inhalte einfach verwalten. Ebenfalls gibt es viele Plugins, durch die Moodle erweitert werden kann.
Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator
Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Moodle werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.
Um Moodle neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren
Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Moodle abspeichen. Dazu geben wir folgendes in der Konsole ein:
mkdir -p /opt/containers/moodle/
Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.
Nun müssen wir noch die Rechte des Ordners anpassen. Dazu gebt ihr folgendes ein:
cd /opt/containers/moodle
chown 1001 database/
Nun können wir mit der eigentlichen „Installation“ von Moodle beginnen. Dazu öffnet ihr folgende Datei:
nano /opt/containers/moodle/docker-compose.yml
Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Moodle Container.
version: '2'
services:
moodle-db:
image: docker.io/bitnami/mariadb:10.5
container_name: moodle-db
environment:
- MARIADB_USER=moodle
- MARIADB_DATABASE=moodle
- MARIADB_PASSWORD=sicher12!
- MARIADB_CHARACTER_SET=utf8mb4
- MARIADB_COLLATE=utf8mb4_unicode_ci
- MARIADB_ROOT_PASSWORD=sicher12!
volumes:
- ./database:/bitnami/mariadb
networks:
- default
restart: unless-stopped
moodle:
build: ./moodle-build
container_name: moodle
restart: unless-stopped
environment:
- BITNAMI_DEBUG=true
- MOODLE_DATABASE_HOST=moodle-db
- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=moodle
- MOODLE_DATABASE_PASSWORD=sicher12!
- MOODLE_DATABASE_NAME=moodle
- MOODLE_USERNAME=euername
- MOODLE_PASSWORD=euerKennwort
- MOODLE_EMAIL=email@euredomain.de
- MOODLE_SITE_NAME=Moodle-dogado
volumes:
- ./app:/bitnami/moodle
- ./daten:/bitnami/moodledata
networks:
- default
- proxy
depends_on:
- moodle-db
labels:
- "traefik.enable=true"
- "traefik.http.routers.moodle.entrypoints=http"
- "traefik.http.routers.moodle.rule=Host(moodle.euredomain.de
)" # Hier eure URL eingeben #
- "traefik.http.middlewares.moodle-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.moodle.middlewares=moodle-https-redirect"
- "traefik.http.routers.moodle-secure.entrypoints=https"
- "traefik.http.routers.moodle-secure.rule=Host(moodle.euredomain.de
)" # Hier eure URL eingeben #
- "traefik.http.routers.moodle-secure.tls=true"
- "traefik.http.routers.moodle-secure.tls.certresolver=http"
- "traefik.http.routers.moodle-secure.service=moodle"
- "traefik.http.services.moodle.loadbalancer.server.port=8080"
- "traefik.docker.network=proxy"
- "traefik.http.routers.moodle-secure.middlewares=secHeaders@file"
networks:
proxy:
external: true
Nun müssen wir noch einiges anpassen.
Nun müsst ihr noch den Hostnamen anpassen, über welchen später Moodle erreichbar sein soll.
Diese beiden Zeilen müsst ihr anpassen.
- "traefik.http.routers.moodle-app.rule=Host(moodle.euredomain.de
)"
- "traefik.http.routers.moodle-app-secure.rule=Host(moodle.euredomain.de
)"
In meinem Fall also:
- "traefik.http.routers.moodle-app.rule=Host(moodle.testbereich.net
)"
- "traefik.http.routers.moodle-app-secure.rule=Host(moodle.testbereich.net
)"
Wenn ihr Moodle direkt auf eurer „Hauptdomain“ betreiben wollt, dann ändert ihr es folgendermaßen ab:
"traefik.http.routers.moodle-app.rule=Host(www.euredomain.de
,euredomain.de
)"
"traefik.http.routers.moodle-app-secure.rule=Host(www.euredomain.de
,euredomain.de
)"
Nachdem ihr den Hostnamen angepasst habt, müsst ihr noch das Datenbank Passwort anpassen. Vergebt ihr ein langes, sicheres Kennwort. Das Kennwort in den beiden Zeilen „MARIADB_PASSWORD“ und „MOODLE_DATABASE_PASSWORD“ muss identisch sein!
Folgende Zeilen müsst ihr ändern:
Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:
Nun passen wir noch die Einstellungen unseres Moodle Administrators an. Wichtig: Der Nutzername darf NUR aus KLEINBUCHSTABEN bestehen.
Dazu passt ihr folgende Zeilen an:
Damit Moodle später weitere Sprachen beherrscht, müssen wir den Container etwas anpassen. Dazu gebt ihr folgendes ein:
nano /opt/containers/moodle/moodle-build/Dockerfile
Dort gebt ihr folgendes ein:
FROM docker.io/bitnami/moodle:3
RUN echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "it_IT.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
Hier werden also später im Container die benötigten Sprachpakete für Deutsch, Französisch, Italienisch sowie Spanisch installiert. Dies könnt ihr beliebig noch erweitern.
Nun sind wir fertig mit der Vorbereitung.
Gebt nun folgendes ein, um euren Moodle Container zu starten:
docker compose -f /opt/containers/moodle/docker-compose.yml up
Beim ersten Start des Containers wird Moodle initialisiert. Dies bedeutet, dass die Datenbank eingerichtet, eure Einstellungen übernommen werden und vieles mehr. Daher dauert es einige Minuten, bis der Container dann über die Webseite erreichbar ist. Bei mir hat es ca. 3 Minuten gedauert.
Am Ende solltet ihr folgendes sehen:
Jetzt könnt ihr mit „STRG+C“ den Container beenden und anschließend mit folgendem Befehl wieder starten, aber dieses Mal im Hintergrund.
docker compose -f /opt/containers/moodle/docker-compose.yml up -d
Geht nun mit eurem Webbrowser auf eure Webseite (z.B. moodle.euredomain.de). Dies sollte so aussehen.
Hier könnt ihr euch nun über „Log in“ einloggen. Gebt hier die Daten ein, welche ihr im Schritt 1.3.6 vergeben habt.
Jetzt solltet ihr folgendes sehen.
Hier könnt ihr noch eine Beschreibung, Name sowie weitere Sachen anpassen.
Dazu klickt ihr auf „Site administration“.
Hier scrollt ihr weit nach unten, bis ihr „Language“ seht und wählt dann „Language packs“ aus.
Sucht hier nun nach „German“ und installiert dann das Sprachpaket.
Dazu geht ihr auf „Language settings“.
Hier könnt ihr nun alle installierten Sprachen auswählen.
Dazu klickt ihr oben rechts auf euer Profil und wählt „Preferences“ aus.
Anschließend klickt ihr auf „Preferred language“.
Nun könnt ihr eure Sprache wählen.
Jetzt habt die das komplette Interface in eurer gewünschten Sprache.