Les environnements auto-hébergés sont en bêta publique sur les plans Team et Enterprise ; Disponibilité et limitations couvre le chemin d’activation. Cette page lance votre première session ; consultez Environnements auto-hébergés pour comprendre ce qu’ils sont et Déployer en production pour le durcissement et les recettes de flotte.
Prérequis
Organisation et rôles
Le côté claude.ai a besoin de :- Autoriser les environnements auto-hébergés activé par un Propriétaire sur la page d’administration Environnements cloud ; le bouton Nouveau n’apparaît pas tant qu’il ne l’est pas. Si vous ne tenez pas le rôle, quelqu’un qui le tient peut créer l’environnement et vous remettre son secret ; les étapes du runner et du terminal sur cette page ne nécessitent aucun rôle claude.ai, et où une étape vérifie le statut dans l’interface d’administration, les propres lignes de journal du runner vous donnent le même signal.
- Le connecteur GitHub activé par un Propriétaire, et la propre connexion GitHub de chaque développeur, afin qu’ils puissent sélectionner des dépôts github.com lorsqu’ils démarrent des sessions.
Hôte et réseau
L’hôte du runner a besoin de :- Un hôte ou conteneur Linux ou macOS avec HTTPS sortant vers
api.anthropic.com, versclaude.aiet les hôtes de téléchargement vers lesquels il redirige pour l’étape d’installation ci-dessous, et vers votre hôte git pour le clone ; le tableau des exigences réseau a la liste complète. Windows n’est pas pris en charge en tant qu’hôte runner ; exécutez le runner dans un conteneur Linux à la place. Les postes de travail des développeurs ne sont pas affectés, car les sessions démarrent à partir de claude.ai dans un navigateur. - Un dépôt pour la session de test : un dépôt public, ou un dépôt que cet hôte peut déjà cloner via son URL HTTPS sans que des identifiants lui soient demandés. Une clé SSH seule ne suffit pas, car le runner clone l’URL
https://du dépôt. Pour cloner via SSH à la place, consultez Réécrire les URL git pour les réseaux privés. - Une horloge synchronisée à l’heure réelle, par exemple avec NTP. L’authentification échoue lorsque l’horloge est décalée de plus de cinq minutes ; consultez Dépannage.
Logiciel sur l’hôte du runner
Installez sur l’hôte avant de commencer :- Claude Code v2.1.224 ou ultérieur, avec l’une des méthodes d’installation standard. Le runner fait partie du binaire
claudestandard, et les versions antérieures ne reconnaissent pas la sous-commandeself-hosted-runner. Un runner qui sert des sessions Claude Tag nécessite la v2.1.229 ou ultérieure etpython3dans sonPATH, car les hooks fournis par le plan de contrôle pour ces sessions exécutentpython3. Pour épingler la version exacte que votre flotte exécute, consultez Installer une version spécifique. Pour les images de conteneur, consultez le Dockerfile dans Déployer en production. - Git 2.24 ou plus récent. Certaines options git sur la page de déploiement nécessitent des versions plus récentes ; Configurer git indique chaque plancher.
--environment-secret-file. Sur les versions antérieures à 2.1.224, la commande imprime la sortie générale claude --help à la place. Si vous voyez cette sortie, mettez à jour Claude Code. Si vous exécutez claude à partir d’une image de conteneur, reconstruisez l’image avec la version 2.1.224 ou ultérieure.
Configurer un environnement et un runner
Utilisez soit la configuration guidée, soit les étapes manuelles. La configuration guidée est une commande unique qui démarre une session Claude Code interactive et vous guide à travers le reste. Utilisez plutôt les étapes manuelles sur un hôte où une session interactive n’est pas possible. Utilisez-les également lorsqu’une personne détenant le rôle Propriétaire a créé l’environnement et vous a remis son secret, car la configuration guidée nécessite une connexion Propriétaire.Exécuter la configuration guidée
La configuration guidée vous accompagne dans la création de l’environnement dans l’interface d’administration, démarre un runner local avec le fichier secret que vous enregistrez, confirme que le runner s’enregistre, et écrit une feuille de triche dans./runner-setup/CHEAT-SHEET.md. Avant de l’exécuter, vérifiez votre connexion et votre version :
- Connexion : exécutez-la sur une machine où vous vous êtes connecté avec
claude auth loginen utilisant un compte qui détient un rôle Propriétaire. Avec seulement une clé API ou un fournisseur de modèles tiers, la session démarre mais ses vérifications d’organisation échouent. - Version : confirmez que la vérification de version a réussi. Sur les versions antérieures à 2.1.224, la commande setup démarre une session Claude avec les mots comme prompt au lieu de la configuration guidée.
./runner-setup/CHEAT-SHEET.md, puis routez une session vers l’environnement.
Configurer manuellement
Créez l’environnement sur claude.ai, démarrez le runner depuis un terminal sur l’hôte, puis revenez sur claude.ai pour confirmer que le runner apparaît et y router une session. Si une personne détenant le rôle Propriétaire a déjà créé l’environnement et vous a remis son secret, commencez à l’étape 2.1
Créer un environnement
Allez à la page Environnements cloud dans les paramètres d’administration. Sous Environnements auto-hébergés, sélectionnez Nouveau, nommez l’environnement, et sélectionnez Créer. À la deuxième étape de l’assistant, sélectionnez Copier la clé d’environnement pour copier le secret d’environnement, que l’interface d’administration étiquette comme clé d’environnement. claude.ai affiche le secret une fois, et vous ne pouvez pas le récupérer plus tard ; il expire 365 jours après sa création. L’ID
ccpool_... de l’environnement reste visible dans sa boîte de dialogue de détail ; vous en aurez besoin pour la vérification aud dans vérification de token et pour dispatcher les sessions de test à partir de CI.Si vous perdez le secret ou avez besoin de le faire tourner, créez un nouveau secret à partir de l’onglet Configuration de l’environnement, déployez le nouveau secret sur vos runners, puis révoquez l’ancien. Les runners détenant un secret révoqué échouent leur prochain sondage authentifié et se terminent, en consignant poll auth failed, et votre orchestrateur les redémarre avec le nouveau secret.2
Démarrer un runner
Créez le répertoire secret. Cette commande et la suivante utilisent Écrivez le secret d’environnement dans un fichier. La commande ci-dessous lit depuis votre terminal afin que le secret reste hors de l’historique du shell : collez la valeur que vous avez copiée, appuyez sur Entrée, puis Ctrl-D, et le Choisissez un répertoire de base, en remplaçant Le runner consigne
/etc/claude, qui nécessite root, et le fichier secret qu’elles créent n’est lisible que par l’utilisateur qui les exécute. Si le runner s’exécute sous un autre utilisateur, il se termine avec error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>'). Dans ce cas, exécutez les deux commandes en tant qu’utilisateur du runner avec un répertoire dans lequel cet utilisateur peut écrire à la place de /etc/claude, et passez le même chemin à --environment-secret-file. N’importe quel chemin que le processus runner peut lire fonctionne.umask du sous-shell rend le fichier lisible uniquement par son propriétaire.<writable-dir> dans la commande du runner ci-dessous par un chemin absolu que le runner peut écrire ou créer. Le runner crée le répertoire au démarrage, puis extrait les référentiels et crée des répertoires par session sous celui-ci. Sans --base-dir, il utilise /workspace, qui ne fonctionne que si ce répertoire existe déjà et est accessible en écriture ou si vous démarrez le runner en tant que root.Si le runner ne peut pas créer ou écrire dans le répertoire de base, il se termine au démarrage avec une erreur nommant le répertoire au lieu de s’enregistrer. Consultez Dépannage.Ensuite, démarrez le runner avec --environment-secret-file et --base-dir :Registered: runner_id=<runner-id> une fois qu’il s’est enregistré auprès de votre environnement, puis commence à interroger pour obtenir du travail. Démarré avec cette commande, il se termine par conception après avoir servi une session, et non après chaque tour. Pour servir davantage de sessions, redémarrez le runner chaque fois qu’il se termine. Consultez Si le runner se termine pour savoir quand cela se produit et ce que le runner consigne.3
Vérifier que le runner apparaît
Retournez à la page Environnements cloud. Le statut de votre environnement passe de Aucun runner déployé à Sain en quelques secondes après le démarrage du runner ; ouvrez l’environnement et sélectionnez Activité pour voir le runner lui-même. Si vous n’avez pas accès à la page d’administration, la ligne
Registered: runner_id=<runner-id> dans le log du runner de l’étape précédente vous donne le même signal.4
Router une session vers l'environnement
Démarrez une session sur claude.ai/code et sélectionnez votre environnement dans le sélecteur d’environnement, où les environnements auto-hébergés apparaissent aux côtés des environnements hébergés par Anthropic. Pour le dépôt, choisissez celui des prérequis : un dépôt public, ou un dépôt que cet hôte peut déjà cloner via son URL HTTPS sans qu’on lui demande d’identifiants.Le prochain runner disponible récupère la session en attente et consigne
Picked up session <session-id> ainsi que son nombre de sessions actives et sa capacité, afin que vous puissiez confirmer à partir de la propre sortie du runner quel hôte a pris la session. Regardez la session travailler et lisez les réponses de Claude sur claude.ai/code.Si la session ne commence pas à travailler, identifiez ce que vous observez :- La session reste en attente : consultez Dépannage.
- La session ne démarre pas en raison d’une erreur git : si l’erreur contient le message git
could not read Username forsuivi de l’URL de votre hôte git, le runner ne disposait d’aucun identifiant HTTPS pour cet hôte.- Fournir des identifiants HTTPS : consultez Configurer git
- Cloner plutôt via SSH : si l’hôte du runner dispose déjà d’une clé SSH, consultez Réécrire les URL git pour les réseaux privés
- Après l’un ou l’autre correctif : redémarrez le runner et surveillez la session en échec au lieu d’en démarrer une nouvelle. Si elle a échoué plusieurs fois, attendez plusieurs minutes que le runner consigne
Picked up session. - Pour utiliser plutôt un autre dépôt : archivez ou supprimez la session en échec, puis redémarrez le runner et démarrez une nouvelle session. Sinon, le runner peut récupérer la session en échec au lieu de la nouvelle.
Si le runner se termine
Si le runner se termine pendant ce démarrage rapide, redémarrez-le. Le runner peut se terminer de lui-même :- Plus rien en cours d’exécution : le log affiche
[runner:exit] account workload drained — exiting. Le runner se termine par conception dès qu’il n’exécute plus aucune session, par exemple :- Vous avez archivé ou supprimé la session : redémarrez le runner
- La session n’a pas pu démarrer : corrigez la cause, puis redémarrez le runner
- Contact perdu : le log affiche une ligne
[runner:fatal]avecrunner record gone server-sideou avecpoll auth failed. Si le runner perd le contact avec Anthropic pendant un certain temps, par exemple parce que l’hôte se met en veille, il peut se terminer lorsqu’il joint à nouveau Anthropic.
Envoyer un message de suivi à une session en cours d’exécution
Une fois qu’une session s’exécute sur votre environnement, envoyez-lui un suivi à partir de la CLIclaude sur n’importe quelle machine où vous êtes connecté avec claude auth login ; la commande n’a pas besoin de s’exécuter à partir de la machine qui a démarré la session. La commande publie un message :
<session-id>, passez l’ID nu session_... ou cse_... ou l’URL claude.ai/code de la session. Un envoi réussi imprime Sent to cloud session. avec l’ID de session et un lien de visualisation. Les formes d’ID acceptées, la sortie JSON, ainsi que les exigences de compte et de politique sont sur Envoyer des suivis à partir de la CLI, car la commande fonctionne de la même manière contre les sessions hébergées par Anthropic.
Étapes suivantes
- Déployer en production : durcir le déploiement, contrôler la sortie, configurer les identifiants git et exécuter la flotte sous Kubernetes ou Compose
- Personnaliser les sessions : scripts wrapper, hooks de cycle de vie, runners à la demande, serveurs MCP et permissions
- Tester de bout en bout : un test de fumée CI qui dispatche une session et lit les réponses de Claude