Skip to main content

Förutsättningar

Overleaf är ett typiskt open source-projekt med mikrotjänstarkitektur, där alla tjänster körs i Docker. För att sätta upp en utvecklingsmiljö för Overleaf behöver du en kraftfull server; en konfiguration med minst 8 kärnor och 16 GB RAM rekommenderas, eftersom du behöver köra fler än 20 containrar samtidigt.
Eftersom servrar med 8 eller fler CPU-kärnor vanligtvis är dyra rekommenderar vi starkt att du använder din lokala dator för utveckling.
Som utvecklare förutsätter vi samtidigt att du redan är bekant med installation av Docker. Vi rekommenderar starkt att du använder en aktuell och stabil Ubuntu LTS (t.ex. Ubuntu 24.04 under 2025–2026) och den senaste versionen av Docker för utveckling, eftersom det minskar risken för oväntade fel. Sammanfattningsvis behöver du:
  • En kraftfull server/dator att utveckla på
  • En aktuell och stabil Ubuntu LTS (t.ex. Ubuntu 24.04)
  • En miljö med Docker och Git

Konfigurationsguide

Här använder vi overleaf-cep som exempel för att visa hur du konfigurerar en utvecklingsmiljö för Overleaf.
1

Hämta källkoden

Först klonar vi repot:
bash
2

Synkronisera package-lock.json

Eftersom Overleaf utvecklas i ett internt repository är det mycket troligt att filen package-lock.json blir osynkroniserad på grund av vissa utvecklingsproblem. Vi behöver köra följande kommando för att synkronisera den (om du har en lokal nodejs-miljö).
bash
Om du inte har nodejs installerat behöver du inte oroa dig – du kan använda docker direkt för att köra samma kommando. Kör från roten av Overleaf-repot:
bash
3

Bygg utvecklingsavbildningen

Overleaf tillhandahåller en särskild katalog, /develop, för utvecklingsskript. Bygg bara tjänsterna:
bash
Om Docker får slut på RAM när tjänsterna byggs parallellt skapar du en .env-fil i den här katalogen som innehåller COMPOSE_PARALLEL_LIMIT=1.
4

Starta alla mikrotjänster

Starta sedan tjänsterna:
bash
När tjänsterna körs öppnar du http://localhost/launchpad för att skapa det första administratörskontot.
Du måste köra bin/up innan du kör kommandot bin/dev. Annars kan du stöta på en rad behörighetsproblem.
Som standard är administratörsbehörighet inte tillgänglig. Du behöver lägga till följande i develop/dev.env. Därefter får du åtkomst till adminpanelen.

TeX Live

För att kompilera en PDF behöver du bygga en TeX Live-avbildning som hanterar kompileringen i Docker:
För att kompilera på en macOS-värd kan du behöva åsidosätta sökvägen till Docker-socketen genom att skapa en .env-fil i den här katalogen som innehåller DOCKER_SOCKET_PATH=/var/run/docker.sock.raw Du är också välkommen att använda ayaka-notes/texlive-full, men du kan använda taggen base, som är den minsta versionen av texlive.

Utveckling

För att slippa köra bin/build && bin/up efter varje kodändring kan du köra Overleaf Community Edition i utvecklingsläge, där tjänsterna uppdateras automatiskt vid kodändringar. Använd det medföljande skriptet bin/dev för detta:
Detta startar alla tjänster med node --watch, som automatiskt övervakar koden och startar om tjänsterna vid behov. För bättre prestanda kan du starta endast en delmängd av tjänsterna i utvecklingsläge genom att ange en blankstegsseparerad lista till skriptet bin/dev:
Om tjänsten web startas i utvecklingsläge uppdateras tjänsten web endast när backendkoden ändras. För att även frontendkoden ska uppdateras automatiskt ser du till att också starta tjänsten webpack i utvecklingsläge.
Om inga tjänster anges startar alla tjänster i utvecklingsläge.

Felsökning

När de körs i utvecklingsläge exponerar de flesta tjänster en felsökningsport som du kan ansluta en debugger till, till exempel inspektören i Chromes Dev Tools eller en debugger som är integrerad i en IDE. Följande tabell visar vilken port som exponeras på värddatorn för varje tjänst: För att ansluta till en tjänst med Chromes fjärrfelsökning går du till chrome://inspect/ och ser till att Discover network targets är markerat. Klicka sedan på Configure… och lägg till en post localhost:[service port] för var och en av de tjänster du vill ansluta en debugger till. När du har lagt till en post visas tjänsten som ett Remote Target som du kan inspektera och felsöka.

Loggning

I utvecklingsmiljön tillhandahåller Overleaf skriptet bin/logs, men du behöver installera vissa beroenden:
Alternativt kan du köra direkt med:

Andra verktyg

När du är klar med allt kan du läsa nästa avsnitt för att lägga till felsökningsverktyg i din Overleaf-utveckling.
Senast ändrad 5 oktober 2026