> For the complete documentation index, see [llms.txt](https://cleyrop.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cleyrop.gitbook.io/docs/la-fabrique/devspace.md).

# DevSpace

## Comprendre le DevSpace

Le DevSpace est un environnement de développement personnel hébergé sur la plateforme Cleyrop. Il vous permet de disposer d'un espace de travail isolé, standardisé et persistant, accessible depuis n'importe où via SSH.

Conçu pour les développeurs, le DevSpace résout les problématiques courantes liées aux environnements locaux : configurations hétérogènes, difficultés de reproduction des bugs, et accès impossible aux ressources internes Cleyrop.

### Qu'est-ce qu'un DevSpace ?

Un DevSpace est un conteneur Ubuntu 24.04 provisionné sur demande. Chaque utilisateur dispose d'un seul DevSpace personnel avec les caractéristiques suivantes

* Ressources contrôlées : choix du couple CPU/RAM et de la taille du stockage à la création
* Stockage persistant : vos fichiers dans /home/cleyrop sont conservés entre les arrêts et redémarrages.
* Accès SSH : connexion depuis votre IDE préféré (VS Code, IntelliJ, PyCharm).
* Accès aux ressources Cleyrop : connexion sécurisée aux Apps, Datasets, AI Gen Proxy, Corpus et Données de travail
* Gestion du cycle de vie : démarrage, arrêt et suppression à la demande.

{% hint style="warning" %}
Concernant le stockage persistant :

* À date, il n'est pas possible de faire évoluer le stockage de votre DevSpace.
* Seul le dossier /home/cleyrop est persistant. Tout fichier stocké ailleurs sera perdu à l'arrêt du DevSpace.
  {% endhint %}

## Gérer son DevSpace

### Créer son DevSpace

Provisionnez votre environnement de développement personnel en quelques clics.

1. Cliquez sur DevSpace dans le menu de navigation principal
2. Si vous n'avez pas encore de DevSpace, cliquez sur <i class="fa-gear">:gear:</i> Configurer
3. Vérifiez votre **clé SSH de votre appareil** : le système vérifie automatiquement si une clé est configurée dans votre profil. Si ce n'est pas le cas, cliquez sur « Ajouter une clé » et suivez le tutoriel.
4. Choisissez les **ressources** : sélectionnez un couple CPU/RAM parmi les options proposées ou renseignez des valeurs personnalisées
5. Définissez le **stockage** : choisissez la taille du volume persistant. Cette valeur ne pourra pas être modifiée ultérieurement.
6. Sélectionnez les **Apps accessibles** (optionnel) : par défaut, aucune app n'est accessible. Utilisez la barre de recherche et les filtres pour sélectionner les Apps dont vous avez besoin.
7. Cliquez sur Configurer. Le provisionnement du DevSpace prend généralement quelques secondes. L'état passe de « Starting » à « Running » lorsque l'environnement est prêt.

{% hint style="info" %}
✓ Utilisez des clés Ed25519 pour une sécurité optimale.

✓ Configurez le fichier \~/.ssh/config pour éviter de retaper les paramètres à chaque connexion.

✓ Ne partagez jamais votre clé privée

✓ Gérez les clés SSH autorisées à accéder à votre DevSpace depuis votre Espace personnel > Clé SSH
{% endhint %}

{% hint style="success" %}
Dimensionnez les ressources en fonction de vos besoins réels pour éviter de surcharger le cluster.
{% endhint %}

<figure><img src="/files/vzIFgDT4aaCDhRYmVyJ4" alt=""><figcaption></figcaption></figure>

### Gérer les accès aux apps

Configurez les apps auxquels votre DevSpace peut se connecter niveau réseau.

Par défaut, votre DevSpace n'a accès à aucune app. Vous devez explicitement sélectionner les apps dont vous avez besoin pour respecter le principe de moindre privilège réseau. Cette configuration peut être modifiée à tout moment, même lorsque le DevSpace est en cours d'exécution.

Depuis l'onglet Apps de votre DevSpace, vous pouvez ajouter ou retirer les apps auxquels vous souhaitez accéder depuis votre DevSpace.

<figure><img src="/files/Kt5V8HtTRyFVVZQ2b9kn" alt=""><figcaption></figcaption></figure>

### Gérer les ressources utilisées

Contrôlez l'état de votre environnement pour optimiser l'utilisation des ressources.

Vous pouvez démarrer, arrêter ou modifier les ressources de votre DevSpace à tout moment. L'arrêt libère les ressources CPU et RAM tout en conservant vos données dans le stockage persistant.

#### Ajuster les ressources

Depuis la page de détail, cliquez sur <i class="fa-gear">:gear:</i> pour modifier les ressources CPU/RAM. La validation du changement nécessite un redéploiement automatique du DevSpace.

#### Démarrer le DevSpace

Depuis la page de détail de votre DevSpace, cliquez sur <i class="fa-play">:play:</i>

* L'état passe à « Starting » puis « Running » après quelques secondes.

En cas de problème vous pouvez consulter les logs depuis la fiche de votre DevSpace en cliquant sur le bouton Log.

#### Arrêter le DevSpace

Depuis la page de détail de votre DevSpace, cliquez sur <i class="fa-stop">:stop:</i>

{% hint style="warning" %}
Assurez-vous d'avoir sauvegardé votre travail avant d'arrêter. Les fichiers hors de /home/cleyrop seront perdus.
{% endhint %}

Après un cycle arrêt/démarrage, vous retrouvez :

* Tous vos fichiers dans /home/cleyrop
* Vos packages Python installés avec UV
* Vos configurations utilisateur (.bashrc, .gitconfig, etc.)
* Vos repositories Git clonés
* Votre historique de commandes bash

#### Supprimer le DevSpace

La suppression de votre DevSpace est irréversible et entraîne la perte définitive de toutes vos données, y compris celles stockées dans /home/cleyrop.

1. Depuis la page de détail de votre DevSpace, cliquez sur **Supprimer**
2. Confirmez la suppression

{% hint style="warning" %}
Sauvegardez l'ensemble de vos fichiers avant de supprimer votre DevSpace. Cette action est irréversible.
{% endhint %}

## Utiliser son DevSpace

Votre DevSpace est accessible via SSH depuis tous les IDE supportant les connexions distantes. Vous retrouverez l'ensemble des guides d'utilisation et tutoriels directement depuis la fiche DevSpace.

### Se connecter à un IDE

Vous pouvez vous connecter à **IDE VS Code**, **JetBrains** ou un **Terminal** en créant un tunnel SSH sécurisé. Suivez les étapes afin de configurer et lancer la connexion SSH.

<figure><img src="/files/FTCk9GxcaSjuSSTs4sUU" alt=""><figcaption></figcaption></figure>

### Résoudre les problèmes de connexion SSH

Si la connexion à votre DevSpace est instable ou se coupe fréquemment, remplacez le `ProxyCommand` dans `~/.ssh/config` par la commande suivante utilisant `socat` :

```bash
ProxyCommand socat - OPENSSL:%h:%p,verify=0
```

Exemple de bloc complet dans `~/.ssh/config` :

```bash
Host cleyrop-devspace
  HostName <votre-hostname-devspace>
  User cleyrop
  Port 2222
  IdentityFile <chemin-vers-votre-clé-privée>
  ProxyCommand socat - OPENSSL:%h:%p,verify=0
  # optionnels, améliorent la stabilité
  ServerAliveInterval 15
  ServerAliveCountMax 3
  TCPKeepAlive yes
```

Pour tester directement en ligne de commande sans modifier le fichier de configuration :

```bash
ssh -p 2222 -o ProxyCommand="socat - OPENSSL:%h:%p,verify=0" cleyrop@<votre-hostname-devspace>
```

**Sur macOS avec LibreSSL**

Sur macOS, `openssl` pointe par défaut sur LibreSSL, qui ne supporte pas `-ign_eof` et provoque des coupures TLS toutes les 2 minutes environ. Installez OpenSSL via Homebrew et utilisez :

```bash
ProxyCommand openssl s_client -quiet -ign_eof -connect %h:%p -servername %h
```

### Gérer les packages Python avec UV

Installez et gérez vos dépendances Python avec UV, le gestionnaire de packages intégré.

Votre DevSpace inclut UV, un gestionnaire de packages Python moderne et performant. Tous les packages installés dans /home/cleyrop sont persistants.

#### Créer un environnement virtuel (recommandé)

1. Créez un dossier pour votre projet :

   `cd /home/cleyrop/projects/mon-projet`
2. Créez l'environnement virtuel :\
   `uv venv`
3. Activez l'environnement :\
   `source .venv/bin/activate`.\
   Le prompt affiche (.venv) pour confirmer l'activation.

#### Gérer les packages

Vous retrouverez vos packages :

* Avec environnement virtuel : /home/cleyrop/projects/mon-projet/.venv/ (isolé par projet)
* Sans environnement virtuel : /home/cleyrop/.local/ (global)

Les deux emplacements sont persistants entre les redémarrages du DevSpace.

**Commandes UV courantes**

<table><thead><tr><th valign="top">Action</th><th valign="top">Commande</th></tr></thead><tbody><tr><td valign="top">Installer des packages</td><td valign="top">uv pip install pandas numpy</td></tr><tr><td valign="top">Installer depuis requirements.txt</td><td valign="top">uv pip install -r requirements.txt</td></tr><tr><td valign="top">Lister les packages installés</td><td valign="top">uv pip list</td></tr><tr><td valign="top">Mettre à jour un package</td><td valign="top">uv pip install --upgrade pandas</td></tr><tr><td valign="top">Générer requirements.txt</td><td valign="top">uv pip freeze > requirements.txt</td></tr></tbody></table>

{% hint style="success" %}
✓ Créez toujours un environnement virtuel par projet.

✓ Maintenez un fichier requirements.txt à jour pour chaque projet.

✓ Ajoutez .venv/ au .gitignore (ne versionnez jamais l'environnement).

✓ N'utilisez jamais sudo (vous n'avez pas les droits root).
{% endhint %}

### Cloner des dépôts Git

Pour cloner des dépôts privés, vous devez ajouter la clé SSH publique de votre DevSpace comme Deploy Key sur vos repositories. Chaque DevSpace possède sa propre clé.

#### Récupérer la clé publique du DevSpace

Dans l'onglet Informations de votre DevSpace, cliquez sur Copier la clé SSH.

#### Ajouter la Deploy Key sur GitHub/GitLab

1. Accédez à votre repository.
2. Allez dans Settings > Deploy keys > Add deploy key.
3. Collez la clé publique du DevSpace.
4. Cochez *Allow write access* si vous souhaitez pouvoir push.
5. Sauvegardez.

#### Cloner le repository

```bash
# Créer le dossier de travail
mkdir -p /home/cleyrop/projects
cd /home/cleyrop/projects
 
# Cloner depuis GitHub
git clone git@github.com:<username>/<repo>.git
 
# Cloner depuis GitLab
git clone git@gitlab.com:<username>/<repo>.git
```

### Accéder aux ressources Cleyrop

Votre DevSpace peut accéder aux ressources internes de la plateforme Cleyrop, sous réserve d'avoir configuré les accès appropriés.&#x20;

#### Ressources disponibles

• AI Gen Proxy : accès aux modèles d'IA générative via SDK py-ai-cleyrop

• Datasets : lecture et écriture de données (via API datasets)

• Apps : selon votre configuration.

#### Documentation technique

Pour utiliser la librairie dans votre code Python, consultez la documentation PyAI Cleyrop qui détaille les méthodes d'accès les plus à jour.

***

## Bonnes pratiques

* Arrêtez votre DevSpace lorsque vous ne l'utilisez pas pour libérer les ressources du cluster
* Stockez tout votre travail dans /home/cleyrop pour garantir la persistance.
* N'autorisez que les apps dont vous avez réellement besoin (principe du moindre privilège).
* Créez toujours un environnement virtuel par projet et maintenez un fichier requirements.txt à jour pour chaque projet.


---

# 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:

```
GET https://cleyrop.gitbook.io/docs/la-fabrique/devspace.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
