Wähle einen Artikel
Moodle auf VPS installieren
Moodle auf VPS installieren

Hinweis
Einige Screenshots zeigen das Backend unseres Schwesterunternehmens dogado. Die gezeigten Schritte können jedoch auch im easyname-Backend durchgeführt werden.

0. Überblick

  • Verwendetes System: Debian 11 64 bit
  • Genutzter User: Ich nehme alles als „root“ vor
  • Testserver: VPS General Purpose
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren ?
  • Besonderheiten:
    • Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
    • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Moodle installieren

1.1 Einleitung

Moodle 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.

1.2 Infos zu yml Dateien

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. Du kannst 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

1.3 Vorbereitung

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 findest du hier: /de/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren

1.3.1 Verzeichnis erstellen

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/{database,app,daten,moodle-build}

Du kannst hier auch ein anderes Verzeichnis verwenden. Musst dann aber die gesamte Anleitung entsprechend anpassen.

Nun müssen wir noch die Rechte des Ordners anpassen. Dazu gibst du folgendes ein:

cd /opt/containers/moodle

chown 1001 database/

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Moodle beginnen. Dazu öffnest du folgende Datei:

nano /opt/containers/moodle/docker-compose.yml

Nun kopierst du 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.

1.3.3 Hostname anpassen

Nun musst du noch den Hostnamen anpassen, über welchen später Moodle erreichbar sein soll.

Diese beiden Zeilen musst du 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 du Moodle direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du 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)"

1.3.4 Datenbank Passwort anpassen

Nachdem du den Hostnamen angepasst hast, musst du noch das Datenbank Passwort anpassen. Vergib ein langes, sicheres Kennwort. Das Kennwort in den beiden Zeilen „MARIADB_PASSWORD“ und „MOODLE_DATABASE_PASSWORD“ muss identisch sein!

Folgende Zeilen musst du ändern:

  • MARIADB_PASSWORD=sicher12!
  • MARIADB_ROOT_PASSWORD=sicher12!
  • MOODLE_DATABASE_PASSWORD=sicher12!

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

  • MARIADB_PASSWORD=Fhas23!da4
  • MOODLE_DATABASE_PASSWORD= Fhas23!da4
  • MARIADB_ROOT_PASSWORD=ZZA3123!

1.3.5 Moodle Admin anpassen

Nun passen wir noch die Einstellungen unseres Moodle Administrators an. Wichtig: Der Nutzername darf NUR aus KLEINBUCHSTABEN bestehen.

Dazu passt du folgende Zeilen an:

  • MOODLE_USERNAME=euername
  • MOODLE_PASSWORD=euerKennwort
  • MOODLE_EMAIL=email@euredomain.de
  • MOODLE_SITE_NAME=Moodle-dogado

1.3.6 Moodle für weitere Sprachen vorbereiten

Damit Moodle später weitere Sprachen beherrscht, müssen wir den Container etwas anpassen. Dazu gibst du folgendes ein:

nano /opt/containers/moodle/moodle-build/Dockerfile

Dort gibst du 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 kannst du beliebig noch erweitern.

Nun sind wir fertig mit der Vorbereitung.

2. Moodle starten

Gib nun folgendes ein, um deinen 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, deine 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 solltest du folgendes sehen:

Jetzt kannst du 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 

Gehe nun mit deinem Webbrowser auf deine Webseite (z.B. moodle.deinedomain.de). Dies sollte so aussehen.

Hier kannst du dich nun über „Log in“ einloggen. Gib hier die Daten ein, welche du im Schritt 1.3.6 vergeben hast.

Jetzt solltest du folgendes sehen.

Hier kannst du noch eine Beschreibung, Name sowie weitere Sachen anpassen.

2.1 Sprachpaket Deutsch installieren

Dazu klickst du auf „Site administration“.

Hier scrollst du weit nach unten, bis du „Language“ siehst und wählst dann „Language packs“ aus.

Suche hier nun nach „German“ und installier dann das Sprachpaket.

2.2 Deutsch als Standardsprache festlegen

Dazu gehst du auf „Language settings“.

Hier kannst du nun alle installierten Sprachen auswählen.

2.3 Sprache des Benutzers ändern

Dazu klickst du oben rechts auf dein Profil und wählst „Preferences“ aus.

Anschließend klickst du auf „Preferred language“.

Nun kannst du deine Sprache wählen.

Jetzt hast du das komplette Interface in deiner gewünschten Sprache

Nächster Artikel
LAMP System auf VPS installieren
Weitere passende Themen