--- title: Server locale description: Gestisci il server Docker Twenty locale — avvia, arresta, aggiorna, istanza di test parallela e configurazione manuale dell'SDK. icon: server --- ## 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" { "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" 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" yarn add twenty-sdk twenty-client-sdk ``` Aggiungi lo script a `package.json`: ```json filename="package.json" { "scripts": { "twenty": "twenty" } } ``` Ora puoi eseguire `yarn twenty dev`, `yarn twenty docker:start` e il resto. Non installare `twenty-sdk` globalmente — bloccalo per progetto in modo che ogni app usi la propria versione.