AdLerDokumentation Help

AdLer installieren

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.

  • Docker (nicht Docker-Desktop) ist installiert (siehe Docker-Installationsanleitung).

  • Es besteht Zugriff auf eine Domain, für die Subdomains erstellt werden können.

Kenntnisse

  • Grundlegende Administration eines Linux-Servers

  • Docker und Docker Compose

  • Grundverständnis von Netzwerkkonfiguration

Überblick

Das gesamte Setup besteht aus zwei Docker Compose Projekten:

Setup

Vorbereitungen

  • Festlegen der Domains für die drei sub-Anwendungen von AdLer und erstellen der DNS Einträge. Diese müssen Subdomains einer gemeinsamen Domain sein.

    • API/Backend (hier: api.projekt-adler.eu)

    • Moodle (hier: moodle.projekt-adler.eu)

    • Frontend (hier: play.projekt-adler.eu)

Traefik

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:

Deploymentdiagramm für Traefik
  • 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 Datei des AdLer Stacks 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

docker-compose.yml

services: traefik: image: traefik:v3.0 restart: unless-stopped networks: default: traefik_gateway: ports: - "80:80" - "443:443" - "24550:24550" volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./traefik.yml:/etc/traefik/traefik.yml" - "./traefiklogs:/accesslogs" #benötigt für accessLog in traefik.yml - "./acme:/acme" networks: default: traefik_gateway: name: traefik_gateway external: true

Docker Netzwerk erstellen

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

Die Anleitung zum Setup des AdLer-Stacks findet sich hier.

Backup

Um ein Backup der AdLer Instanz zu erstellen, kann wie folgt vorgegangen werden:

  1. Docker stoppen: systemctl stop docker

  2. Kopie aller Docker-Volumes erstellen (Standard-Pfad: /var/lib/docker/volumes): cp -r /var/lib/docker/volumes <backup directory>

  3. Kopie der Docker Compose Ordner (mindestens des AdLer-Ordners) erstellen: cp -r <adler-compose-dir> <backup directory>

  4. Docker starten: systemctl start docker

Bei diesem Vorgehen sind folgende Punkte zu beachten:

Last modified: 16 April 2025