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

# Caricare e aggiornare app dalla CLI

> Pubblica una cartella come nuova app Square Cloud con squarecloud upload, invia le modifiche con squarecloud commit e controlla lo zip con squarecloud zip.

* **`upload`** crea una **nuova** applicazione, con un nuovo ID.
* **`commit`** invia file a un'applicazione che **esiste già** e ne mantiene ID, dominio e impostazioni.
* **`zip`** crea lo stesso zip in locale, senza inviarlo, così puoi controllare cosa contiene.

`upload` e `commit` esistono anche sotto `squarecloud app` (`squarecloud app upload`, `squarecloud app commit`). Sei alle prime armi? Parti dalla [Guida rapida](/it/cli-reference/quickstart).

## Cosa finisce nello zip

`upload`, `commit` e `zip` comprimono la cartella corrente ed escludono ciò che elenca [`squarecloud.ignore`](/it/getting-started/squarecloud-ignore), nella radice del progetto. Il file usa la sintassi di `.gitignore` ed è lo stesso che legge l'[estensione per VS Code](/it/vscode-extension/features#regole-di-esclusione).

* **Sempre esclusi per primi:** `node_modules`, `.git`, `.github`, `.vscode`, `package-lock.json`, `pnpm-lock.yaml` e `yarn.lock`. Le dipendenze vengono installate sulla piattaforma a partire dal tuo manifest. Per inviare un lockfile perché ti servono versioni bloccate, aggiungi una regola `!`, come `!package-lock.json`.
* **Link:** un link simbolico a un file viene compresso come quel file; i link a cartelle e i link non validi vengono saltati con un avviso su stderr.
* **I vecchi nomi del file** (`.squareignore`, `.squarecloudignore`, `square.ignore`) vengono ancora letti quando manca `squarecloud.ignore`, con un avviso che invita a rinominarlo.

## `squarecloud upload`

```bash Utilizzo theme={"system"}
squarecloud upload [--file <path>] [--json]
```

Comprime la cartella corrente e crea da essa una nuova applicazione. La cartella deve contenere un file [`squarecloud.app` o `squarecloud.config`](/it/getting-started/config-file).

| Flag | Descrizione |
| - | - |
| `--file <path>` | Carica uno zip che hai già invece di comprimere la cartella corrente. Funzionano sia i percorsi relativi sia quelli assoluti. |

```bash theme={"system"}
squarecloud upload
# Comprime la cartella corrente e ne effettua il deploy come nuova applicazione.
```

```bash theme={"system"}
squarecloud upload --file ./build/my-app.zip
# Carica uno zip esistente.
```

```bash Output theme={"system"}
Compressing the current directory.
Uploading the zip file to Square Cloud.

✓ Application uploaded to Square Cloud!
  Open it at https://squarecloud.app/dashboard/applications/<appID>
```

Dopo un upload riuscito, la CLI scrive `ID=<appID>` nel file di configurazione della cartella corrente, così i comandi successivi sanno a quale app ti riferisci. Vedi [dove viene salvato l'ID dell'app](/it/cli-reference/quickstart#dove-viene-salvato-lid-dellapp).

Con `--json`, stdout contiene solo l'applicazione creata (ID, nome, descrizione, dominio, cluster, memoria, CPU e linguaggio) in formato JSON; i messaggi di avanzamento vanno su stderr.

## `squarecloud commit`

```bash Utilizzo theme={"system"}
squarecloud commit [appID] [--file <path>] [--path <dir>] [-r]
```

**Alias:** `squarecloud push`, `squarecloud app commit`, `squarecloud app push`

Comprime la cartella corrente e la invia a un'applicazione esistente. L'ID viene preso dall'argomento o dalla riga `ID=` del file di configurazione. A differenza degli altri comandi, `commit` non apre mai un selettore: senza nessuno dei due, si ferma con exit code 1.

| Flag | Descrizione |
| - | - |
| `--file <path>` | Invia un solo file invece della cartella corrente. Uno zip viene estratto nell'applicazione; qualsiasi altro file viene scritto con il proprio nome. Funzionano sia i percorsi relativi sia quelli assoluti. |
| `--path <dir>` | Esegue il commit in questa cartella dell'applicazione invece che nella radice. |
| `-r`, `--restart` | Riavvia l'applicazione dopo il commit. |

```bash theme={"system"}
squarecloud commit
# Invia la cartella corrente all'app della riga ID=.
```

```bash theme={"system"}
squarecloud commit <appID> --restart
# Invia la cartella corrente a un'app specifica, poi la riavvia.
```

```bash theme={"system"}
squarecloud commit --file ./config.json --path settings
# Invia un solo file nella cartella settings dell'app.
```

```bash Output theme={"system"}
Compressing the current directory.
Committing to your application (<appID>)...
Committed to your application.
```

I commit di grandi dimensioni non vengono interrotti da un timeout. `commit` non ha un output JSON.

## `squarecloud zip`

```bash Utilizzo theme={"system"}
squarecloud zip
```

Comprime la cartella corrente nello stesso modo di `upload` e `commit` e la salva come `<folder name>.zip` dentro quella cartella, sostituendo un file esistente con lo stesso nome. Non richiede il login.

```bash Output theme={"system"}
✓ Your project was zipped to <folder name>
```

Se lo zip non può essere scritto, la CLI stampa `Couldn't zip your application.` con il motivo; se un vecchio `<folder name>.zip` non può essere eliminato, lo segnala. In entrambi i casi termina con codice 1.

## Correlati

| Comando | API | SDK JavaScript | VS Code |
| - | - | - | - |
| `upload` | [`POST /v2/apps`](/it/api-reference/endpoint/apps/upload) | [`api.apps.create()`](/it/sdks/js/commit_and_upload) | [Carica nuova applicazione](/it/vscode-extension/features#carica-una-nuova-applicazione) |
| `commit` | [`POST /v2/apps/{app_id}/commit`](/it/api-reference/endpoint/apps/commit) | [`api.apps.commit()`](/it/sdks/js/commit_and_upload) | [Commit](/it/vscode-extension/features#esegui-il-commit-delle-modifiche-su-unapplicazione-esistente) |

Per effettuare invece il deploy a ogni push, vedi [Deploy da GitHub](/it/cli-reference/github-deploys).
