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

# Server locale

> Gestisci il server Docker Twenty locale — avvia, arresta, aggiorna, istanza di test parallela e configurazione manuale dell'SDK.

## Gestire il server locale

Usa `yarn twenty docker:*` per controllare il container Twenty locale:

| Comando                                | Cosa fa                                            |
| -------------------------------------- | -------------------------------------------------- |
| `yarn twenty docker:start`             | Avvia il server (scarica l'immagine se necessario) |
| `yarn twenty docker:start 2.2.0`       | Avvia una versione specifica del server            |
| `yarn twenty docker:start --port 3030` | Avvia su una porta personalizzata                  |
| `yarn twenty docker:stop`              | Arresta il server (conserva i dati)                |
| `yarn twenty docker:status`            | Mostra URL, versione e credenziali di accesso      |
| `yarn twenty docker:logs`              | Trasmetti in streaming i log del server            |
| `yarn twenty docker:reset`             | Cancella i dati e riparti da zero                  |
| `yarn twenty docker:upgrade`           | Scarica l'ultima immagine `twenty-app-dev`         |
| `yarn twenty docker:upgrade 2.2.0`     | Aggiorna a una versione specifica                  |

I dati persistono tra i riavvii in due volumi Docker (`twenty-app-dev-data` per PostgreSQL, `twenty-app-dev-storage` per i file). Usa `reset` per cancellare tutto.

## Blocco della versione del server

Quando non viene passata alcuna versione, `docker:start` risolve la versione dall'intervallo `engines.twenty` della tua app in `package.json`, lo stesso intervallo rispetto al quale il server effettua la convalida quando la tua app viene installata. Avvia l'immagine `twenty-app-dev` più recente pubblicata che soddisfa l'intervallo, ricorrendo a `latest` quando il campo è assente o nessuna versione pubblicata corrisponde:

```json filename="package.json" theme={null}
{
  "engines": {
    "twenty": ">=2.2.0"
  }
}
```

Passa esplicitamente una versione per ignorare l'intervallo per una singola esecuzione: `yarn twenty docker:start 2.3.0`. Se un container esiste già con una versione diversa, `docker:start` lo aggiorna sul posto (ricreando il container ma preservando i volumi dei tuoi dati).

## Aggiornamento dell'immagine del server

`yarn twenty docker:upgrade` scarica l'ultima immagine, confronta i digest e ricrea il container solo se è cambiato qualcosa. I volumi vengono preservati — viene sostituito solo il container. Se è stata scaricata una nuova immagine e il container era in esecuzione, l'upgrade avvia automaticamente un nuovo container; esegui poi `yarn twenty docker:start` per attendere che diventi operativo.

```bash filename="Terminal" theme={null}
yarn twenty docker:upgrade            # Latest
yarn twenty docker:upgrade 2.2.0      # Specific version
```

Verifica la versione in esecuzione con `yarn twenty docker:status` (mostra `APP_VERSION` incorporata nel container).

## Esecuzione di un'istanza di test parallela

Passa `--test` a qualsiasi comando `docker:*` per gestire una seconda istanza completamente isolata — utile per test di integrazione o per sperimentare senza toccare i tuoi dati di sviluppo principali:

| Comando                             | Cosa fa                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------ |
| `yarn twenty docker:start --test`   | Avvia l'istanza di test (per impostazione predefinita usa la porta 2021) |
| `yarn twenty docker:stop --test`    | Arrestala                                                                |
| `yarn twenty docker:status --test`  | Mostra il suo stato                                                      |
| `yarn twenty docker:logs --test`    | Trasmetti in streaming i suoi log                                        |
| `yarn twenty docker:reset --test`   | Cancella i suoi dati                                                     |
| `yarn twenty docker:upgrade --test` | Aggiorna la sua immagine                                                 |

L'istanza di test ha il proprio container (`twenty-app-dev-test`), i propri volumi (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) e la propria configurazione — viene eseguita insieme alla tua istanza principale senza conflitti. Combina `--test` con `--port` per sovrascrivere 2021.

## Configurazione manuale (senza lo scaffolder)

Salta lo strumento di scaffolding se stai aggiungendo l'SDK a un progetto esistente:

```bash filename="Terminal" theme={null}
yarn add twenty-sdk twenty-client-sdk
```

Aggiungi lo script a `package.json`:

```json filename="package.json" theme={null}
{
  "scripts": {
    "twenty": "twenty"
  }
}
```

Ora puoi eseguire `yarn twenty dev`, `yarn twenty docker:start` e il resto.

<Note>
  Non installare `twenty-sdk` globalmente — bloccalo per progetto in modo che ogni app usi la propria versione.
</Note>
