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

# Comment créer votre fichier de configuration squarecloud.app

> Découvrez comment créer votre fichier de configuration Square Cloud

## Qu'est-ce que le fichier de configuration ?

Le fichier de configuration est un fichier qui contient les paramètres de votre application, tels que le fichier principal, la mémoire, la version et d'autres réglages. Ce fichier est utilisé pour configurer et déployer votre application sur la plateforme Square Cloud.

```systemd squarecloud.app theme={null}
MAIN=main_file.js
DISPLAY_NAME=I am the configuration file
MEMORY=512
VERSION=recommended
```

## Créer le fichier de configuration

Créer le fichier de configuration est très simple : il suffit de créer un fichier nommé `squarecloud.app` ou `squarecloud.config` et d'y ajouter les paramètres de configuration.

<Steps>
  <Step title="Choisir l'extension">
    Le fichier de configuration peut avoir deux extensions : **.app** ou **.config**. Vous pouvez utiliser `squarecloud.app` ou `squarecloud.config`, selon votre préférence. Astuce : utilisez **.app** pour aider à promouvoir Square Cloud. 🥰😂
    <Info>Sur **macOS**, nous recommandons d'utiliser l'extension **.config**.</Info>
    <Warning>Remarque : **.app** ou **.config** fait référence à l'**extension du fichier**, et non à son nom.</Warning>
  </Step>

  <Step title="Créer le fichier">
    Créez un fichier avec l'extension sélectionnée et ajoutez-y les paramètres de configuration.
  </Step>
</Steps>

## Paramètres de configuration

Ci-dessous, vous pouvez voir tous les paramètres de configuration disponibles pour votre fichier de configuration.

| Paramètre       | Type    | Modifiable | Limite   | Utilisation                                                                      |
| --------------- | ------- | :--------: | -------- | -------------------------------------------------------------------------------- |
| `MAIN*`         | String  |      ❌     | 32 car.  | Définit le fichier principal de l'application. Ex. : `index.js`, `main.py`, etc. |
| `VERSION*`      | String  |      ❌     | -        | Version du langage (Ex. : `recommended`).                                        |
| `MEMORY*`       | Integer |      ✅     | -        | Quantité de mémoire en mégaoctets.                                               |
| `DISPLAY_NAME*` | String  |      ✅     | 32 car.  | Nom d'affichage de l'application.                                                |
| `RUNTIME`       | String  |      ❌     | -        | L'environnement d'exécution. Ex. : `typescript`, `nodejs`, `go`.                 |
| `DESCRIPTION`   | String  |      ✅     | 280 car. | Description/métadonnées de l'application.                                        |
| `AUTORESTART`   | Boolean |      ✅     | -        | Redémarrage automatique (`true` ou `false`).                                     |
| `START`         | String  |      ✅     | 256 car. | Commande de démarrage personnalisée.                                             |
| `SUBDOMAIN`     | String  |      ✅     | 63 car.  | Sous-domaine du site web (le cas échéant).                                       |

<Info>Les paramètres modifiables (✅) peuvent être modifiés dans le tableau de bord après le déploiement. Les paramètres non modifiables (❌) nécessitent un réenvoi complet de l'application pour être modifiés.</Info>

## Détail des paramètres de configuration

Ci-dessous, vous pouvez voir les paramètres de configuration que vous pouvez utiliser dans votre fichier de configuration.

<Steps>
  <Step title="MAIN [*]" icon="file">
    **Type** : String | **Modifiable** : ❌ | **Limite** : 32 car.

    Définit le fichier principal de l'application.

    ```systemd theme={null}
    MAIN=index.js
    ```

    ```systemd theme={null}
    MAIN=src/loaders/index.js
    ```

    <Info>Lorsque ce paramètre est défini, l'environnement d'exécution sera déduit à partir de l'extension du fichier principal</Info>
    <Tip>Ce réglage est **IGNORÉ** si vous utilisez le paramètre START.</Tip>
  </Step>

  <Step title="MEMORY [*]" icon="memory">
    **Type** : Integer | **Modifiable** : ✅ | **Limite** : Minimum 256 Mo (bot), 512 Mo (site)

    Définit la quantité de mémoire que votre application utilisera.

    ```systemd theme={null}
    MEMORY=256
    ```

    <Info>La valeur doit être spécifiée en mégaoctets (Mo).</Info>
  </Step>

  <Step title="VERSION [*]" icon="arrow-up-9-1">
    **Type** : String | **Modifiable** : ❌ | **Valeurs** : `recommended`, `latest` ou une version spécifique
    <Tip>Nous recommandons d'utiliser `recommended` pour une stabilité optimale.</Tip>

    Définit la version du langage pour votre application.

    ```systemd theme={null}
    VERSION=recommended
    ```

    | Langage            | `recommended` | `latest` |
    | ------------------ | ------------- | -------- |
    | Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
    | Python             | 3.13.13       | 3.14.5   |
    | Java               | JDK 25        | JDK 25   |
    | Elixir             | 1.19.5        | 1.19.5   |
    | Rust               | 1.95.0        | 1.95.0   |
    | Ruby               | 4.0.4         | 4.0.4    |
    | PHP                | 8.5.6         | 8.5.6    |
    | Go                 | 1.26.3        | 1.26.3   |
    | .NET/C#            | 10.0.8        | 10.0.8   |
  </Step>

  <Step title="DISPLAY_NAME [*]" icon="text">
    **Type** : String | **Modifiable** : ✅ | **Limite** : 32 car.

    Définit le nom d'affichage de votre application.

    ```systemd theme={null}
    DISPLAY_NAME=Admin BOT
    ```
  </Step>

  <Step title="DESCRIPTION" icon="text">
    **Type** : String | **Modifiable** : ✅ | **Limite** : 280 car.

    Définit la description de votre application.

    ```systemd theme={null}
    DESCRIPTION=This bot is designed to help you with your daily tasks.
    ```
  </Step>

  <Step title="AUTORESTART" icon="rotate">
    **Type** : Boolean | **Modifiable** : ✅ | **Valeurs** : `true`, `false` | **Défaut** : `false`

    Définit si l'application doit redémarrer automatiquement en cas d'échec.

    ```systemd theme={null}
    AUTORESTART=true
    ```
  </Step>

  <Step title="SUBDOMAIN" icon="globe">
    **Type** : String | **Modifiable** : ✅ | **Limite** : 63 car. | **Défaut** : `undefined`

    Définit le sous-domaine de votre site (applications web uniquement).

    ```systemd theme={null}
    SUBDOMAIN=mysite
    ```

    <Note>L'URL finale sera : `mysite.squareweb.app`</Note>
  </Step>

  <Step title="RUNTIME" icon="server">
    **Type** : String | **Modifiable** : ❌

    Définit manuellement un environnement d'exécution.

    ```systemd theme={null}
    RUNTIME=nodejs
    ```

    Consultez les valeurs et environnements acceptés ci-dessous.

    | Environnement | RUNTIME                  |
    | ------------- | ------------------------ |
    | Nodejs        | `nodejs`, `javascript`   |
    | TypeScript    | `typescript`             |
    | Python        | `python`                 |
    | C#/Dotnet     | `c#`, `dotnet`, `csharp` |
    | Elixir        | `elixir`                 |
    | Java          | `java`                   |
    | Rust          | `rust`                   |
    | Ruby          | `ruby`, `rb`             |
    | PHP           | `php`                    |
    | Golang        | `go`, `golang`           |
    | HTML/CSS      | `static`, `html`         |

    <Warning>Si vous définissez ce paramètre, vous n'avez pas besoin de définir MAIN ; à la place, définissez une commande START personnalisée.</Warning>
  </Step>

  <Step title="START" icon="play">
    **Type** : String | **Modifiable** : ✅ | **Limite** : 256 car. | **Défaut** : `undefined`

    Définit une commande de démarrage personnalisée.

    ```systemd theme={null}
    START=npm run start
    ```

    <Warning>Ce paramètre **remplace** le comportement par défaut de MAIN.</Warning>
  </Step>
</Steps>

## Exemples de configuration pour les bots

Voici quelques exemples de configuration pour les bots :

```systemd theme={null}
# Required parameters.
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
```

```systemd theme={null}
# Example with all parameters.
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
DESCRIPTION=This bot was created to help with your daily tasks.
START=npm run start
AUTORESTART=true
```

## Exemples de configuration pour les sites

Voici quelques exemples de configuration pour les sites web :

<Info>L'URL du site sera : `mysite.squareweb.app`</Info>

```systemd theme={null}
# Example with all parameters.
MAIN=index.js
MEMORY=1024
VERSION=recommended
DISPLAY_NAME=My site
DESCRIPTION=My site is really cool!
SUBDOMAIN=mysite
START=npm run build && npm run start
AUTORESTART=true
```

<Info>`next.config.js` en tant que MAIN sert uniquement à ce que le système reconnaisse le projet comme un projet JavaScript ou TypeScript (un autre fichier .ts/.tsx)</Info>

```systemd theme={null}
# Example for a Next.js site.
MAIN=next.config.js
MEMORY=2048
VERSION=recommended
DISPLAY_NAME=Next.js site
DESCRIPTION=This site was built with Next.js.
SUBDOMAIN=nextjs
START=npm run build && npm run start
AUTORESTART=true
```
