Předpoklady
Overleaf je typický open-source projekt s mikroservisní architekturou, ve kterém všechny služby běží v Dockeru.- Zdrojový kód oficiální Community Edition je na GitHub Overleaf Official.
- Zdrojový kód Overleaf-CEP je dostupný na GitHub Yu-i-i/Overleaf.
- Overleaf Pro Edition je dostupná na GitHub Ayaka-notes/overleaf-pro.
Protože servery s 8 a více jádry CPU bývají obvykle drahé, důrazně doporučujeme vyvíjet na vlastním lokálním počítači.
- Výkonný server/desktop pro vývoj
- Aktuální a stabilní Ubuntu LTS (např. Ubuntu 24.04)
- Prostředí Docker a Git
Návod ke konfiguraci
Zde si na příkladu overleaf-cep ukážeme, jak nakonfigurovat vývojové prostředí Overleafu.1
Stažení zdrojového kódu
Nejprve si naklonujte repozitář:
bash
2
Synchronizace package-lock.json
Protože se Overleaf vyvíjí v interním repozitáři, soubor Pokud nodejs nainstalovaný nemáte, nevadí – stejný příkaz můžete spustit přímo pomocí
package-lock.json se kvůli některým vývojovým problémům velmi pravděpodobně dostane mimo synchronizaci. K jeho synchronizaci je třeba spustit následující příkaz (pokud máte lokální prostředí nodejs).bash
docker. Spusťte jej z kořenového adresáře repozitáře Overleaf:bash
3
Sestavení vývojového image
Overleaf poskytuje vyhrazený adresář
/develop pro vývojové skripty. Stačí sestavit služby:bash
Pokud Dockeru při paralelním sestavování služeb dochází RAM, vytvořte v tomto adresáři soubor
.env obsahující COMPOSE_PARALLEL_LIMIT=1.4
Spuštění všech mikroslužeb
Poté spusťte služby:Jakmile služby běží, otevřete http://localhost/launchpad a vytvořte první administrátorský účet.
bash
Příkaz
bin/up musíte spustit před příkazem bin/dev. Jinak můžete narazit na řadu problémů s oprávněními.Ve výchozím nastavení nejsou administrátorská oprávnění k dispozici. Je třeba přidat následující řádek do
develop/dev.env. Poté budete mít přístup k administrátorskému panelu.TeX Live
Kompilace PDF vyžaduje sestavení image TeX Live, který zajišťuje kompilaci uvnitř Dockeru:.env v tomto adresáři s obsahem DOCKER_SOCKET_PATH=/var/run/docker.sock.raw
Můžete také použít ayaka-notes/texlive-full, případně tag base, což je minimální verze texlive.
Vývoj
Abyste nemuseli po každé změně kódu spouštětbin/build && bin/up, můžete Overleaf Community Edition spustit ve vývojovém režimu, ve kterém se služby při změnách kódu automaticky aktualizují.
K tomu použijte přiložený skript bin/dev:
node --watch, který automaticky sleduje kód a podle potřeby služby restartuje.
Pro zlepšení výkonu můžete ve vývojovém režimu spustit jen část služeb tak, že skriptu bin/dev předáte jejich seznam oddělený mezerami:
Spuštění služby
web ve vývojovém režimu aktualizuje službu web pouze při změnách backendového kódu. Aby se automaticky aktualizoval i frontendový kód, nezapomeňte ve vývojovém režimu spustit také službu webpack.Ladění
Při spuštění ve vývojovém režimu zpřístupňuje většina služeb ladicí port, ke kterému můžete připojit debugger, například inspektor v Chrome Dev Tools nebo debugger integrovaný v IDE. Následující tabulka ukazuje port zpřístupněný na hostitelském počítači pro každou službu:
Chcete-li se ke službě připojit pomocí vzdáleného ladění v Chromu, přejděte na chrome://inspect/ a ujistěte se, že je zaškrtnuto Discover network targets. Poté klikněte na Configure… a přidejte položku
localhost:[service port] pro každou ze služeb, ke které chcete připojit debugger.
Po přidání položky se služba zobrazí jako Remote Target, který můžete zkoumat a ladit.
Logování
Ve vývojovém prostředí poskytuje Overleaf skriptbin/logs, je však potřeba nainstalovat některé závislosti:

