Esivaatimukset
Overleaf on tyypillinen mikropalveluarkkitehtuuriin perustuva avoimen lähdekoodin projekti, jonka kaikki palvelut ajetaan Dockerissa.- Virallisen Community Editionin lähdekoodi on osoitteessa GitHub Overleaf Official.
- Overleaf-CEP:n lähdekoodi on saatavilla osoitteessa GitHub Yu-i-i/Overleaf.
- Overleaf Pro Edition on saatavilla osoitteessa GitHub Ayaka-notes/overleaf-pro.
Koska palvelimet, joissa on vähintään 8 suoritinydintä, ovat yleensä kalliita, suosittelemme vahvasti kehittämään omalla paikallisella tietokoneellasi.
- 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, Jos sinulla ei ole nodejs:ää asennettuna, ei hätää: voit ajaa saman komennon suoraan
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
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:Kun palvelut ovat käynnissä, avaa http://localhost/launchpad ja luo ensimmäinen ylläpitäjätili.
bash
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ä:.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 ajaabin/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ä:
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.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 skriptinbin/logs, mutta sitä varten on asennettava joitakin riippuvuuksia:

