> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Installer Devin Desktop en air gap

> Téléchargez le paquet Devin Desktop en air gap depuis le portail, vérifiez sa somme de contrôle SHA-256, installez-le sur macOS, Linux ou Windows, puis effectuez un contrôle de bon fonctionnement.

> [!NOTE]
>
> Cette documentation concerne les déploiements fédéraux de Devin. [Retour à la documentation Devin](/fr/get-started/devin-intro)

Cette page vous accompagne dans une première installation du paquet Devin Desktop en air gap, qui inclut la Devin CLI en air gap. Commencez par l'installer sur un seul poste de travail, puis déployez-la sur l'ensemble de votre parc en suivant votre procédure approuvée de transfert par support amovible.

## Avant de commencer

* Vous êtes connecté au portail en tant que **membre approuvé d'une équipe disposant d'un droit d'utilisation on-prem actif**. Sans ce droit, la page de téléchargement en air gap indique que vous n'êtes pas éligible ; contactez votre équipe chargée du compte.
* Vous avez préparé, ou êtes prêt à préparer, les deux fichiers requis sur chaque hôte avant le premier lancement :
  * un **fichier de licence**, délivré depuis le portail (voir [Licence](/fr/federal/air-gapped/license)) ;
  * un **fichier de modèles** décrivant les endpoints de vos modèles (voir [Fichier de modèles](/fr/federal/air-gapped/models-file)).
* L'hôte cible fonctionne sur une plateforme prise en charge : macOS (Apple silicon ou Intel), Linux (x86\_64 ou aarch64) ou Windows (x64 ou arm64).

## Étape 1 : Télécharger le paquet depuis le portail

