# Lancer Ori dans une sandbox Docker Ce guide montre comment empaqueter Ori en template Docker Sandboxes et le lancer avec `sbx`, pour que toute la pile — Claude Code compris — vive dans une sandbox isolée accessible depuis votre navigateur. Il suppose Docker et la CLI `sbx` sur l'hôte. ## Étapes 1. Récupérez l'image du template — elle est publiée sur Docker Hub sous `k33g/ori:0.0.2`. Pour la (re)construire et la pousser vous-même, depuis la racine du dépôt : ```bash ./template/build.sh ``` Le script exécute un `docker buildx build --push` multi-architectures : la SPA et les binaires Go sont compilés dans des étapes intermédiaires, puis posés avec l'adaptateur `claude-agent-acp` au-dessus de l'image officielle `docker/sandbox-templates:claude-code`. Pour une image locale uniquement, utilisez plutôt `make template`. 2. Créez la sandbox depuis votre répertoire de projet, avec le template et le kit ori, en mode détaché : ```bash sbx run -d claude ~/chemin/vers/votre/projet \ --template k33g/ori:0.0.2 \ --kit /chemin/vers/ori/kits/ori ``` Le `-d` (`--detached`) est important : sbx arrête une sandbox 30 secondes après la fermeture de la dernière session CLI ouverte dessus, et le trafic du navigateur sur un port publié n'est pas une session. `sbx create` ne tient une session que le temps de son exécution, donc une sandbox créée ainsi passe en `stopped` une demi-minute plus tard. Une sandbox détachée échappe à cet arrêt automatique jusqu'à ce que vous fassiez `sbx stop` ou `sbx rm`. L'option n'existe que sur `sbx run`, et le mode est figé à la création. Pour fixer un port hôte, ajoutez `-p 5555:8888/tcp`. Gardez le suffixe `/tcp` : sans protocole, sbx ne lie que l'IPv4 (`tcp4`), et un navigateur qui résout `localhost` en `::1` affiche « site inaccessible » alors que le serveur tourne. Évitez les ports que Chrome refuse d'office, comme 6665 à 6669. La commande de démarrage du kit lance le serveur ori sur le port 8888 à chaque démarrage du conteneur ; le kit agent claude injecte les identifiants Anthropic via le proxy de la sandbox, donc aucune connexion n'est nécessaire à l'intérieur. 3. Ouvrez l'interface : le kit déclare le port 8888, la sortie de la commande affiche donc l'adresse éphémère publiée — `Published web: localhost: -> 8888/tcp`. Ouvrez-la, ou fixez un port stable avec `-p 8888:8888/tcp` à la création (ou après coup avec `sbx ports --publish 8888:8888/tcp`). ## Variantes - Le port d'écoute est un argument du kit (défaut 8888) : ajoutez `--kit-arg ori.port=9000` pour le changer, et publiez ce port vous-même avec `-p 9000:9000` — le port que le kit déclare pour l'auto-publication est fixé à 8888. - Si l'image n'a jamais été poussée sur Docker Hub, confiez-la d'abord au magasin d'images du runtime des sandboxes : `docker save k33g/ori -o /tmp/ori.tar && sbx template load /tmp/ori.tar`. - Autonome, sans sbx : `docker run --rm -p 8888:8888/tcp k33g/ori` (fournissez `ANTHROPIC_API_KEY`, ou utilisez l'agent de démonstration ci-dessous). - Démo sans identifiants : dans la sandbox, `pkill -x ori` puis relancez avec `--agent-cmd ori-mock-agent`. - Le log du serveur dans la sandbox est `/home/agent/.ori.log`. - Une sandbox arrêtée redémarre avec `sbx run -d --name ` (ou `sbx attach`) ; le kit relance le serveur à chaque démarrage. - Si une sandbox s'arrête quand même toute seule, cherchez des lignes `auto-stop` dans le journal du démon (`sbx daemon status` affiche son chemin) : elles signifient qu'elle n'a pas été créée détachée. ## Voir aussi - Détails du kit et contenu du template : [`kits/ori/README.md`](../../../kits/ori/README.md) - Options du serveur que le kit démarre : [référence : la commande ori](../reference/cli.md)