nandi/oripublic Fork 0
main
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

run-in-a-sandbox.md · 44 lines · 3.8 KBmarkdown
Blame HistoryOpen raw

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 :

    ./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é :

    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:<port> -> 8888/tcp. Ouvrez-la, ou fixez un port stable avec -p 8888:8888/tcp à la création (ou après coup avec sbx ports <nom-de-la-sandbox> --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 <nom-de-la-sandbox> (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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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:<port> -> 8888/tcp`. Ouvrez-la, ou fixez un port stable avec `-p 8888:8888/tcp` à la création (ou après coup avec `sbx ports <nom-de-la-sandbox> --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 <nom-de-la-sandbox>` (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)