Skip to main content

Forutsetninger

Overleaf er et typisk åpen kildekode-prosjekt med mikrotjenestearkitektur, der alle tjenester kjører i Docker. For å sette opp et utviklingsmiljø for Overleaf trenger du en kraftig server; en konfigurasjon med minst 8 kjerner og 16 GB RAM anbefales, siden du må kjøre mer enn 20 containere samtidig.
Siden servere med 8 eller flere CPU-kjerner vanligvis er dyre, anbefales det sterkt å bruke din lokale datamaskin til utvikling.
Samtidig forventer vi at du som utvikler allerede er kjent med Docker-installasjon. Vi anbefaler sterkt å bruke en nyere og stabil Ubuntu LTS (f.eks. Ubuntu 24.04 i 2025–2026) og nyeste Docker til utvikling, da dette reduserer risikoen for uventede feil. Oppsummert trenger du:
  • En kraftig server/stasjonær maskin å utvikle på
  • En nyere og stabil Ubuntu LTS (f.eks. Ubuntu 24.04)
  • Docker- og Git-miljø

Konfigurasjonsveiledning

Her bruker vi overleaf-cep som eksempel for å vise hvordan du konfigurerer et utviklingsmiljø for Overleaf.
1

Hent kildekoden

Først kloner vi repositoriet:
bash
2

Synkroniser package-lock.json

Siden Overleaf utvikles i et internt repositorium, er det svært sannsynlig at package-lock.json-filen kommer ut av synk på grunn av enkelte utviklingsforhold. Vi må kjøre følgende kommando for å synkronisere den (hvis du har et lokalt Node.js-miljø):
bash
Hvis du ikke har Node.js installert, trenger du ikke bekymre deg – du kan bruke docker direkte til å kjøre den samme kommandoen. Kjør fra roten av Overleaf-repositoriet:
bash
3

Bygg utviklingsimage

Overleaf tilbyr en egen katalog, /develop, for utviklingsskript. Bygg ganske enkelt tjenestene:
bash
Hvis Docker går tom for RAM mens tjenestene bygges parallelt, oppretter du en .env-fil i denne katalogen som inneholder COMPOSE_PARALLEL_LIMIT=1.
4

Start alle mikrotjenester

Start deretter tjenestene:
bash
Når tjenestene kjører, åpner du http://localhost/launchpad for å opprette den første administratorkontoen.
Du må kjøre bin/up før du kjører kommandoen bin/dev. Ellers kan du støte på en rekke tillatelsesproblemer.
Administratorrettigheter er ikke tilgjengelige som standard. Du må legge til dette i develop/dev.env. Etter det får du tilgang til administrasjonspanelet.

TeX Live

For å kompilere en PDF må du bygge et TeX Live-image som håndterer kompileringen inne i Docker:
For å kompilere på en macOS-vert kan det hende du må overstyre stien til Docker-socketen ved å opprette en .env-fil i denne katalogen som inneholder DOCKER_SOCKET_PATH=/var/run/docker.sock.raw Du kan også gjerne bruke ayaka-notes/texlive-full, men da kan du bruke base-taggen, som er minimumsversjonen av TeX Live.

Utvikling

For å slippe å kjøre bin/build && bin/up etter hver kodeendring kan du kjøre Overleaf Community Edition i utviklingsmodus, der tjenestene oppdateres automatisk ved kodeendringer. Bruk det medfølgende skriptet bin/dev til dette:
Dette starter alle tjenester med node --watch, som automatisk overvåker koden og starter tjenestene på nytt ved behov. For bedre ytelse kan du starte bare et utvalg av tjenestene i utviklingsmodus ved å gi skriptet bin/dev en mellomromsseparert liste:
Hvis du starter web-tjenesten i utviklingsmodus, oppdateres web-tjenesten bare når backend-koden endres. For også å oppdatere frontend-koden automatisk må du sørge for å starte webpack-tjenesten i utviklingsmodus i tillegg.
Hvis ingen tjenester angis, starter alle tjenestene i utviklingsmodus.

Feilsøking

Når de kjøres i utviklingsmodus, eksponerer de fleste tjenester en feilsøkingsport som du kan koble en debugger til, for eksempel inspektøren i Chromes utviklerverktøy eller en som er integrert i en IDE. Tabellen nedenfor viser porten som eksponeres på vertsmaskinen for hver tjeneste: For å koble til en tjeneste med Chromes ekstern feilsøking går du til chrome://inspect/ og sørger for at Discover network targets er avkrysset. Klikk deretter Configure… og legg til en oppføring localhost:[service port] for hver tjeneste du vil koble en debugger til. Etter at du har lagt til en oppføring, vises tjenesten som et Remote Target som du kan inspisere og feilsøke.

Logging

I utviklingsmiljøet tilbyr Overleaf skriptet bin/logs, men du må installere en avhengighet:
Eller du kan kjøre direkte med:

Andre verktøy

Når du er ferdig med alt dette, kan du se neste avsnitt for å legge til noen feilsøkingsverktøy i Overleaf-utviklingen din.
Sist endret 5. oktober 2026