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

# Téléverser et mettre à jour des apps via la CLI

> Déployez un dossier comme nouvelle app avec squarecloud upload, envoyez vos modifications avec squarecloud commit et vérifiez le zip avec squarecloud zip.

* **`upload`** crée une **nouvelle** application, avec un nouvel ID.
* **`commit`** envoie des fichiers vers une application qui **existe déjà** et conserve son ID, son domaine et ses paramètres.
* **`zip`** construit le même zip en local, sans l'envoyer, pour que vous puissiez vérifier ce qu'il contient.

`upload` et `commit` existent aussi sous `squarecloud app` (`squarecloud app upload`, `squarecloud app commit`). Vous débutez ? Commencez par le [Démarrage rapide](/fr/cli-reference/quickstart).

## Ce qui entre dans le zip

`upload`, `commit` et `zip` compressent le dossier courant et laissent de côté ce que liste le fichier [`squarecloud.ignore`](/fr/getting-started/squarecloud-ignore) à la racine du projet. Il utilise la syntaxe de `.gitignore` et c'est le même fichier que lit l'[extension VS Code](/fr/vscode-extension/features#règles-dexclusion).

* **Toujours exclus en premier :** `node_modules`, `.git`, `.github`, `.vscode`, `package-lock.json`, `pnpm-lock.yaml` et `yarn.lock`. Les dépendances sont installées sur la plateforme à partir de votre manifeste. Pour envoyer un fichier de verrouillage parce que vous avez besoin de versions figées, ajoutez une règle `!`, comme `!package-lock.json`.
* **Liens :** un lien symbolique vers un fichier est compressé comme ce fichier ; les liens vers des dossiers et les liens cassés sont ignorés, avec une note sur stderr.
* **Anciens noms de fichier** (`.squareignore`, `.squarecloudignore`, `square.ignore`) : ils sont encore lus lorsque `squarecloud.ignore` est absent, avec un avertissement invitant à renommer le fichier.

## `squarecloud upload`

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

Compresse le dossier courant et crée une nouvelle application à partir de celui-ci. Le dossier doit contenir un fichier [`squarecloud.app` ou `squarecloud.config`](/fr/getting-started/config-file).

| Option | Description |
| - | - |
| `--file <path>` | Téléverse un zip que vous avez déjà au lieu de compresser le dossier courant. Les chemins relatifs et absolus fonctionnent. |

```bash theme={"system"}
squarecloud upload
# Compresse le dossier courant et le déploie comme nouvelle application.
```

```bash theme={"system"}
squarecloud upload --file ./build/my-app.zip
# Téléverse un zip existant.
```

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

Après un téléversement réussi, la CLI écrit `ID=<appID>` dans le fichier de configuration du dossier courant, pour que les commandes suivantes sachent de quelle app il s'agit. Consultez [où l'ID est enregistré](/fr/cli-reference/quickstart#où-lid-est-enregistré).

Avec `--json`, stdout ne contient que l'application créée (ID, nom, description, domaine, cluster, mémoire, CPU et langage) au format JSON ; les messages de progression vont vers stderr.

## `squarecloud commit`

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

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

Compresse le dossier courant et l'envoie vers une application existante. L'ID provient de l'argument ou de la ligne `ID=` de votre fichier de configuration. Contrairement aux autres commandes, `commit` n'ouvre jamais de sélecteur : sans l'un ni l'autre, elle s'arrête avec le code de sortie 1.

| Option | Description |
| - | - |
| `--file <path>` | Envoie un seul fichier au lieu du dossier courant. Un zip est extrait dans l'application ; tout autre fichier est écrit sous son propre nom. Les chemins relatifs et absolus fonctionnent. |
| `--path <dir>` | Effectue le commit dans ce dossier de l'application au lieu de sa racine. |
| `-r`, `--restart` | Redémarre l'application après le commit. |

```bash theme={"system"}
squarecloud commit
# Envoie le dossier courant vers l'app de la ligne ID=.
```

```bash theme={"system"}
squarecloud commit <appID> --restart
# Envoie le dossier courant vers une app précise, puis la redémarre.
```

```bash theme={"system"}
squarecloud commit --file ./config.json --path settings
# Envoie un fichier dans le dossier settings de l'app.
```

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

Les commits volumineux ne sont pas interrompus par un délai d'expiration. `commit` n'a pas de sortie JSON.

## `squarecloud zip`

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

Compresse le dossier courant de la même manière que `upload` et `commit` et l'enregistre sous `<folder name>.zip` dans ce dossier, en remplaçant un fichier existant du même nom. Aucune connexion n'est nécessaire.

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

Si le zip ne peut pas être écrit, la CLI affiche `Couldn't zip your application.` avec la raison ; si un ancien `<folder name>.zip` ne peut pas être supprimé, elle l'indique. Dans les deux cas, la commande se termine avec le code 1.

## Voir aussi

| Commande | API | SDK JavaScript | VS Code |
| - | - | - | - |
| `upload` | [`POST /v2/apps`](/fr/api-reference/endpoint/apps/upload) | [`api.apps.create()`](/fr/sdks/js/commit_and_upload) | [Téléverser une nouvelle application](/fr/vscode-extension/features#téléverser-une-nouvelle-application) |
| `commit` | [`POST /v2/apps/{app_id}/commit`](/fr/api-reference/endpoint/apps/commit) | [`api.apps.commit()`](/fr/sdks/js/commit_and_upload) | [Commit](/fr/vscode-extension/features#faire-un-commit-sur-une-application-existante) |

Pour déployer à chaque push, consultez plutôt [Déploiements GitHub](/fr/cli-reference/github-deploys).
