Nach den Performanceproblemen der ersten Veranstaltung war klar, dass die bestehende Installation nicht weiter angepasst wird. Stattdessen wurde OpenSlides vollständig neu auf einem frischen vServer aufgebaut. Ziel war eine reproduzierbare Installation ohne Altlasten, die sich vor zukünftigen Versammlungen schnell wiederherstellen lässt.
Dieser Beitrag beschreibt den tatsächlichen Ablauf inklusive der Punkte, an denen es in der Praxis typischerweise hakt.
Ausgangspunkt
Neuer Server mit:
- Ubuntu LTS
- 4 vCPU
- 8 GB RAM
- öffentliche IPv4 Adresse
- Domain bereits vorhanden
Wichtig war von Anfang an die Entscheidung, OpenSlides ausschließlich in Docker zu betreiben und keine manuellen Anpassungen innerhalb der Container vorzunehmen.
Schritt 1 – Grundsystem vorbereiten
Zuerst wurde das System aktualisiert:
apt update
apt upgrade -y
Danach Installation der benötigten Basis:
apt install -y docker.io docker-compose-pluginCode-Sprache: CSS (css)
Docker starten und aktivieren:
systemctl enable --now docker
Schritt 2 – OpenSlides Setup vorbereiten
Arbeitsverzeichnis anlegen:
mkdir -p /home/oliver/openslides2
cd /home/oliver/openslides2
OpenSlides Setup herunterladen bzw. vorhandene Konfiguration übernehmen:
git clone https://github.com/OpenSlides/OpenSlides.git .Code-Sprache: PHP (php)
Alternativ wurde in unserem Fall die bestehende Konfiguration vom alten Server übernommen, inklusive:
- docker-compose.yml
- compose.rendered.yml
- secrets Verzeichnis
Das secrets Verzeichnis ist kritisch. Ohne diese Dateien starten die Services zwar, können aber nicht miteinander kommunizieren.
Schritt 3 – Container starten
Start der gesamten Umgebung:
docker compose up -d
Danach prüfen:
docker compose ps
Alle Services müssen laufen oder den Status healthy erreichen. Besonders wichtig sind:
- postgres
- redis
- datastoreReader
- datastoreWriter
- backendManage
- proxy
Wenn einer dieser Container wiederholt neu startet, liegt fast immer ein Konfigurations- oder Rechteproblem vor.
Schritt 4 – Migrationen durchführen
Nach einer Migration oder Versionsänderung fehlen häufig Datenbankmigrationen.
Typischer Fehler:
Missing migrations to apply
Die Migration muss innerhalb des Docker Netzwerks ausgeführt werden:
./openslides migrations finalize -a manage:9008 --no-ssl
Danach prüfen:
./openslides check-server
Erst wenn der Server als bereit gemeldet wird, sollte man mit der weiteren Konfiguration fortfahren.
Schritt 5 – Zugriff testen
Der OpenSlides Proxy läuft standardmäßig auf Port 8000.
Test lokal auf dem Server:
curl -Ik https://127.0.0.1:8000/Code-Sprache: JavaScript (javascript)
Ein HTTP Zugriff liefert häufig nur einen 404 Fehler. Das ist normal, da OpenSlides intern HTTPS verwendet.
Schritt 6 – Domain und Reverse Proxy
OpenSlides selbst sollte nicht direkt öffentlich erreichbar sein. Stattdessen wird ein Reverse Proxy verwendet, der TLS übernimmt.
In unserem Setup wurde Caddy verwendet, weil Zertifikate automatisch erstellt und verlängert werden.
Beispielkonfiguration:
openslide.street-bbq.de {
reverse_proxy https://127.0.0.1:8000 {
transport http {
tls_insecure_skip_verify
}
}
}Code-Sprache: JavaScript (javascript)
Nach dem Neustart von Caddy wird automatisch ein gültiges Zertifikat bezogen.
Typische Fehler beim ersten Start
Diese Punkte haben die meiste Zeit gekostet:
- Secrets nicht lesbar für Container
- Migrationen nicht ausgeführt
- Zugriff über HTTP statt HTTPS
- Reverse Proxy spricht falsches Protokoll
- Zugriff über IP statt Domain
Fast alle Probleme wirken zunächst wie Netzwerkfehler, sind aber Konfigurationsdetails.
Ergebnis
Nach der Neuinstallation lief OpenSlides stabil, ohne Loginprobleme oder Verzögerungen. Besonders auffällig war, dass Abstimmungen sofort synchronisiert wurden und Teilnehmer gleichzeitig arbeiten konnten, ohne dass das System sichtbar langsamer wurde.


Schreibe einen Kommentar