Skip to main content

Voraussetzungen

Overleaf ist ein typisches Open-Source-Projekt mit Microservice-Architektur, bei dem alle Dienste in Docker laufen. Um eine Overleaf-Entwicklungsumgebung einzurichten, benötigen Sie einen leistungsstarken Server; empfohlen wird eine Konfiguration mit mindestens 8 Kernen und 16 GB RAM, da Sie mehr als 20 Container gleichzeitig ausführen müssen.
Da Server mit 8 oder mehr CPU-Kernen in der Regel teuer sind, wird dringend empfohlen, für die Entwicklung Ihren lokalen Computer zu verwenden.
Als Entwickler sollten Sie außerdem bereits mit der Docker-Installation vertraut sein. Wir empfehlen dringend, ein aktuelles und stabiles Ubuntu LTS (z. B. Ubuntu 24.04 in 2025–2026) und die neueste Docker-Version für die Entwicklung zu verwenden, da dies die Wahrscheinlichkeit unerwarteter Fehler verringert. Zusammengefasst benötigen Sie:
  • Einen leistungsstarken Server/Desktop-Rechner für die Entwicklung
  • Ein aktuelles und stabiles Ubuntu LTS (z. B. Ubuntu 24.04)
  • Eine Docker- und Git-Umgebung

Konfigurationsanleitung

Hier verwenden wir overleaf-cep als Beispiel, um zu zeigen, wie eine Overleaf-Entwicklungsumgebung konfiguriert wird.
1

Quellcode abrufen

Klonen Sie zunächst das Repository:
bash
2

package-lock.json synchronisieren

Da Overleaf in einem internen Repository entwickelt wird, ist die Datei package-lock.json aufgrund einiger Entwicklungsabläufe sehr wahrscheinlich nicht mehr synchron. Führen Sie den folgenden Befehl aus, um sie zu synchronisieren (sofern Sie eine lokale Node.js-Umgebung haben):
bash
Wenn Node.js nicht installiert ist, keine Sorge: Sie können denselben Befehl direkt mit docker ausführen. Führen Sie ihn im Stammverzeichnis des Overleaf-Repositorys aus:
bash
3

Entwicklungs-Image bauen

Overleaf stellt ein eigenes Verzeichnis /develop für Entwicklungsskripte bereit. Bauen Sie einfach die Dienste:
bash
Falls Docker beim parallelen Bauen der Dienste nicht genügend RAM hat, erstellen Sie in diesem Verzeichnis eine .env-Datei mit dem Inhalt COMPOSE_PARALLEL_LIMIT=1.
4

Alle Microservices starten

Starten Sie anschließend die Dienste:
bash
Sobald die Dienste laufen, öffnen Sie http://localhost/launchpad, um das erste Administratorkonto anzulegen.
Sie müssen bin/up ausführen, bevor Sie den Befehl bin/dev ausführen. Andernfalls können eine Reihe von Berechtigungsproblemen auftreten.
Standardmäßig sind Administratorrechte nicht verfügbar. Sie müssen Folgendes zu develop/dev.env hinzufügen. Danach haben Sie Zugriff auf das Admin-Panel.

TeX Live

Zum Kompilieren eines PDFs muss ein TeX-Live-Image gebaut werden, das die Kompilierung innerhalb von Docker übernimmt:
Um auf einem macOS-Host zu kompilieren, müssen Sie möglicherweise den Pfad zum Docker-Socket überschreiben, indem Sie in diesem Verzeichnis eine .env-Datei mit dem Inhalt DOCKER_SOCKET_PATH=/var/run/docker.sock.raw anlegen. Sie können auch gerne ayaka-notes/texlive-full verwenden; dabei können Sie den Tag base nutzen, die minimale Version von TeX Live.

Entwicklung

Damit Sie nicht nach jeder Codeänderung bin/build && bin/up ausführen müssen, können Sie die Overleaf Community Edition im Entwicklungsmodus betreiben, in dem sich die Dienste bei Codeänderungen automatisch aktualisieren. Verwenden Sie dazu das mitgelieferte Skript bin/dev:
Dadurch werden alle Dienste mit node --watch gestartet, das den Code automatisch überwacht und die Dienste bei Bedarf neu startet. Zur Verbesserung der Performance können Sie nur eine Teilmenge der Dienste im Entwicklungsmodus starten, indem Sie dem Skript bin/dev eine durch Leerzeichen getrennte Liste übergeben:
Wenn Sie den Dienst web im Entwicklungsmodus starten, wird web nur bei Änderungen am Backend-Code aktualisiert. Damit auch der Frontend-Code automatisch aktualisiert wird, starten Sie zusätzlich den Dienst webpack im Entwicklungsmodus.
Wenn keine Dienste angegeben werden, starten alle Dienste im Entwicklungsmodus.

Debugging

Im Entwicklungsmodus stellen die meisten Dienste einen Debugging-Port bereit, an den Sie einen Debugger anhängen können, etwa den Inspector in den Chrome Dev Tools oder einen in eine IDE integrierten Debugger. Die folgende Tabelle zeigt den auf dem Host-Rechner bereitgestellten Port für jeden Dienst: Um sich über das Remote Debugging von Chrome mit einem Dienst zu verbinden, öffnen Sie chrome://inspect/ und stellen Sie sicher, dass Discover network targets aktiviert ist. Klicken Sie dann auf Configure… und fügen Sie für jeden Dienst, an den Sie einen Debugger anhängen möchten, einen Eintrag localhost:[service port] hinzu. Nach dem Hinzufügen eines Eintrags erscheint der Dienst als Remote Target, das Sie untersuchen und debuggen können.

Logging

In der Entwicklungsumgebung stellt Overleaf das Skript bin/logs bereit; dafür müssen Sie jedoch einige Abhängigkeiten installieren:
Alternativ können Sie die Logs direkt so anzeigen:

Weitere Tools

Wenn Sie alles erledigt haben, finden Sie im nächsten Abschnitt Hinweise, wie Sie Ihrer Overleaf-Entwicklung einige Debugging-Tools hinzufügen.
Zuletzt geändert am 5. Oktober 2026