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

# Installare Devin Desktop air-gapped

> Scarica il bundle air-gapped di Devin Desktop dal portale, verificane il checksum SHA-256, installalo su macOS, Linux o Windows ed esegui una verifica dello stato di salute.

> [!NOTE]
>
> Questa documentazione riguarda le distribuzioni di Devin per il governo federale. [Torna alla documentazione di Devin](/it/get-started/devin-intro)

Questa pagina ti guida nella prima installazione del bundle air-gapped di Devin Desktop, che include la Devin CLI air-gapped. Completa la procedura prima su una singola workstation, poi ripetila sulle altre postazioni seguendo il processo approvato per i supporti fisici.

## Prima di iniziare

* Hai effettuato l'accesso al portale come **membro approvato di un team con un'autorizzazione on-prem attiva**. In assenza dell'autorizzazione, la pagina dei download air-gapped segnala che non sei idoneo; in tal caso, contatta il tuo team di gestione dell'account.
* Hai già preparato, o sei pronto a preparare, i due file necessari a ogni host prima del primo avvio:
  * un **file di licenza**, emesso dal portale (vedi [Licenza](/it/federal/air-gapped/license));
  * un **file dei modelli** che descrive gli endpoint dei tuoi modelli (vedi [File dei modelli](/it/federal/air-gapped/models-file)).
* L'host di destinazione utilizza una piattaforma supportata: macOS (Apple silicon o Intel), Linux (x86\_64 o aarch64) oppure Windows (x64 o arm64).

## Passaggio 1: Scarica il bundle dal portale

1. Nel portale, apri **Install → Air-gapped downloads** ([`windsurf.fedstart.com/install/airgap`](https://windsurf.fedstart.com/install/airgap)).

2. Scegli il programma di installazione di **Devin Desktop** per la piattaforma di destinazione. La pagina elenca un package per ciascuna piattaforma e formato:

   | Piattaforma | Formati |
   | - | - |
   | macOS, Apple silicon | `.dmg` |
   | macOS, Intel | `.dmg` |
   | Linux x64 | `.deb`, `.rpm`, `.tar.gz` |
   | Linux arm64 | `.deb`, `.rpm`, `.tar.gz` |
   | Windows x64 | `.exe` (programma di installazione di sistema), `.zip` |
   | Windows arm64 | `.exe` (programma di installazione di sistema), `.zip` |

   I file per Windows si chiamano `DevinSetup-<arch>-<version>.exe` e `Devin-win32-<arch>-<version>.zip`, dove `<arch>` è `x64` o `arm64`. Il programma di installazione installa l'applicazione per tutti gli utenti; non è disponibile un programma di installazione per singolo utente.

3. Annota il checksum **SHA-256** riportato nella pagina accanto al file (usa **Show checksum**): ti servirà per il confronto dopo il trasferimento.

4. Trasferisci il file nell'ambiente isolato dalla rete seguendo la procedura approvata per i supporti fisici.

La stessa pagina offre altri due download, ciascuno con il proprio checksum SHA-256:

| Download | File | Scopo |
| - | - | - |
| **Desktop tunnel CLI** | `Devin-cli-linux-x64-<version>.tar.gz`, `Devin-cli-linux-arm64-<version>.tar.gz` | Il tunnel a riga di comando autonomo `devin-desktop-airgap`, che consente di connettere Desktop a un host remoto tramite SSH. Installalo sulla macchina remota, non sulla workstation. |
| **Remote extension host** | `devin-reh-linux-<arch>-<version>.tar.gz`, `devin-reh-darwin-<arch>-<version>.tar.gz` | Il componente server che Desktop installa sulle destinazioni SSH. Rendilo disponibile per gli host che non possono scaricarlo autonomamente. |

La CLI dell'*agente* Devin (`devin`) non fa parte di questi download: è inclusa in ogni package di Desktop (vedi [Passaggio 5](#step-5-locate-the-bundled-cli)).

## Passaggio 2: Verificare il checksum

Sull'host di destinazione (o prima di trasferire il file oltre l'air gap), calcola lo SHA-256 del file scaricato e confrontalo con il valore indicato nel portale.

**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
```

Il valore `Hash` deve corrispondere al checksum riportato nella pagina del portale. Poiché `Get-FileHash` lo restituisce in maiuscolo, confrontali senza distinguere tra maiuscole e minuscole.

La prima colonna deve corrispondere esattamente al checksum riportato nella pagina del portale. In caso contrario, elimina il file e scaricalo di nuovo.

## Passaggio 3: Installazione

**macOS**

1. Apri il file `.dmg` e trascina **Devin - Airgap** in `/Applications`.
2. Prima del primo avvio, verifica la firma del codice e la notarizzazione:

   ```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
   ```

   Se la firma è integra, `spctl` restituisce `accepted`, mentre `codesign --verify` non produce alcun output e termina con codice `0`. Un output `rejected` o `code object is not signed at all` indica che il bundle è stato alterato durante il trasferimento: eliminalo e ricomincia dal Passaggio 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
```

Per le build air-gapped non è disponibile alcun repository apt o yum: installa e aggiorna direttamente dai file dei package.

**Linux (.tar.gz)**

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

Il launcher si trova in `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows (programma di installazione)**

1. Prima di eseguire il programma di installazione, verificane la firma Authenticode:

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

   `Status` deve essere `Valid` e il certificato del firmatario deve essere rilasciato a `Exafunction, Inc.` Se è installato Windows SDK, puoi eseguire la stessa verifica con `signtool verify /pa .\DevinSetup-x64-<version>.exe`. Qualsiasi altro stato indica che il file è stato alterato durante il trasferimento: eliminalo e ricomincia dal Passaggio 1.
2. Esegui `DevinSetup-x64-<version>.exe` come amministratore. Il programma di installazione viene eseguito con privilegi elevati e installa **Devin - Airgap** per tutti gli utenti in `C:\Program Files\Devin Airgap\`.

Il programma di installazione non crea né protegge la cartella di configurazione: dovrai farlo nel [Passaggio 4](#windows-lock-down-the-configuration-folder). Nell'elenco delle app da disinstallare di Windows, la voce si chiama **Devin Airgap**.

**Windows (.zip)**

Estrai `Devin-win32-x64-<version>.zip` in una cartella a tua scelta ed esegui Desktop da lì; non viene installato nient'altro. Verifica la firma Authenticode degli eseguibili estratti con `Get-AuthenticodeSignature`, come descritto per il programma di installazione: `Status` deve essere `Valid` e il firmatario deve essere `Exafunction, Inc.`

La protezione della cartella descritta nel [Passaggio 4](#windows-lock-down-the-configuration-folder) vale anche per le installazioni da zip.

Su Linux, la verifica consiste nel confronto SHA-256 descritto nel Passaggio 2: i package non sono accompagnati da un file di firma separato.

## Passaggio 4: Posizionare il file di licenza e il file dei modelli

Sia la CLI standalone sia l'agente integrato in Desktop leggono gli stessi due file. Salvali nei percorsi predefiniti, così non dovrai impostare alcuna variabile d'ambiente:

| File | Percorso predefinito | Override |
| - | - | - |
| Licenza | `/etc/devin/license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| File dei modelli | `/etc/devin/models.json` | `DEVIN_MODELS_FILE` |

Su Windows la directory predefinita è `C:\ProgramData\Devin\`; le variabili di override restano le stesse:

| File | Percorso predefinito (Windows) | Override |
| - | - | - |
| Licenza | `C:\ProgramData\Devin\license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| File dei modelli | `C:\ProgramData\Devin\models.json` | `DEVIN_MODELS_FILE` |

### Windows: proteggere la cartella di configurazione

Su Windows questo passaggio è obbligatorio sia con il programma di installazione sia con il file zip, e il programma di installazione non lo esegue al posto tuo. Per impostazione predefinita, gli utenti standard possono creare file in una nuova cartella in `C:\ProgramData`: senza questa protezione, quindi, un utente potrebbe creare `models.json` (o il file di licenza o di autenticazione) prima di te e mantenerne il controllo.

**Prima di inserire qualsiasi file**, da una sessione PowerShell con privilegi elevati, crea la cartella e limitane l'accesso in modo che SYSTEM e Administrators abbiano il controllo completo e gli utenti standard abbiano solo l'accesso in lettura:

```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)"
```

Se `C:\ProgramData\Devin\` esisteva già, i comandi precedenti non bastano: tutto ciò che un utente standard vi ha creato in precedenza resta di proprietà di quell'utente, e qualsiasi autorizzazione concessa esplicitamente sulla cartella a un altro utente o gruppo rimane in vigore. Dopo i comandi precedenti, esegui anche i seguenti, in quest'ordine. Questi comandi assegnano la proprietà della cartella e del suo contenuto al gruppo Administrators, rimuovono tutte le autorizzazioni esplicite dalla cartella, applicano di nuovo il blocco e reimpostano le autorizzazioni sul contenuto in modo che ereditino quelle della cartella:

```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
```

Verifica il risultato. Nessuno dei comandi precedenti deve aver restituito un messaggio di errore per file o cartelle: `/C` fa sì che `icacls` continui anche quando non riesce a modificare un elemento, quindi un errore indica che quell'elemento ha mantenuto il proprietario o le autorizzazioni precedenti. Poi elenca le autorizzazioni della cartella e di tutto il suo contenuto:

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

L'elenco della cartella stessa, `C:\ProgramData\Devin`, deve contenere esattamente tre voci: `NT AUTHORITY\SYSTEM:(OI)(CI)(F)`, `BUILTIN\Administrators:(OI)(CI)(F)` e `BUILTIN\Users:(OI)(CI)(RX)`, nessuna delle quali contrassegnata con `(I)`. Per ogni file e sottocartella al suo interno devono comparire gli stessi tre utenti e gruppi e nessun altro, ciascuno contrassegnato con `(I)` perché ereditato dalla cartella; per un file, le voci sono `NT AUTHORITY\SYSTEM:(I)(F)`, `BUILTIN\Administrators:(I)(F)` e `BUILTIN\Users:(I)(RX)`. Se in qualsiasi punto compare un altro utente o gruppo, se una voce della cartella è contrassegnata con `(I)` o se una voce di un file o di una sottocartella non è contrassegnata con `(I)`, il blocco non è attivo: esegui di nuovo i comandi previsti per una cartella esistente.

Quindi, dalla stessa sessione con privilegi elevati, copia nella cartella la licenza e il file dei modelli.

Ogni voce di modello indica una variabile d'ambiente che contiene la relativa chiave API (`api_key.env`); tale variabile deve essere impostata nell'ambiente del processo che esegue l'agente. Consulta [File dei modelli → Variabili d'ambiente delle chiavi API](/it/federal/air-gapped/models-file#api-key-environment-variables) per sapere come fornirla a Desktop, il cui agente integrato eredita l'ambiente dell'**app Desktop** anziché quello della tua shell.

## Passaggio 5: Individua la CLI inclusa

La CLI dell'agente Devin è integrata in ogni package Desktop ed è compilata dallo stesso commit di rilascio di Desktop, quindi le due versioni restano sempre allineate.

| Piattaforma | Percorso all'interno del 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`, dove `<install root>` è `C:\Program Files\Devin Airgap` se hai usato il programma di installazione, oppure la cartella in cui hai estratto lo zip |

Usa questo binario per i comandi `devin …` di questa guida, oppure aggiungilo al `PATH`. Verifica la versione:

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

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

## Passaggio 6: Esegui la verifica dello stato di salute

Da una shell con lo stesso ambiente in cui verrà eseguito l'agente (in particolare con le variabili delle chiavi API indicate nel tuo file dei modelli), esegui:

```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)
```

Il comando termina con codice `0` solo se nessuna verifica ha esito negativo. Ogni riga `FAIL` riporta un codice di errore, ad esempio `CFG002` o `NET003`: cercalo in [Codici di errore](/it/federal/air-gapped/error-codes) e segui il runbook di [Risoluzione dei problemi](/it/federal/air-gapped/troubleshooting).

## Passaggio 7: Primo avvio

**macOS**

Avvia l'app installata specificandone il percorso esplicito:

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

Evita `open -a "Devin - Airgap"`: questo comando risolve il nome tramite LaunchServices e potrebbe selezionare una copia diversa da quella che hai verificato (ad esempio un `.dmg` montato o un'installazione precedente).

**Linux**

Avvia il launcher installato dal package oppure, per un'installazione da tarball, esegui `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows**

Avvia l'app **Devin - Airgap** installata oppure, per un'installazione da zip, esegui l'applicazione dalla cartella in cui l'hai estratta.

Se la licenza è mancante o non valida, Desktop si apre comunque, ma l'agente incluso non funziona: il pannello della chat mostra l'errore ACP `-32019 license_invalid`. Apri **View → Output → Devin ACP**, cerca la riga `LIC00X` e consulta [Licenza](/it/federal/air-gapped/license#error-codes).

## Passaggi successivi

* Configura l'SSO se la tua distribuzione richiede l'accesso degli utenti: [SSO](/it/federal/air-gapped/sso).
* Aggiungi una CA privata se i tuoi endpoint usano certificati interni: [Rete e certificati](/it/federal/air-gapped/network-and-certificates).
* Scopri dove il prodotto salva il proprio stato e come importare il registro di audit: [Formati su disco](/it/federal/air-gapped/on-disk-formats).


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