Skip to main content

Forudsætninger

Overleaf er et typisk open source-projekt med mikroservicearkitektur, hvor alle tjenester kører i Docker. For at opsætte et udviklingsmiljø til Overleaf skal du bruge en kraftig server; en konfiguration med mindst 8 kerner og 16 GB RAM anbefales, da du skal køre mere end 20 containere samtidigt.
Da servere med 8 eller flere CPU-kerner typisk er dyre, anbefales det kraftigt at bruge din lokale computer til udvikling.
Som udvikler går vi samtidig ud fra, at du allerede er fortrolig med installation af Docker. Vi anbefaler kraftigt at bruge en nyere og stabil Ubuntu LTS (f.eks. Ubuntu 24.04 i 2025–2026) og den nyeste Docker til udvikling, da det mindsker risikoen for uventede fejl. Kort sagt skal du bruge:
  • En kraftig server/desktop til udvikling
  • En nyere og stabil Ubuntu LTS (f.eks. Ubuntu 24.04)
  • Et Docker- og Git-miljø

Konfigurationsvejledning

Her bruger vi overleaf-cep som eksempel til at vise, hvordan man konfigurerer et udviklingsmiljø til Overleaf.
1

Hent kildekoden

Lad os først klone repositoriet:
bash
2

Synkroniser package-lock.json

Da Overleaf udvikles i et internt repository, er der stor sandsynlighed for, at filen package-lock.json kommer ud af synkronisering på grund af visse udviklingsforhold. Vi skal køre følgende kommando for at synkronisere den (hvis du har et lokalt nodejs-miljø).
bash
Hvis du ikke har nodejs installeret, skal du ikke bekymre dig – du kan bruge docker direkte til at køre den samme kommando. Kør den fra roden af Overleaf-repositoriet:
bash
3

Byg udviklingsimaget

Overleaf stiller en dedikeret mappe /develop til rådighed til udviklingsscripts. Byg blot tjenesterne:
bash
Hvis Docker løber tør for RAM, mens tjenesterne bygges parallelt, skal du oprette en .env-fil i denne mappe, der indeholder COMPOSE_PARALLEL_LIMIT=1.
4

Start alle mikrotjenester

Start derefter tjenesterne:
bash
Når tjenesterne kører, skal du åbne http://localhost/launchpad for at oprette den første administratorkonto.
Du skal køre bin/up, før du kører kommandoen bin/dev. Ellers kan du støde på en række rettighedsproblemer.
Som standard er administratorrettigheder ikke tilgængelige. Du skal tilføje dette til develop/dev.env. Derefter har du adgang til administrationspanelet.

TeX Live

For at kompilere en PDF skal der bygges et TeX Live-image, som håndterer kompileringen i Docker:
For at kompilere på en macOS-vært kan det være nødvendigt at tilsidesætte stien til Docker-socket ved at oprette en .env-fil i denne mappe, der indeholder DOCKER_SOCKET_PATH=/var/run/docker.sock.raw Du er også velkommen til at bruge ayaka-notes/texlive-full, men du kan bruge base-tagget, som er den minimale version af texlive.

Udvikling

For at undgå at køre bin/build && bin/up efter hver kodeændring kan du køre Overleaf Community Edition i udviklingstilstand, hvor tjenesterne automatisk opdateres ved kodeændringer. Det gør du med det medfølgende script bin/dev:
Dette starter alle tjenester med node --watch, som automatisk overvåger koden og genstarter tjenesterne efter behov. For at forbedre ydeevnen kan du starte kun en delmængde af tjenesterne i udviklingstilstand ved at give scriptet bin/dev en mellemrumsadskilt liste:
Hvis tjenesten web startes i udviklingstilstand, opdateres web-tjenesten kun, når backend-koden ændres. For også at opdatere frontend-koden automatisk skal du sørge for også at starte tjenesten webpack i udviklingstilstand.
Hvis der ikke angives nogen tjenester, starter alle tjenester i udviklingstilstand.

Fejlfinding

Når de kører i udviklingstilstand, eksponerer de fleste tjenester en debugging-port, som du kan tilknytte en debugger til, f.eks. inspectoren i Chromes Dev Tools eller en debugger integreret i en IDE. Følgende tabel viser den port, der eksponeres på værtsmaskinen for hver tjeneste: For at tilknytte dig en tjeneste med Chromes remote debugging skal du gå til chrome://inspect/ og sikre dig, at Discover network targets er markeret. Klik derefter på Configure… og tilføj en post localhost:[service port] for hver af de tjenester, du vil tilknytte en debugger til. Når du har tilføjet en post, vises tjenesten som et Remote Target, som du kan inspicere og debugge.

Logning

I udviklingsmiljøet stiller Overleaf scriptet bin/logs til rådighed, men du skal installere nogle afhængigheder:
Alternativt kan du køre direkte med:

Andre værktøjer

Når du har gjort alt dette, kan du se næste afsnit for at tilføje nogle debugging-værktøjer til din Overleaf-udvikling.
Sidst ændret 5. oktober 2026