> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Nastavení vývojového prostředí (lokálně)

> Nastavte si vývojové prostředí na svém lokálním serveru nebo desktopu.

## Předpoklady

Overleaf je typický open-source projekt s mikroservisní architekturou, ve kterém všechny služby běží v Dockeru.&#x20;

* Zdrojový kód oficiální Community Edition je na [GitHub Overleaf Official](https://github.com/overleaf/overleaf/tree).&#x20;
* Zdrojový kód Overleaf-CEP je dostupný na [GitHub Yu-i-i/Overleaf](https://github.com/yu-i-i/overleaf-cep).
* Overleaf Pro Edition je dostupná na [GitHub Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).

K nastavení vývojového prostředí Overleafu budete potřebovat výkonný server; doporučujeme konfiguraci alespoň s 8 jádry a 16 GB RAM, protože bude potřeba současně provozovat více než 20 kontejnerů.

<Info>
  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.
</Info>

Zároveň předpokládáme, že jako vývojář už znáte [instalaci Dockeru](https://docs.docker.com/engine/install/ubuntu/). Důrazně doporučujeme pro vývoj používat aktuální a stabilní Ubuntu LTS (např. Ubuntu 24.04 v letech 2025–2026) a nejnovější Docker, protože se tím snižuje pravděpodobnost neočekávaných chyb.

Shrnuto, budete potřebovat:

* [x] Výkonný server/desktop pro vývoj
* [x] Aktuální a stabilní Ubuntu LTS (např. Ubuntu 24.04)
* [x] 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.

<Steps>
  <Step title="Stažení zdrojového kódu">
    Nejprve si naklonujte repozitář:

    ```bash title="bash" theme={null}
    git clone https://github.com/ayaka-notes/overleaf-pro.git
    cd overleaf-pro
    ```
  </Step>

  <Step title="Synchronizace `package-lock.json`">
    Protože se Overleaf vyvíjí v [interním repozitáři](http://github.com/overleaf/internal), soubor `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 title="bash" theme={null}
    npm install --package-lock-only --ignore-scripts
    ```

    Pokud nodejs nainstalovaný nemáte, nevadí – stejný příkaz můžete spustit přímo pomocí `docker`. Spusťte jej <strong>z kořenového adresáře repozitáře Overleaf:</strong>

    ```bash title="bash" theme={null}
    docker run --rm \
      -v "$(pwd)":/workspace \
      -w /workspace \
      node:22.18.0 \
      npm install --package-lock-only --ignore-scripts
    ```
  </Step>

  <Step title="Sestavení vývojového image">
    Overleaf poskytuje vyhrazený adresář `/develop` pro vývojové skripty. Stačí sestavit služby:

    ```bash title="bash" theme={null}
    cd ./develop
    bin/build
    ```

    <Info>
      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`.
    </Info>
  </Step>

  <Step title="Spuštění všech mikroslužeb">
    Poté spusťte služby:

    ```bash title="bash" theme={null}
    bin/up
    ```

    Jakmile služby běží, otevřete [http://localhost/launchpad](http://localhost/launchpad) a vytvořte první administrátorský účet.

    <Danger>
      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.
    </Danger>
  </Step>
</Steps>

<Info>
  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.

  ```text theme={null}
  ADMIN_PRIVILEGE_AVAILABLE=true
  ```
</Info>

### TeX Live

Kompilace PDF vyžaduje sestavení image TeX Live, který zajišťuje kompilaci uvnitř Dockeru:

```text theme={null}
docker build texlive -t texlive-full
```

Pro kompilaci na hostiteli s macOS může být nutné přepsat cestu k socketu Dockeru vytvořením souboru `.env` v tomto adresáři s obsahem `DOCKER_SOCKET_PATH=/var/run/docker.sock.raw`

Můžete také použít [ayaka-notes/texlive-full](https://github.com/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ět `bin/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`:

```text theme={null}
bin/dev
```

Tím se všechny služby spustí pomocí `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:

```text theme={null}
bin/dev [service1] [service2] ... [serviceN]
```

<Info>
  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`.
</Info>

Pokud nejsou uvedeny žádné služby, spustí se ve vývojovém režimu všechny.

### 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:

| Služba | Port |
| - | - |
| `web` | 9229 |
| `clsi` | 9230 |
| `chat` | 9231 |
| `contacts` | 9232 |
| `docstore` | 9233 |
| `document-updater` | 9234 |
| `filestore` | 9235 |
| `notifications` | 9236 |
| `real-time` | 9237 |
| `references` | 9238 |
| `history-v1` | 9239 |
| `project-history` | 9240 |
| `linked-url-proxy` | 9241 |

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 skript `bin/logs`, je však potřeba nainstalovat některé závislosti:

```bash theme={null}
sudo npm install -g bunyan
# Or sudo apt install node-bunyan 
```

Případně můžete přímo spustit:

```text theme={null}
docker compose logs -f [service name]
```

### Další nástroje

Až budete mít vše hotové, můžete pokračovat [další částí](/cs/dev/environment/setup-develop-tools) a přidat do svého vývoje Overleafu některé ladicí nástroje.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.