1. Dans le portail, ouvrez **Install → Air-gapped downloads** ([`windsurf.fedstart.com/install/airgap`](https://windsurf.fedstart.com/install/airgap)).

2. Choisissez le programme d'installation **Devin Desktop** correspondant à la plateforme cible. La page propose un package par plateforme et par format :

   | Plateforme | Formats |
   | - | - |
   | macOS, Apple silicon | `.dmg` |
   | macOS, Intel | `.dmg` |
   | Linux x64 | `.deb`, `.rpm`, `.tar.gz` |
   | Linux arm64 | `.deb`, `.rpm`, `.tar.gz` |
   | Windows x64 | `.exe` (programme d'installation système), `.zip` |
   | Windows arm64 | `.exe` (programme d'installation système), `.zip` |

   Les fichiers Windows sont nommés `DevinSetup-<arch>-<version>.exe` et `Devin-win32-<arch>-<version>.zip`, où `<arch>` vaut `x64` ou `arm64`. Le programme d'installation installe l'application pour tous les utilisateurs ; il n'existe pas de programme d'installation par utilisateur.

3. Notez la somme de contrôle **SHA-256** affichée à côté du fichier (cliquez sur **Show checksum**). Vous la comparerez à celle du fichier après le transfert.

4. Transférez le fichier dans l'environnement isolé du réseau en suivant votre procédure approuvée de transfert par support physique.

La même page propose deux autres téléchargements, chacun accompagné de sa propre somme de contrôle SHA-256 :

| Téléchargement | Fichier | Objectif |
| - | - | - |
| **Desktop tunnel CLI** | `Devin-cli-linux-x64-<version>.tar.gz`, `Devin-cli-linux-arm64-<version>.tar.gz` | Le tunnel autonome en ligne de commande `devin-desktop-airgap`, qui permet de connecter Desktop à un hôte distant via SSH. Installez-le sur la machine distante, et non sur le poste de travail. |
| **Remote extension host** | `devin-reh-linux-<arch>-<version>.tar.gz`, `devin-reh-darwin-<arch>-<version>.tar.gz` | Le composant serveur que Desktop installe sur les cibles SSH. Mettez-le à disposition des hôtes qui ne peuvent pas le récupérer eux-mêmes. |

La CLI de l'*agent* Devin (`devin`) ne fait pas partie de ces téléchargements : elle est fournie avec chaque package Desktop (voir l'[Étape 5](#step-5-locate-the-bundled-cli)).

## Étape 2 : Vérifier la somme de contrôle

Sur l'hôte cible (ou avant le transfert vers l'environnement isolé), calculez l'empreinte SHA-256 du fichier téléchargé et comparez-la à la valeur affichée dans le portail.

**macOS**

```sh theme={null}
shasum -a 256 Devin-darwin-arm64-<version>.dmg
```

```text theme={null}
3f6c…e21a  Devin-darwin-arm64-<version>.dmg
```

**Linux**

```sh theme={null}
sha256sum Devin-linux-x64-<version>.deb
```

```text theme={null}
3f6c…e21a  Devin-linux-x64-<version>.deb
```

**Windows**

```powershell theme={null}
Get-FileHash -Algorithm SHA256 .\DevinSetup-x64-<version>.exe
```

La valeur `Hash` doit correspondre à la somme de contrôle indiquée sur la page du portail. Comme `Get-FileHash` l'affiche en majuscules, effectuez la comparaison sans tenir compte de la casse.

La première colonne doit correspondre exactement à la somme de contrôle indiquée sur la page du portail. Dans le cas contraire, supprimez le fichier et téléchargez-le de nouveau.

## Étape 3 : Installation

**macOS**

1. Ouvrez le fichier `.dmg` et faites glisser **Devin - Airgap** dans `/Applications`.
2. Vérifiez la signature du code et la notarisation avant le premier lancement :

   ```sh theme={null}
   spctl --assess --type execute --verbose "/Applications/Devin - Airgap.app"
   codesign --verify --deep --strict "/Applications/Devin - Airgap.app"
   ```

   ```text theme={null}
   /Applications/Devin - Airgap.app: accepted
   source=Notarized Developer ID
   ```

   `spctl` affiche `accepted` ; `codesign --verify` n'affiche rien et se termine avec le code `0` si la signature est intacte. Toute sortie `rejected` ou `code object is not signed at all` signifie que le paquet a été altéré pendant le transfert : supprimez-le et reprenez à partir de l'étape 1.

**Linux (.deb / .rpm)**

```sh theme={null}
sudo dpkg -i Devin-linux-x64-<version>.deb   # Debian/Ubuntu
sudo rpm -i Devin-linux-x64-<version>.rpm    # RHEL/Fedora
```

Il n'existe pas de dépôt apt ou yum pour les builds en air gap ; installez et mettez à jour directement à partir des fichiers de package.

**Linux (.tar.gz)**

```sh theme={null}
sudo tar -xzf Devin-linux-x64-<version>.tar.gz -C /opt
```

Le lanceur se trouve dans `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows (programme d'installation)**

1. Vérifiez la signature Authenticode du programme d'installation avant de l'exécuter :

   ```powershell theme={null}
   Get-AuthenticodeSignature .\DevinSetup-x64-<version>.exe | Format-List Status, SignerCertificate
   ```

   `Status` doit valoir `Valid` et le certificat du signataire doit être délivré à `Exafunction, Inc.` Si le Windows SDK est installé, `signtool verify /pa .\DevinSetup-x64-<version>.exe` effectue la même vérification. Tout autre statut signifie que le fichier a été altéré pendant le transfert : supprimez-le et reprenez à partir de l'étape 1.
2. Exécutez `DevinSetup-x64-<version>.exe` en tant qu'administrateur. Le programme d'installation s'exécute avec des privilèges élevés et installe **Devin - Airgap** pour tous les utilisateurs dans `C:\Program Files\Devin Airgap\`.

Le programme d'installation ne crée ni ne sécurise le dossier de configuration ; cette opération est décrite à l'[étape 4](#windows-lock-down-the-configuration-folder). L'entrée de désinstallation Windows s'intitule **Devin Airgap**.

**Windows (.zip)**

Décompressez `Devin-win32-x64-<version>.zip` dans le dossier de votre choix et lancez Desktop depuis cet emplacement ; rien d'autre n'est installé. Vérifiez la signature Authenticode des exécutables décompressés avec `Get-AuthenticodeSignature`, comme pour le programme d'installation : `Status` doit valoir `Valid` et le signataire doit être `Exafunction, Inc.`

Le verrouillage du dossier décrit à l'[étape 4](#windows-lock-down-the-configuration-folder) s'applique également aux installations à partir du zip.

Sous Linux, la comparaison SHA-256 de l'étape 2 tient lieu de vérification ; les packages ne sont accompagnés d'aucun fichier de signature distinct.

## Étape 4 : Placer la licence et le fichier de modèles

La CLI autonome et l’agent intégré à Desktop lisent les deux mêmes fichiers. Placez-les aux chemins par défaut pour éviter d’avoir à définir des variables d’environnement :

| Fichier | Chemin par défaut | Variable de remplacement |
| - | - | - |
| Licence | `/etc/devin/license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| Fichier de modèles | `/etc/devin/models.json` | `DEVIN_MODELS_FILE` |

Sous Windows, le répertoire par défaut est `C:\ProgramData\Devin\` ; les variables de remplacement sont les mêmes :

| Fichier | Chemin par défaut (Windows) | Variable de remplacement |
| - | - | - |
| Licence | `C:\ProgramData\Devin\license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| Fichier de modèles | `C:\ProgramData\Devin\models.json` | `DEVIN_MODELS_FILE` |

### Windows : verrouiller le dossier de configuration

Cette étape est obligatoire sous Windows, que vous utilisiez le programme d'installation ou l'archive zip, et le programme d'installation ne l'effectue pas à votre place. Par défaut, les utilisateurs standard peuvent créer des fichiers dans un nouveau dossier sous `C:\ProgramData` ; sans ce verrouillage, un utilisateur pourrait donc créer `models.json` (ou le fichier de licence ou d'authentification) avant vous et en conserver le contrôle.

**Avant de placer le moindre fichier**, depuis une session PowerShell avec élévation de privilèges, créez le dossier et restreignez ses droits afin que SYSTEM et Administrators disposent d'un contrôle total et que les utilisateurs standard n'aient qu'un accès en lecture :

```powershell theme={null}
New-Item -ItemType Directory -Force C:\ProgramData\Devin
icacls C:\ProgramData\Devin /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)(F)" "*S-1-5-32-544:(OI)(CI)(F)" "*S-1-5-32-545:(OI)(CI)(RX)"
```

Si `C:\ProgramData\Devin\` existait déjà, les commandes ci-dessus ne suffisent pas : tout ce qu’un utilisateur standard y a créé auparavant reste la propriété de cet utilisateur, et toute autorisation accordée explicitement sur le dossier à un autre utilisateur ou groupe est conservée. Après les commandes ci-dessus, exécutez également les commandes suivantes, dans cet ordre. Elles attribuent la propriété du dossier et de son contenu au groupe Administrateurs, suppriment toutes les autorisations explicites du dossier, réappliquent le verrouillage et réinitialisent les autorisations du contenu afin qu’il hérite de celles du dossier :

```powershell theme={null}
icacls C:\ProgramData\Devin /setowner "*S-1-5-32-544" /T /C
icacls C:\ProgramData\Devin /reset
icacls C:\ProgramData\Devin /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)(F)" "*S-1-5-32-544:(OI)(CI)(F)" "*S-1-5-32-545:(OI)(CI)(RX)"
icacls C:\ProgramData\Devin\* /reset /T /C
```

Vérifiez le résultat. Aucune des commandes ci-dessus ne doit avoir affiché de message d'erreur pour un fichier ou un dossier : `/C` permet à `icacls` de continuer après un élément qu'il n'a pas pu modifier, si bien qu'une erreur signifie que cet élément a conservé son ancien propriétaire ou ses anciennes autorisations. Listez ensuite les autorisations du dossier et de tout son contenu :

```powershell theme={null}
icacls C:\ProgramData\Devin /T
```

Le dossier lui-même, `C:\ProgramData\Devin`, doit comporter exactement trois entrées : `NT AUTHORITY\SYSTEM:(OI)(CI)(F)`, `BUILTIN\Administrators:(OI)(CI)(F)` et `BUILTIN\Users:(OI)(CI)(RX)`, aucune n’étant marquée `(I)`. Chaque fichier et sous-dossier qu’il contient doit comporter ces trois mêmes utilisateurs et groupes, et aucun autre, chacun marqué `(I)` puisqu’hérité du dossier ; pour un fichier, cela donne `NT AUTHORITY\SYSTEM:(I)(F)`, `BUILTIN\Administrators:(I)(F)` et `BUILTIN\Users:(I)(RX)`. Si un autre utilisateur ou groupe apparaît où que ce soit, si une entrée du dossier est marquée `(I)` ou si une entrée d’un fichier ou d’un sous-dossier n’est pas marquée `(I)`, le verrouillage n’est pas effectif ; exécutez à nouveau les commandes prévues pour un dossier existant.

Copiez ensuite le fichier de licence et le fichier de modèles dans le dossier, depuis la même session avec élévation de privilèges.

Chaque entrée de modèle indique le nom d’une variable d’environnement contenant sa clé d’API (`api_key.env`) ; cette variable doit être définie dans l’environnement du processus qui exécute l’agent. Consultez [Fichier de modèles → Variables d’environnement de clé d’API](/fr/federal/air-gapped/models-file#api-key-environment-variables) pour savoir comment la fournir à Desktop, dont l’agent intégré hérite de l’environnement de **l’application Desktop** et non de celui de votre shell.

## Étape 5 : Localiser la CLI intégrée

La CLI de l'Agent Devin est intégrée à chaque package Desktop et compilée à partir du même commit de version que Desktop : les deux versions ne peuvent donc pas se désynchroniser.

| Plateforme | Chemin dans le package |
| - | - |
| macOS | `/Applications/Devin - Airgap.app/Contents/Resources/app/extensions/windsurf/devin/bin/devin` |
| Linux | `<install root>/resources/app/extensions/windsurf/devin/bin/devin` |
| Windows | `<install root>\resources\app\extensions\windsurf\devin\bin\devin.exe`, où `<install root>` correspond à `C:\Program Files\Devin Airgap` si vous avez utilisé le programme d'installation, ou au dossier dans lequel vous avez décompressé le zip |

Utilisez ce binaire pour exécuter les commandes `devin …` de ce guide, ou ajoutez-le au `PATH`. Vérifiez la version :

```sh theme={null}
"/Applications/Devin - Airgap.app/Contents/Resources/app/extensions/windsurf/devin/bin/devin" --version
```

```text theme={null}
devin-federal <version>+airgap.<sha>
```

## Étape 6 : Exécuter le contrôle de bon fonctionnement

Depuis un shell disposant du même environnement que celui dans lequel l'agent s'exécutera (en particulier les variables de clé d'API indiquées dans votre fichier de modèles), exécutez :

```sh theme={null}
devin airgap doctor
```

```text theme={null}
pass  license                                seat alice@example.gov (account acme), expires 2027-03-01
pass  models file path                       /etc/devin/models.json
pass  config dir writable                    /home/alice/.config/devin/cli-federal
pass  data dir writable                      /home/alice/.local/share/devin/cli-federal
pass  CA bundle                              not configured (OS trust store only; set DEVIN_CA_BUNDLE to add a private CA)
pass  models file parse                      1 model(s) configured
pass  model 'llama-3.3-70b': API key env var  LOCAL_LLAMA_API_KEY is set
pass  custom subagent profiles               none configured
pass  model 'llama-3.3-70b': endpoint reachability  GET https://models.internal:8000/v1/models -> 200 OK
pass  model 'llama-3.3-70b': inference conformance  POST https://models.internal:8000/v1/chat/completions -> 200 OK (412 ms)

10 check(s): 10 passed, 0 warning(s), 0 failure(s)
```

La commande ne renvoie `0` que si aucune vérification n’échoue. Chaque ligne `FAIL` comporte un code d’erreur, par exemple `CFG002` ou `NET003` : consultez-le dans [Codes d’erreur](/fr/federal/air-gapped/error-codes) et suivez le guide d’exploitation de la section [Dépannage](/fr/federal/air-gapped/troubleshooting).

## Étape 7 : Premier lancement

**macOS**

Lancez l'application installée en indiquant son chemin explicite :

```sh theme={null}
open "/Applications/Devin - Airgap.app"
```

Évitez `open -a "Devin - Airgap"` : cette commande résout le nom via LaunchServices et risque de sélectionner une autre copie que celle que vous avez vérifiée (un `.dmg` monté ou une installation plus ancienne).

**Linux**

Démarrez le lanceur installé par le package ou, pour une installation depuis une archive tar, exécutez `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows**

Démarrez l'application **Devin - Airgap** installée ou, pour une installation depuis une archive zip, exécutez l'application depuis le dossier décompressé.

Si la licence est absente ou invalide, Desktop s'ouvre quand même, mais l'agent intégré échoue : le panneau de chat affiche l'erreur ACP `-32019 license_invalid`. Ouvrez **View → Output → Devin ACP**, repérez la ligne `LIC00X`, puis consultez [Licence](/fr/federal/air-gapped/license#error-codes).

## Étapes suivantes

* Configurez le SSO si votre déploiement nécessite une connexion des utilisateurs : [SSO](/fr/federal/air-gapped/sso).
* Ajoutez une autorité de certification (CA) privée si vos endpoints utilisent des certificats internes : [Réseau et certificats](/fr/federal/air-gapped/network-and-certificates).
* Découvrez où le produit stocke son état et comment ingérer le journal d’audit : [Formats sur disque](/fr/federal/air-gapped/on-disk-formats).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.