Dieser Leitfaden beschreibt die Installation und das Setup von AdLer auf einem Linux-Server.
Voraussetzungen
root-Zugriff auf einen Linux Server. In diesem Guide wird ein Debian 12 Server verwendet. Die Installation auf anderen Linux-Distributionen wird in gewissen Punkten abweichen und hier nicht behandelt.
Der Server hat eine öffentliche statische IP-Adresse.
Traefik übernimmt die Funktion unseres Reverse-Proxy und ermöglicht es uns, dass alle AdLer-Services auf dem gleichen Server auf Port 80 auf unterschiedlichen Domains erreichbar sind:
Wir verwenden Traefik in einem eigenen Docker-Compose Projekt um den Reverse-Proxy und die Services, welche an diesen angeschlossen sind, unabhängig voneinander verwalten zu können.
Die eigentliche Konfiguration der (Sub-)Domains ist in .env gegeben.
In einem Ordner /traefik müssen die folgenden beiden Dateien erstellt werden:
traefik.yml
#file: noinspection WrsCodeBlockWidthInspection
providers:
docker:
#nicht alle Docker Container per default erreichbar machen
exposedByDefault: false
network: traefik_gateway
entrypoints:
web:
address: :80
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: :443
#diese Section regelt automatische Zertifikatvergabe
#durch Lets Encrypt.
#sofern ein eigenes Zertifikat vorhanden ist, kann stattdessen dieses
#verwendet werden (siehe Traefik Dokumentation)
certificatesresolvers:
le:
acme:
email: <EMAIL> #ersetzen
storage: /acme/acme.json
tlschallenge: true
accessLog: #optional
filePath: "/accesslogs/access.log"
log:
level: WARN
http: #optional, verhindert web scraping durch Suchmaschinen
middlewares:
add-robots-headers:
headers:
X-Robots-Tag: „noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex“
middlewaresChain:
default:
middlewares:
- add-robots-headers
Nun muss noch das traefik_gateway Netzwerk manuell in Docker erstellt werden:
docker network create -d bridge traefik_gateway
Traefik kann nun mit docker-compose up -d gestartet werden.
AdLer
In einem Ordner separat des Traefik Ordners müssen die folgenden Dateien .env, stack.env und docker-compose.yml erstellt werden. Danach kann AdLer mit docker-compose up -d gestartet werden.
Dateien
.env
In dieser Datei werden die Umgebungsvariablen gesetzt, die zur Konfiguration von AdLer benötigt werden.
# moodle admin user
_MOODLE_USER=administrator
_MOODLE_PW=<a unique secret password>
# db passwords
_DB_ROOT_PW=<a unique secret password>
_DB_BACKEND_PW=<a unique secret password>
_DB_MOODLE_PW=<a unique secret password>
# url stuff
_DOMAIN=projekt-adler.eu # URL-Basis, muss angepasst werden
# deployment name
_DEPLOYMENT_NAME=prod # Interner Name, kann so belassen werden
######################################################################
# Die nachfolgenden Werte können so belassen oder angepasst werden
## urls
_URL_MOODLE=moodle.${_DOMAIN}
_URL_BACKEND=api.${_DOMAIN}
_URL_3D=engine.${_DOMAIN}
## db
_DB_BACKEND_USER=adler_backend
_DB_BACKEND_NAME=adler_backend
_DB_MOODLE_USER=bitnami_moodle
_DB_MOODLE_NAME=bitnami_moodle
Erklärung der Variablen
_MOODLE_USER und _MOODLE_PW sind die Anmeldedaten für den Moodle-Administrator. Für _MOODLE_PW muss ein sicheres Passwort gewählt werden.
_DB_BACKEND_PW und _DB_MOODLE_PW sind die Passwörter für die Datenbanken, die von den Backend- und Moodle-Containern verwendet werden. Hier müssen ebenfalls sichere Passwörter gewählt werden.
_DB_ROOT_PW ist das Passwort für den Datenbank-Root-Benutzer. Dieser Nutzer wird nur für den administrativen Zugriff des Server-Administrators genutzt. Hier muss ebenfalls ein sicheres Passwort gewählt werden.
_DOMAIN ist der gemeinsame Teil der URLs für die drei Subdomains. Hier wird die Domain eingetragen, für die die Subdomains erstellt wurden.
_DEPLOYMENT_NAME ist der Name des Deployments. Er muss für jedes AdLer-Deployment eindeutig sein und wird für interne Zwecke verwendet.
_URL_MOODLE, _URL_BACKEND und _URL_3D sind die URLs für die drei Subdomains. Die Einträge müssen mit .${_DOMAIN} enden. Dies müssen die Subdomains sein, für die die DNS-Einträge erstellt wurden.
_DB_BACKEND_USER, _DB_BACKEND_NAME, _DB_MOODLE_USER und _DB_MOODLE_NAME sind die Benutzer- und Datenbanknamen für die Backend- und Moodle-Datenbanken. In der Regel ist es nicht notwendig diese Werte anzupassen.
docker-compose.yml (AdLer Stack)
Diese Datei steuert das Deployment der AdLer Instanz: