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

# Premiers pas sur Square Cloud avec Node.js

> Apprenez à démarrer sur Square Cloud avec Node.js

## 🚀 Introduction

* Avant de commencer, assurez-vous que Node.js et npm sont installés sur votre système. Si ce n'est pas encore le cas, vous pouvez les télécharger depuis le [site officiel de Node.js](https://nodejs.org/).
* Ensuite, vous devrez créer un compte sur Square Cloud, ce qui peut se faire via la [page de connexion](https://squarecloud.app/fr/signup). Vous pouvez utiliser votre e-mail, GitHub, ou les deux pour créer le compte.
* Enfin, vous devez disposer d'un plan payant actif sur votre compte. Vous pouvez consulter nos plans et en acheter un selon vos besoins [ici](https://squarecloud.app/fr/pricing).

## ⚙️ Configuration du fichier squarecloud.app

<Note>
  Si vous téléversez votre application via le site Web de Square Cloud, vous pouvez ignorer cette section. Le site crée automatiquement le fichier de configuration `squarecloud.app` pour vous.
</Note>

<Card title="En savoir plus : comment créer le fichier de configuration pour Square Cloud." icon="link" href="https://docs.squarecloud.app/fr/getting-started/config-file">
  Le fichier squarecloud.app est un fichier de configuration qui sera utilisé pour
  configurer votre application ; il servira à définir le nom, la description,
  la version, le fichier principal, entre autres choses.
</Card>

## 📄 Fichiers requis

<Tabs>
  <Tab title="JavaScript">
    * Si le champ `START` n'est pas défini dans le fichier de configuration, Square Cloud exécutera par défaut `node` avec des options d'optimisation et des paramètres spécifiques. Si le champ `START` est défini, la valeur qu'il contient sera exécutée directement. Pour plus d'informations sur les paramètres du fichier de configuration, consultez les [paramètres de configuration](https://docs.squarecloud.app/fr/getting-started/config-file#configuration-parameters).
  </Tab>

  <Tab title="TypeScript">
    * Si le champ `START` n'est pas défini dans le fichier de configuration, Square Cloud exécutera par défaut `npx tsx MAIN` pour compiler et exécuter le fichier TypeScript principal spécifié dans `MAIN`. Si le champ `START` est défini, la valeur qu'il contient sera exécutée directement. Pour plus d'informations sur les paramètres du fichier de configuration, consultez les [paramètres de configuration](https://docs.squarecloud.app/fr/getting-started/config-file#configuration-parameters).
  </Tab>
</Tabs>

* Si le dossier `node_modules` n'existe pas, Square Cloud exécutera `npm install --no-package-lock --no-audit --no-fund` pour installer les dépendances et nettoyer le dossier `.npm`.

## 🖥️ Préparer le projet

### 📁 Fichiers de configuration essentiels

Lors de la préparation de votre projet Node.js pour le deploy sur Square Cloud, assurez-vous d'inclure le fichier de configuration (`squarecloud.app/.config`) et les fichiers essentiels de votre application dans un fichier zip.

<Warning>Le fichier de configuration (`squarecloud.app/.config`) doit se trouver à la racine du fichier zip. Sinon, Square Cloud ne pourra pas le trouver lors du deploy.</Warning>

#### 🗑️ Fichiers à exclure avant le téléversement

* `node_modules` : Ce dossier n'a pas besoin d'être téléversé, car il sera recréé lors de l'installation en production.
* `package-lock.json` : Ce fichier n'est pas nécessaire, car l'environnement de production installera les dépendances à partir de `package.json`.

### 🤔 Pourquoi exclure ces fichiers ?

Il existe plusieurs raisons d'exclure `node_modules` et `package-lock.json` avant de téléverser votre projet :

1. **Cohérence de l'installation :** Ne pas téléverser `node_modules` garantit que les dépendances sont installées par l'environnement de production, ce qui donne un build cohérent et exempt des divergences du système local.

2. **Installations à jour :** L'environnement de production installera les dernières versions compatibles des dépendances listées dans `package.json`, offrant un démarrage propre à votre application.

3. **Réduction de la taille du téléversement :** Ne pas inclure ces dossiers réduit la taille du fichier téléversé, ce qui accélère le processus de téléversement et rend le deploy plus efficace.

En procédant ainsi, vous vous assurez que votre application Node.js est préparée de manière optimale pour l'hébergement sur Square Cloud.

### 📄 Fichiers requis

Trois fichiers sont nécessaires pour héberger votre projet Node :

* [squarecloud.app/.config](https://docs.squarecloud.app/fr/getting-started/config-file)
* mainFile.js/.ts (Exemple de fichier principal)
* [package.json](./how-to-create-your-package-json) (Fichier de dépendances)

<Note>
  Square Cloud prend en charge `TypeScript` nativement, exécutant votre projet via
  ts-node, mais il est toujours recommandé de compiler en `JavaScript`, car nous sommes
  une plateforme de production.
</Note>

## 💡 Dépannage

<AccordionGroup>
  <Accordion title="Le fichier principal est invalide ou corrompu" icon="file" iconType="solid">
    Cette erreur se produit lorsque le fichier défini comme « main » pour votre application dans le
    fichier de configuration n'existe pas, est mal écrit, ou que le chemin
    est incorrect. Si votre fichier principal se trouve dans un dossier, par
    exemple, vous devez spécifier `folder/file.js`.
  </Accordion>

  <Accordion title="Mémoire insuffisante" icon="memory" iconType="solid">
    La quantité minimale de RAM requise pour héberger un bot est de 256 Mo et pour
    un site/API de 512 Mo. Cependant, selon la taille et la complexité de
    votre application, il peut être conseillé d'allouer une plus grande quantité de RAM pour
    éviter que votre application ne manque de mémoire et ne plante.
  </Accordion>
</AccordionGroup>

## 📤 Comment héberger votre projet

Maintenant que vous avez préparé tous les fichiers de votre projet Node.js, l'étape suivante consiste à les téléverser sur Square Cloud et à mettre votre application en ligne. Il existe plusieurs façons de téléverser, mais nous en couvrirons deux : via le Dashboard ou via la CLI.

### Via le tableau de bord

<Steps>
  <Step title="Accéder à la page d'upload">
    Accédez à la [page d'upload](https://squarecloud.app/fr/dashboard/new) et téléversez le fichier zip de votre projet.
  </Step>

  <Step title="Configurer votre environnement">
    Après avoir téléversé votre zip, vous devrez configurer le nom, le fichier principal ou l'environnement d'exécution ainsi que d'autres paramètres de votre projet.\
    Si vous téléversez un projet web, veillez à sélectionner « Publication Web » et à définir un sous-domaine pour votre projet.
  </Step>

  <Step title="Déployer votre projet">
    Enfin, cliquez sur le bouton « Deploy » pour héberger votre projet sur Square Cloud.\
    Une fois le déploiement effectué, vous pouvez suivre l'état et les logs de votre projet depuis le tableau de bord.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Téléversement d'une application vers Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via la CLI

Pour utiliser cette méthode, vous devez créer un fichier de configuration nommé `squarecloud.app` à la racine de votre projet. Ce fichier contiendra la configuration nécessaire à votre projet.

<Card title="En savoir plus : comment créer le fichier de configuration pour Square Cloud." icon="link" href="/fr/getting-started/config-file">
  Le fichier squarecloud.app est un fichier de configuration qui servira à configurer votre application ; il sera utilisé pour définir votre environnement.
</Card>

<Steps>
  <Step title="Installer la CLI">
    Tout d'abord, vous devez avoir la CLI installée dans votre environnement. Si ce n'est pas encore le cas, exécutez la commande suivante dans votre terminal :

    ```
    npm install -g @squarecloud/cli
    ```

    Si vous l'avez déjà, nous vous recommandons de la mettre à jour. Pour cela, exécutez la commande suivante dans votre terminal :

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS et WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="S'authentifier">
    Maintenant, pour vous authentifier et utiliser les autres commandes de la CLI, vous trouverez votre clé d'autorisation [ici](https://squarecloud.app/fr/account/security) en cliquant sur « Request API Key ». Après avoir obtenu votre clé d'autorisation, exécutez la commande suivante :

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Téléverser votre projet">
    Enfin, pour déployer votre application sur Square Cloud à l'aide de la CLI, vous devez exécuter la commande suivante :

    ```bash theme={null}
    squarecloud upload 
    ```

    Ou si vous avez créé le zip manuellement, vous pouvez utiliser :

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## Contactez-nous

Si vous rencontrez toujours des **difficultés techniques**, notre **équipe de support spécialisée** est disponible pour vous aider. [**Contactez-nous**](https://squarecloud.app/fr/support) et nous serons ravis de vous aider à résoudre tout problème.
