AdLer installieren Dieser Leitfaden beschreibt die Installation und das Setup von AdLer auf einem Linux-Server.
Da in diesem Leitfaden technische Aspekte genauer erläutert werden, ist dieser sehr ausführlich. Für einen Quick Start des AdLer Systems verwenden Sie unsere Entwicklerumgebung .
Eine Nutzung im LAN ohne Domain (nur über IP und Ports) wird von uns nicht unterstützt. Unsere lokale Entwicklungsumgebung kann mit Anpassungen aber eingeschränkt für dieses Scenario verwendet werden. Siehe hierzu die Notizen zum Thema Hostname im Repo der Entwicklungsumgebung .
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
Für die Installation und den sicheren/stabilen Betrieb von AdLer sind diese Kenntnisse zwingend erforderlich. Diese werden im folgenden als bekannt vorausgesetzt.
Überblick Das gesamte Setup besteht aus zwei Docker Compose Projekten:
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:
Sofern Sie bereits einen anderen Reverse-Proxy eingerichtet haben können Sie diesen Konfigurationsschritt überspringen und Ihren Reverse Proxy separat für AdLer konfigurieren.
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
Diese Datei enthält wichtige Konfiguration für Traefik. Falls Sie Änderungen an Traefik vornehmen müssen, sollten Sie diese in dieser Datei vornehmen.
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
Dieses separat definierte Netzwerk ist erforderlich, um die getrennten Docker Compose Stacks miteinander zu verbinden und hat zusätzlich den Vorteil, dass wir den Zugriff von Traefik auf Container, zu diesen kein Zugriff von außen möglich sein sollte (bspw. Datenbanken), verhindern können.
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:
Docker stoppen: systemctl stop docker
Kopie aller Docker-Volumes erstellen (Standard-Pfad: /var/lib/docker/volumes
): cp -r /var/lib/docker/volumes <backup directory>
Kopie der Docker Compose Ordner (mindestens des AdLer-Ordners) erstellen: cp -r <adler-compose-dir> <backup directory>
Docker starten: systemctl start docker
Bei diesem Vorgehen sind folgende Punkte zu beachten:
Bei der Sicherung wird temporär Docker auf dem Host gestoppt. Es kommt daher zu einer Downtime aller Docker-Services, einschließlich AdLer
Dieses Vorgehen sichert alle Docker Volumes. Es werden daher potenziell unnötige Daten von anderen Docker-Containern gesichert.
Der Backup-Prozess sollte automatisiert und regelmäßig durchgeführt werden. Hierfür sollte die Nutzung von Standard-Backup-Tools, wie bspw. Restic , in Kombination mit einem Cronjob in Betracht gezogen werden.
Last modified: 16 April 2025