Skip to main content

Esivaatimukset

Overleaf on tyypillinen mikropalveluarkkitehtuuriin perustuva avoimen lähdekoodin projekti, jonka kaikki palvelut ajetaan Dockerissa. Overleaf-kehitysympäristön määrittämiseen tarvitset tehokkaan palvelimen; suosittelemme vähintään 8 ydintä ja 16 Gt RAM-muistia, koska sinun on ajettava yli 20 konttia samanaikaisesti.
Koska palvelimet, joissa on vähintään 8 suoritinydintä, ovat yleensä kalliita, suosittelemme vahvasti kehittämään omalla paikallisella tietokoneellasi.
Oletamme lisäksi, että kehittäjänä tunnet jo Dockerin asennuksen. Suosittelemme vahvasti käyttämään kehitykseen tuoretta ja vakaata Ubuntu LTS -versiota (esim. Ubuntu 24.04 vuosina 2025–2026) ja uusinta Dockeria, sillä tämä vähentää odottamattomien virheiden todennäköisyyttä. Yhteenvetona tarvitset:
  • Tehokkaan palvelimen tai työaseman kehitykseen
  • Tuoreen ja vakaan Ubuntu LTS -version (esim. Ubuntu 24.04)
  • Docker- ja Git-ympäristön

Määritysopas

Käytämme tässä esimerkkinä overleaf-cep:tä havainnollistaaksemme, miten Overleaf-kehitysympäristö määritetään.
1

Hae lähdekoodi

Kloonataan ensin repositorio:
bash
2

Synkronoi package-lock.json

Koska Overleafia kehitetään sisäisessä repositoriossa, package-lock.json-tiedosto on hyvin todennäköisesti epäsynkronissa joidenkin kehitykseen liittyvien seikkojen vuoksi. Se on synkronoitava ajamalla seuraava komento (jos sinulla on paikallinen nodejs-ympäristö):
bash
Jos sinulla ei ole nodejs:ää asennettuna, ei hätää: voit ajaa saman komennon suoraan docker-komennolla. Aja Overleaf-repositorion juuresta:
bash
3

Rakenna kehitysimage

Overleaf tarjoaa kehitysskripteille erillisen hakemiston /develop. Rakenna palvelut:
bash
Jos Dockerilta loppuu RAM-muisti palveluiden rinnakkaisen rakentamisen aikana, luo tähän hakemistoon .env-tiedosto, joka sisältää rivin COMPOSE_PARALLEL_LIMIT=1.
4

Käynnistä kaikki mikropalvelut

Käynnistä sitten palvelut:
bash
Kun palvelut ovat käynnissä, avaa http://localhost/launchpad ja luo ensimmäinen ylläpitäjätili.
Sinun on ajettava bin/up ennen bin/dev-komentoa. Muuten saatat kohdata useita käyttöoikeusongelmia.
Ylläpitäjän oikeudet eivät ole oletuksena käytettävissä. Lisää tämä tiedostoon develop/dev.env. Sen jälkeen pääset ylläpitopaneeliin.

TeX Live

PDF:n kääntäminen edellyttää TeX Live -imagen rakentamista, jotta kääntäminen voidaan tehdä Dockerin sisällä:
Jos käännät macOS-isännällä, Docker-socketin polku on ehkä ohitettava luomalla tähän hakemistoon .env-tiedosto, joka sisältää rivin DOCKER_SOCKET_PATH=/var/run/docker.sock.raw Voit myös käyttää imagea ayaka-notes/texlive-full, mutta voit käyttää base-tagia, joka on texliven minimiversio.

Kehitys

Jotta sinun ei tarvitse ajaa bin/build && bin/up jokaisen koodimuutoksen jälkeen, voit ajaa Overleaf Community Editionia kehitystilassa, jolloin palvelut päivittyvät automaattisesti koodimuutosten myötä. Käytä tähän mukana tulevaa bin/dev-skriptiä:
Tämä käynnistää kaikki palvelut komennolla node --watch, joka valvoo koodia automaattisesti ja käynnistää palvelut tarvittaessa uudelleen. Suorituskyvyn parantamiseksi voit käynnistää kehitystilassa vain osan palveluista antamalla bin/dev-skriptille välilyönnein erotellun luettelon:
Kun web-palvelu käynnistetään kehitystilassa, vain web-palvelu päivittyy taustajärjestelmän koodin muuttuessa. Jotta myös käyttöliittymäkoodi päivittyisi automaattisesti, käynnistä myös webpack-palvelu kehitystilassa.
Jos palveluita ei nimetä, kaikki palvelut käynnistyvät kehitystilassa.

Virheenjäljitys

Kehitystilassa ajettaessa useimmat palvelut avaavat virheenjäljitysportin, johon voit liittää virheenjäljittimen, kuten Chromen Dev Toolsin inspectorin tai IDE:hen integroidun virheenjäljittimen. Seuraava taulukko näyttää kunkin palvelun isäntäkoneella avaaman portin: Liittyäksesi palveluun Chromen etävirheenjäljityksellä siirry osoitteeseen chrome://inspect/ ja varmista, että Discover network targets on valittuna. Napsauta seuraavaksi Configure… ja lisää merkintä localhost:[service port] jokaiselle palvelulle, johon haluat liittää virheenjäljittimen. Merkinnän lisäämisen jälkeen palvelu näkyy Remote Target -kohteena, jota voit tarkastella ja jäljittää.

Lokit

Kehitysympäristössä Overleaf tarjoaa skriptin bin/logs, mutta sitä varten on asennettava joitakin riippuvuuksia:
Vaihtoehtoisesti voit ajaa suoraan:

Muut työkalut

Kun olet tehnyt kaiken tämän, voit katsoa seuraavasta osiosta, miten lisäät Overleaf-kehitykseesi virheenjäljitystyökaluja.
Viimeksi muokattu 5. lokakuuta 2026