63 63
64| Host | Port | Wenn erforderlich |64| Host | Port | Wenn erforderlich |
65| :- | :- | :- |65| :- | :- | :- |
66| `api.github.com` | 443 | Mit oder ohne `--use-anthropic-git-proxy`, wenn das Runner-Image die [GitHub CLI](#github-api-access-with-the-github-cli) enthält und Sie Sitzungen github.com-Anmeldedaten bereitstellen, etwa ein `GH_TOKEN` |
66| `downloads.claude.ai` | 443 | Zur Installationszeit, wenn Sie Claude Code auf dem Host mit dem nativen Installer installieren oder aktualisieren; das `install.sh`-Skript selbst wird von `claude.ai` bereitgestellt. Zur Sitzungs-Laufzeit nur, wenn Sitzungen Plugins vom offiziellen Anthropic-Marketplace installieren. |67| `downloads.claude.ai` | 443 | Zur Installationszeit, wenn Sie Claude Code auf dem Host mit dem nativen Installer installieren oder aktualisieren; das `install.sh`-Skript selbst wird von `claude.ai` bereitgestellt. Zur Sitzungs-Laufzeit nur, wenn Sitzungen Plugins vom offiziellen Anthropic-Marketplace installieren. |
67| `storage.googleapis.com` | 443 | Zur Sitzungs-Laufzeit für die Plugin-Installationszähler und Metadaten, die in `/plugin` angezeigt werden. |68| `storage.googleapis.com` | 443 | Zur Sitzungs-Laufzeit für die Plugin-Installationszähler und Metadaten, die in `/plugin` angezeigt werden. |
68| `code.claude.com` und `claude.com` | 443 | Dokumentations-Lookups durch den integrierten Claude-Code-Guide-Agent und vorab genehmigte WebFetch-Anfragen während Sitzungen. Das Blockieren dieser Hosts betrifft nur Dokumentations-Lookups. |69| `code.claude.com` und `claude.com` | 443 | Dokumentations-Lookups durch den integrierten Claude-Code-Guide-Agent und vorab genehmigte WebFetch-Anfragen während Sitzungen. Das Blockieren dieser Hosts betrifft nur Dokumentations-Lookups. |
167 168
168* Der Runner setzt `GIT_TERMINAL_PROMPT=0`, daher fragt Git nicht nach Benutzername oder Passwort.169* Der Runner setzt `GIT_TERMINAL_PROMPT=0`, daher fragt Git nicht nach Benutzername oder Passwort.
169* Der Runner führt SSH mit `BatchMode=yes` aus, angehängt an Ihren `GIT_SSH_COMMAND`, wenn Sie einen setzen, daher fragt SSH nicht nach einer Passphrase oder Host-Bestätigung.170* Der Runner führt SSH mit `BatchMode=yes` aus, angehängt an Ihren `GIT_SSH_COMMAND`, wenn Sie einen setzen, daher fragt SSH nicht nach einer Passphrase oder Host-Bestätigung.
170* Der Runner setzt `GCM_INTERACTIVE=never`, daher öffnet Git Credential Manager keinen Anmeldedialog.171* Der Runner setzt `GCM_INTERACTIVE=never`, daher öffnet Git Credential Manager keinen Anmeldedialog. Vor v2.1.229 konnte die Repository-Vorbereitung an einer Eingabeaufforderung des Git Credential Manager hängen bleiben.
171* Der Runner löscht `core.askPass`, daher setzen Sie es, wenn Sie einen Askpass-Helper verwenden, stattdessen durch die `GIT_ASKPASS`-Umgebungsvariable.172* Der Runner löscht `core.askPass`, daher setzen Sie es, wenn Sie einen Askpass-Helper verwenden, stattdessen durch die `GIT_ASKPASS`-Umgebungsvariable.
172 173
173Wenn Ihr Git-Host die Anmeldedaten ablehnt, oder Sie haben keine konfiguriert, versucht der Runner ein paar Mal erneut und schlägt dann fehl bei der Repository-Vorbereitung, wenn das Repository das ist, in das die Sitzung Ergebnisse pusht. Für ein Repository, das die Sitzung nur liest, behandelt [Troubleshooting](#troubleshooting) den Fall, wenn der Runner es stattdessen überspringt. Der Runner übergibt diese Einstellungen nicht in die Umgebung der Sitzung.174Wenn Ihr Git-Host die Anmeldedaten ablehnt, oder Sie haben keine konfiguriert, versucht der Runner ein paar Mal erneut und schlägt dann fehl bei der Repository-Vorbereitung, wenn das Repository das ist, in das die Sitzung Ergebnisse pusht. Für ein Repository, das die Sitzung nur liest, behandelt [Troubleshooting](#troubleshooting) den Fall, wenn der Runner es stattdessen überspringt. Der Runner übergibt diese Einstellungen nicht in die Umgebung der Sitzung.
287* **`jq`**: Installieren Sie `jq` im Image, wenn `--jq` funktionieren soll288* **`jq`**: Installieren Sie `jq` im Image, wenn `--jq` funktionieren soll
288* **[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/de/env-vars)**: Wenn die Sitzungsumgebung diese Variable setzt, stellt Claude Code das integrierte `gh` nicht bereit, und die Sitzung hat kein `gh`289* **[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/de/env-vars)**: Wenn die Sitzungsumgebung diese Variable setzt, stellt Claude Code das integrierte `gh` nicht bereit, und die Sitzung hat kein `gh`
289 290
290Wenn das Image die GitHub CLI enthält, verwenden Sitzungen diese.291#### GitHub-API-Zugriff mit der GitHub CLI
292
293Wenn Ihr Runner-Image die GitHub CLI für die Verwendung durch Sitzungen enthält, lassen Sie Ihr [Wrapper-Skript](https://code.claude.com/docs/de/self-hosted-environments-configuration.md#provision-credentials-scoped-to-the-session-creator) pro Sitzung ein kurzlebiges, minimal gefasstes `GH_TOKEN` für den Ersteller der Sitzung erstellen. Wenn `gh` im `PATH` liegt, mit dem Claude Code startet, hat die Sitzung dieses `gh` und kein [integriertes `gh`](#github-api-access-without-the-github-cli). Mit dem Token erreicht dieses `gh` GitHub mit dem Zugriff, den das Token gewährt, und außerhalb von Anthropic-verwaltetem Git; erlauben Sie daher [`api.github.com`](#network-requirements).
294
295Lassen Sie bei Anthropic-verwaltetem Git die GitHub CLI im Image weg, um stattdessen das integrierte `gh` zu verwenden.
291 296
292#### Vertrauen Sie einer privaten Zertifizierungsstelle mit Anthropic-verwaltetem Git297#### Vertrauen Sie einer privaten Zertifizierungsstelle mit Anthropic-verwaltetem Git
293 298
343 348
344Host-Umschreibung läuft zuerst, daher listen Sie den internen Hostnamen in `--git-ssh-rewrite` auf, wenn Sie beide benötigen. Für vollständige Kontrolle über Checkout verwenden Sie einen [`checkout`-Lebenszyklus-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout).349Host-Umschreibung läuft zuerst, daher listen Sie den internen Hostnamen in `--git-ssh-rewrite` auf, wenn Sie beide benötigen. Für vollständige Kontrolle über Checkout verwenden Sie einen [`checkout`-Lebenszyklus-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout).
345 350
351### Eine Sitzung für ein Repository außerhalb von GitHub starten
352
353Um eine Sitzung für ein Repository von einem anderen Git-Host als GitHub auszuführen, starten Sie die Sitzung in Ihrem Terminal, in einem Checkout dieses Repositorys. Prüfen Sie zuerst die Git-Anmeldedaten, das Netzwerk und den Git-Proxy des Runners, die Adresse des Repositorys und Ihren Branch:
354
355* **Git-Anmeldedaten und Netzwerk**: [Stellen Sie Anmeldedaten bereit](#ship-git-config-in-your-image), die für `https://<host>/<owner>/<name>`, die Adresse, die der Runner klont, [ohne Eingabeaufforderung funktionieren](#git-must-work-without-a-prompt), und erlauben Sie dem Runner, Ihren Git-Host zu erreichen, wie unter [Netzwerkanforderungen](#network-requirements) aufgeführt. Für einen Git-Host, der nur SSH akzeptiert, siehe [`--git-ssh-rewrite`](#rewrite-git-urls-for-private-networks).
356* **Git-Proxy**: Wenn die Runner der Umgebung den Anthropic-Git-Proxy verwenden, [schalten Sie ihn aus](#turn-the-anthropic-git-proxy-off).
357* **Repository-Adresse**: Prüfen Sie das `origin`-Remote des Checkouts. Sein Host muss ein Domainname wie `git.example.com` sein, und sein Pfad muss die Form `<owner>/<name>` haben. Ein verschachtelter Pfad wie `group/subgroup/name` wird nicht akzeptiert.
358* **Branch**: Pushen Sie den Branch, auf dem Sie sich befinden, auf Ihren Git-Host, da der Runner diesen Branch klont.
359
360Führen Sie im Checkout, bei claude.ai angemeldet wie unter [Aus CI authentifizieren](https://code.claude.com/docs/de/self-hosted-environments-testing.md#authenticate-from-ci) beschrieben, `claude -p` mit [`--environment`](https://code.claude.com/docs/de/self-hosted-environments-testing#run-the-test-loop) und der `ccpool_...`-ID Ihrer Umgebung aus:
361
362```bash theme={null}
363claude -p "Fix the login bug" --environment ccpool_abc123 --output-format json
364```
365
366Wenn die Sitzung erstellt wird, gibt der Befehl eine JSON-Zeile aus, die mit `{"ok":true` beginnt. Wenn das `origin`-Remote nicht passt, schlägt der Befehl mit `requires a git source, but no GitHub remote was detected` fehl.
367
368Überprüfen und mergen Sie die Branches, die Sitzungen [pushen](https://code.claude.com/docs/de/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work), auf Ihrem Git-Host.
369
346## Erstellen Sie das Runner-Image370## Erstellen Sie das Runner-Image
347 371
348Anthropic veröffentlicht kein vorgefertigtes Runner-Image. Erstellen Sie Ihr eigenes um die `claude`-Binärdatei, schichten Sie ein, was auch immer Ihre Repositorys benötigen: Sprach-Laufzeiten, Compiler, Paket-Manager und [MCP](https://code.claude.com/docs/de/mcp.md)-Sidecars.372Anthropic veröffentlicht kein vorgefertigtes Runner-Image. Erstellen Sie Ihr eigenes um die `claude`-Binärdatei, schichten Sie ein, was auch immer Ihre Repositorys benötigen: Sprach-Laufzeiten, Compiler, Paket-Manager und [MCP](https://code.claude.com/docs/de/mcp.md)-Sidecars.
617 641
618### Laufende Turns vor einem Neustart abschließen lassen642### Laufende Turns vor einem Neustart abschließen lassen
619 643
620Damit laufende Turns vor einem Rolling Restart abgeschlossen werden können, setzen Sie `--drain-wait-sec` und erhöhen Sie Ihr Stopp-Timeout auf mindestens diese Wartezeit plus 80 Sekunden. Mit der Standard-Wartezeit von `0` unterbricht ein Neustart jeden noch laufenden Turn, und die Sitzung wird auf einem anderen Runner ohne ihre [nicht gepushte Arbeit](#additional-limitations) fortgesetzt.644Damit laufende Turns vor einem Rolling Restart abgeschlossen werden können, setzen Sie `--drain-wait-sec` und erhöhen Sie Ihr Stopp-Timeout auf mindestens diese Wartezeit plus 80 Sekunden. Mit der Standard-Wartezeit von `0` unterbricht ein Neustart jeden noch laufenden Turn, und die Sitzung wird auf einem anderen Runner ohne ihre [nicht gepushte Arbeit](#resumed-sessions-lose-unpushed-work) fortgesetzt.
621 645
622* **`--drain-wait-sec`**: etwa so lange wie die Turns und Hintergrundaufgaben, die Sie abschließen lassen möchten. Es handelt sich um einen Höchstwert: Die Wartezeit endet früher, wenn sie zuerst abgeschlossen sind.646* **`--drain-wait-sec`**: etwa so lange wie die Turns und Hintergrundaufgaben, die Sie abschließen lassen möchten. Es handelt sich um einen Höchstwert: Die Wartezeit endet früher, wenn sie zuerst abgeschlossen sind.
623* **Ihr Stopp-Timeout**: `terminationGracePeriodSeconds` in Kubernetes, `stop_grace_period` in Docker Compose. Ersetzen Sie beispielsweise bei `--drain-wait-sec 120` die `90` im Rezept für [Kubernetes](#kubernetes) oder [Docker Compose](#docker-compose) durch `200`.647* **Ihr Stopp-Timeout**: `terminationGracePeriodSeconds` in Kubernetes, `stop_grace_period` in Docker Compose. Ersetzen Sie beispielsweise bei `--drain-wait-sec 120` die `90` im Rezept für [Kubernetes](#kubernetes) oder [Docker Compose](#docker-compose) durch `200`.
735 759
736Um inaktive Sitzungen freizugeben, starten Sie jeden Runner mit [`--release-idle-session-min`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags) und dieser Dauer in Minuten, etwa `--release-idle-session-min 30`. Der Runner gibt dann jede Sitzung frei, die so lange inaktiv bleibt, unabhängig davon, ob eine geplante Aufgabe oder eine Person sie gestartet hat, es sei denn, Sie [halten sie für Prozesse, die sie laufen gelassen hat](#keep-an-idle-session-while-its-processes-run).760Um inaktive Sitzungen freizugeben, starten Sie jeden Runner mit [`--release-idle-session-min`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags) und dieser Dauer in Minuten, etwa `--release-idle-session-min 30`. Der Runner gibt dann jede Sitzung frei, die so lange inaktiv bleibt, unabhängig davon, ob eine geplante Aufgabe oder eine Person sie gestartet hat, es sei denn, Sie [halten sie für Prozesse, die sie laufen gelassen hat](#keep-an-idle-session-while-its-processes-run).
737 761
738* **Nicht gepushte Arbeit**: Eine freigegebene Sitzung wird bei ihrer nächsten Nachricht fortgesetzt, jedoch ohne die Arbeit, die sie nicht gepusht hatte. Wie Sie ihre Commits behalten, erfahren Sie unter [Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit](#additional-limitations).762* **Nicht gepushte Arbeit**: Eine freigegebene Sitzung wird bei ihrer nächsten Nachricht fortgesetzt, jedoch ohne die Arbeit, die sie nicht gepusht hatte. Wie Sie ihre Commits behalten, erfahren Sie unter [Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit](#resumed-sessions-lose-unpushed-work).
739* **Runner wird beendet**: Ein Runner, der seine letzte Sitzung freigibt, leitet ein [normales Beenden](#when-the-runner-exits) ein. Lassen Sie ihn von Ihrem Supervisor auf einem frischen Dateisystem neu starten, wie unter [Härten Sie Ihr Deployment](#harden-your-deployment) beschrieben.763* **Runner wird beendet**: Ein Runner, der seine letzte Sitzung freigibt, leitet ein [normales Beenden](#when-the-runner-exits) ein. Lassen Sie ihn von Ihrem Supervisor auf einem frischen Dateisystem neu starten, wie unter [Härten Sie Ihr Deployment](#harden-your-deployment) beschrieben.
740* **Sitzungen, die nie inaktiv werden**: Setzen Sie zusätzlich [`--kill-session-after-min`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags), da [manche Sitzungen nicht als inaktiv gelten](#some-sessions-don’t-count-as-idle)764* **Sitzungen, die nie inaktiv werden**: Setzen Sie zusätzlich [`--kill-session-after-min`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags), da [manche Sitzungen nicht als inaktiv gelten](#some-sessions-don’t-count-as-idle)
741 765
811* Wenn ein Zug noch läuft, wartet der Runner darauf, dass der Zug fertig wird, oder dass die Sitzung das nächste Mal auf ihren Benutzer wartet, und gibt sie dann frei.835* Wenn ein Zug noch läuft, wartet der Runner darauf, dass der Zug fertig wird, oder dass die Sitzung das nächste Mal auf ihren Benutzer wartet, und gibt sie dann frei.
812* Wenn die Sitzung noch auf dem Runner ist, wenn das Kulanzfenster endet, beendet der Runner sie, und jede laufende Zug-Arbeit geht verloren. Ein Zug, der auf eine Genehmigung wartet, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, ist eine Möglichkeit, wie eine Sitzung das Fenster überlebt.836* Wenn die Sitzung noch auf dem Runner ist, wenn das Kulanzfenster endet, beendet der Runner sie, und jede laufende Zug-Arbeit geht verloren. Ein Zug, der auf eine Genehmigung wartet, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, ist eine Möglichkeit, wie eine Sitzung das Fenster überlebt.
813 837
814Eine freigegebene Sitzung wird von einem frischen Klon fortgesetzt, daher ist Arbeit, die sie nicht gepusht hat, sowieso weg; siehe [Fortgesetzte Sitzungen verlieren unpushed Arbeit](#additional-limitations). Vor v2.1.260 beendete der Runner jede Sitzung beim Limit, nachdem er höchstens das Kulanzfenster wartete, damit ein laufender Zug fertig wird.838Eine freigegebene Sitzung wird von einem frischen Klon fortgesetzt, daher ist Arbeit, die sie nicht gepusht hat, in jedem Fall weg; siehe [Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit](#resumed-sessions-lose-unpushed-work). Vor v2.1.260 beendete der Runner jede Sitzung beim Limit, nachdem er höchstens das Kulanzfenster gewartet hatte, damit ein laufender Turn fertig wird.
815 839
816Setzen Sie das Flag über Ihre längste erwartete Sitzung, wie `--kill-session-after-min 480` für 8 Stunden. Um Slots aus Gesprächen freizugeben, die untätig werden, verwenden Sie stattdessen `--release-idle-session-min`.840Setzen Sie das Flag über Ihre längste erwartete Sitzung, wie `--kill-session-after-min 480` für 8 Stunden. Um Slots aus Gesprächen freizugeben, die untätig werden, verwenden Sie stattdessen `--release-idle-session-min`.
817 841
842### Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit
843
844Eine Sitzung, die auf einem frischen Runner fortgesetzt wird, verliert die Arbeit, die sie nicht gepusht hatte, da dieser Runner das Repository erneut von seinem Start-Branch klont.
845
846Um committete Arbeit zu behalten, setzen Sie [`--push-outcome-on-release`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags) auf jedem Runner in der Umgebung. Ein Runner mit dem Flag führt vor der Freigabe einen Best-Effort-Push der Ergebnis-Branches der Sitzung durch, und die fortgesetzte Sitzung startet von diesen Commits. Ein Runner ohne das Flag setzt die Sitzung von ihrem Start-Branch aus fort. Der Push verwendet die eigenen Git-Anmeldedaten des Runner-Hosts, auch auf einem Runner, der [von Anthropic verwaltetes Git](#use-the-anthropic-git-proxy) verwendet.
847
848> [!WARNING]
849>
850> Bevor Sie das Flag setzen, beschränken Sie, wer zu `claude/*`-Refs auf dem Quell-Remote pushen kann. Beim Fortsetzen ruft der Runner den zuvor gepushten Branch ab, ohne zu überprüfen, wer ihn gepusht hat.
851
852Sichern Sie auch bei gesetztem Flag diese Arbeit auf andere Weise:
853
854* **Nicht committete Änderungen**: Diese gehen weiterhin verloren. Siehe [Sitzungen zum Pushen ihrer Arbeit auffordern](https://code.claude.com/docs/de/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work).
855* **Repositorys, die über einen [`checkout`-Lifecycle-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) ausgecheckt werden**: Diese werden nicht gepusht. Sichern Sie sie über den [`post-session`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#post-session).
856* **Commits in einer Sitzung, die jemand archiviert oder löscht oder deren Runner jemand über das Menü der Sitzung freigibt**: Verlassen Sie sich nicht auf den Push durch das Flag. Um sie zu sichern, pushen Sie `HEAD` aus einem [`post-session`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#post-session) in einen Rettungs-Branch. Das dortige Beispiel pusht nur nach einem Snapshot-Commit; sorgen Sie also dafür, dass Ihr Hook auch dann pusht, wenn nichts uncommittet ist.
857
818### Zusätzliche Einschränkungen858### Zusätzliche Einschränkungen
819 859
820* **Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit**: Ein frischer Runner klont das Repository erneut von seinem Start-Branch, daher ist Arbeit, die die Sitzung nicht gepusht hat, verloren.
821 * **Um committete Arbeit zu behalten**: Setzen Sie [`--push-outcome-on-release`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags) auf jedem Runner in der Umgebung, da ein Runner ohne das Flag die Sitzung von ihrem Start-Branch aus fortsetzt. Ein Runner mit dem Flag führt vor der Freigabe einen Best-Effort-Push der Ergebnis-Branches der Sitzung durch, und die fortgesetzte Sitzung startet von diesen Commits. Der Push verwendet die eigenen Git-Anmeldedaten des Runner-Hosts, auch auf einem Runner, der [von Anthropic verwaltetes Git](#use-the-anthropic-git-proxy) verwendet.
822 * **Mit einem `checkout`-Hook**: Repositorys, die über einen [`checkout`-Lifecycle-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) ausgecheckt werden, werden nicht gepusht. Sichern Sie diese stattdessen über den [`post-session`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#post-session).
823 * **Bevor Sie das Flag aktivieren**: Beschränken Sie, wer zu `claude/*`-Refs auf dem Quell-Remote pushen kann. Beim Fortsetzen ruft der Runner den zuvor gepushten Branch ab, ohne zu überprüfen, wer ihn gepusht hat.
824 * **Nicht committete Änderungen gehen weiterhin verloren**: Wie Sie Claude per Prompt anweisen, nach Abschluss seiner Antwort zu committen und zu pushen, erfahren Sie unter [Sitzungen zum Pushen ihrer Arbeit auffordern](https://code.claude.com/docs/de/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work)
825* **Ein durch einen verlorenen Runner abgebrochener Befehl kann erneut ausgeführt werden**: Wenn die Sitzung auf einem anderen Runner fortgesetzt wird, sieht Claude den unterbrochenen Tool-Aufruf mit einem Ergebnis, das besagt, dass sein Ausgang unbekannt ist.860* **Ein durch einen verlorenen Runner abgebrochener Befehl kann erneut ausgeführt werden**: Wenn die Sitzung auf einem anderen Runner fortgesetzt wird, sieht Claude den unterbrochenen Tool-Aufruf mit einem Ergebnis, das besagt, dass sein Ausgang unbekannt ist.
826* **Ein während der Sitzung hinzugefügtes Repository kann beim Klonen fehlschlagen**: Claude klont es mit `git clone` über HTTPS. Auf einem Runner ohne [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) schlägt das Klonen mit einem Git-Authentifizierungsfehler fehl, wenn nichts auf dem Host das Repository lesen kann. Wählen Sie nach Möglichkeit jedes Repository, das die Sitzung benötigt, bereits beim Erstellen aus.861* **Ein während der Sitzung hinzugefügtes Repository kann beim Klonen fehlschlagen**: Claude klont es mit `git clone` über HTTPS. Auf einem Runner ohne [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) schlägt das Klonen mit einem Git-Authentifizierungsfehler fehl, wenn nichts auf dem Host das Repository lesen kann. Wählen Sie nach Möglichkeit jedes Repository, das die Sitzung benötigt, bereits beim Erstellen aus.
827 * **Wenn die Sitzung fortgesetzt wird**: Ein [`checkout`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) wird auch für das hinzugefügte Repository ausgeführt, wobei [`CLAUDE_RUNNER_REPO_REF`](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) leer ist; sorgen Sie also dafür, dass Ihr Hook diesen Fall verarbeitet.862 * **Wenn die Sitzung fortgesetzt wird**: Ein [`checkout`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) wird auch für das hinzugefügte Repository ausgeführt, wobei [`CLAUDE_RUNNER_REPO_REF`](https://code.claude.com/docs/de/self-hosted-environments-configuration#checkout) leer ist; sorgen Sie also dafür, dass Ihr Hook diesen Fall verarbeitet.
828* **Einige Connectoren erscheinen nicht in selbstgehosteten Sitzungen**: Ein Connector, den Sie noch nicht in claude.ai Settings verbunden haben, wird nicht in einer selbstgehosteten Sitzung aufgelistet, und die Sitzung wird Sie nicht auffordern, ihn zu verbinden. Verbinden Sie ihn zuerst in Settings, dann starten Sie eine frische Sitzung. Das Hinzufügen eines Connectors zu einer bereits laufenden Sitzung macht seine Tools auch nicht für Claude verfügbar; starten Sie eine frische Sitzung, um einen neu hinzugefügten Connector aufzugreifen.863* **Einige Connectoren erscheinen nicht in selbstgehosteten Sitzungen**: Ein Connector, den Sie noch nicht in claude.ai Settings verbunden haben, wird nicht in einer selbstgehosteten Sitzung aufgelistet, und die Sitzung wird Sie nicht auffordern, ihn zu verbinden. Verbinden Sie ihn zuerst in Settings, dann starten Sie eine frische Sitzung. Das Hinzufügen eines Connectors zu einer bereits laufenden Sitzung macht seine Tools auch nicht für Claude verfügbar; starten Sie eine frische Sitzung, um einen neu hinzugefügten Connector aufzugreifen.
829* **Wenn jemand eine Sitzung archiviert oder löscht oder ihren Runner über das Menü der Sitzung freigibt**: Verlassen Sie sich nicht auf den Push durch [`--push-outcome-on-release`](https://code.claude.com/docs/de/self-hosted-environments-reference#runner-cli-flags). Um Commits in diesen Fällen zu sichern, pushen Sie `HEAD` aus einem [`post-session`-Hook](https://code.claude.com/docs/de/self-hosted-environments-configuration#post-session) in einen Rettungs-Branch. Wenn Sie vom dortigen Beispiel ausgehen, sorgen Sie dafür, dass es auch dann pusht, wenn nichts uncommittet ist, da es nur nach einem Snapshot-Commit pusht.
830 864
831### Melden Sie ein Problem865### Melden Sie ein Problem
832 866