> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/de/konfiguration/overleaf-toolkit/git-integration.md).

# Git-Integration

Die Git-Integration ist derzeit nur bei [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf) derzeit verfügbar.

{% hint style="info" %}
Diese Funktion wurde ursprünglich entwickelt von [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% stepper %}
{% step %}

### Aktiviere die git-bridge (nur für Toolkit-Nutzer)

Wenn du das Toolkit verwendest, aktiviere die `git-bridge` indem du Folgendes in deiner `config/overleaf.rc`:

{% code title="config/overleaf.rc" %}

```
GIT_BRIDGE_ENABLED=true
```

{% endcode %}
{% endstep %}

{% step %}

### Füge den git-bridge-Container hinzu (nur für Docker-Compose-Nutzer)

Für Benutzer, die ein benutzerdefiniertes `docker-compose.yml`, füge die folgende Containerkonfiguration deiner Compose-Datei hinzu:

{% code title="docker-compose.yml (git-bridge-Dienst)" overflow="wrap" %}

```yaml
git-bridge:
    restart: always
    image: quay.io/sharelatex/git-bridge:4.0.0 # Tag sollte mit dem `sharelatex`-Container-Tag übereinstimmen
    volumes:
        - ~/git_bridge_data:/data/git-bridge
    container_name: git-bridge
    expose:
        - "8000"
    environment:
        GIT_BRIDGE_API_BASE_URL: "http://sharelatex:3000/api/v0/" 
        # "http://sharelatex/api/v0/" für Version 4.1.6 und älter
        GIT_BRIDGE_OAUTH2_SERVER: "http://sharelatex"
        GIT_BRIDGE_POSTBACK_BASE_URL: "http://git-bridge:8000"
        GIT_BRIDGE_ROOT_DIR: "/data/git-bridge"
    user: root
    command: ["/server-pro-start.sh"]
```

{% endcode %}
{% endstep %}

{% step %}

### Aktualisiere die Konfiguration des sharelatex-Containers

Du musst außerdem den `git-bridge` Container im `sharelatex` Container verknüpfen und die folgenden Umgebungsvariablen definieren; bitte achte auf `V1_HISTORY_URL`:

<pre class="language-yaml" data-title="docker-compose.yml (sharelatex-Dienst)"><code class="lang-yaml">sharelatex:
    links:
        - git-bridge
    environment:
         GIT_BRIDGE_ENABLED: true
         GIT_BRIDGE_HOST: "git-bridge"
         GIT_BRIDGE_PORT: "8000"
<strong>         # Wir verwenden jetzt v1; falls du zuvor V1_HISTORY_URL gesetzt hast, aktualisiere es jetzt bitte
</strong><strong>         V1_HISTORY_URL: "http://sharelatex:3054"
</strong></code></pre>

{% endstep %}

{% step %}

### Authentifizierung

Bei der Authentifizierung eines Git-Clients benötigen Nutzer einen Personal Access Token. Nutzer können Personal Access Tokens über die Anwendungsoberfläche verwalten (siehe Dokumentation):

<figure><img src="/files/90cff952af7b3cc9280c2bf22ba38a2dbf4ba2dc" alt=""><figcaption><p>Git-Integrations-Personal-Access-Token</p></figcaption></figure>
{% endstep %}

{% step %}

### Überwachung und Ressourcenüberlegungen

Wir empfehlen, die Ressourcen deines Hosts nach dem Aktivieren der `git-bridge`. Der Anstieg der Last hängt ab von:

* der Anzahl der Nutzer, die auf die Funktion zugreifen
* den Arten von Projekten, die auf deiner Instanz gehostet werden (größere Projekte sind im Allgemeinen ressourcenintensiver)
  {% endstep %}
  {% endstepper %}

### Projekte nach S3 auslagern

Die Git-Integration speichert für jedes Projekt, das von einem Nutzer geklont wird, ein vollständiges Git-Repository auf der Festplatte. Wenn du nur begrenzten Speicherplatz hast, kannst du einen Swap-Job aktivieren, der weniger genutzte Repositories nach AWS S3 verschiebt. Wenn ein ausgelagertes Repository wieder benötigt wird, wird es zurück auf die Festplatte verschoben. Die folgenden Umgebungsvariablen steuern den Swap-Job:

| Name                                  | Beschreibung                                                                                                                                                                  |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GIT_BRIDGE_SWAPSTORE_TYPE`           | Setze dies auf "s3", um den Swap-Job zu aktivieren.                                                                                                                           |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Dein AWS-Zugriffsschlüssel                                                                                                                                                    |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET`     | Dein AWS-Geheimnis                                                                                                                                                            |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Dieser Bucket enthält die gezippten Git-Repositories                                                                                                                          |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION`     | Die Region des Buckets                                                                                                                                                        |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS`     | <p>Wie viele Projekte mindestens auf der Festplatte behalten werden sollen.<br><br><strong>- Standard:</strong> 50</p>                                                        |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB`          | <p>Untere Schwelle für das Auslagern. Der Swap-Job verschiebt Projekte, bis die Festplattennutzung unter diesem Wert liegt.<br><br><strong>- Standard:</strong> 128 GB</p>    |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Obere Schwelle für das Auslagern. Der Swap-Job beginnt mit dem Auslagern, wenn die Festplattennutzung diesen Wert erreicht.<br><br><strong>- Standard:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS`  | <p>Die Zeitspanne zwischen der Überprüfung der Festplattennutzung und der Ausführung des Swap-Jobs.<br><br><strong>- Standard:</strong> 3600000 ms = 1 Stunde</p>             |

### Fragen und Antworten

<details>

<summary>Wenn ich mein Projekt mit jemand anderem teile, wie funktioniert das Berechtigungsmodell von Git Bridge?</summary>

Benutzer mit Nur-Lese-Zugriff können dieses Projekt nur klonen; Benutzer mit Lese- und Schreibzugriff können Projekte klonen und pushen. Hinweis: Benutzer müssen angemeldet sein, um diesem Projekt beizutreten.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/de/konfiguration/overleaf-toolkit/git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
