> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/docs.edgegap.com-fr/unity.md).

# Unity - Premiers pas

Apprenez en faisant et déployez votre premier serveur dédié sur Edgegap. À la fin de ce guide, vous aurez déployé un serveur dédié avec Edgegap sans aucun frais.

{% embed url="<https://youtu.be/4FR04V4YEUk>" %}

## ✔️ Préparation

Avant de commencer, assurez-vous de [créer un compte gratuit chez Edgegap](https://app.edgegap.com/auth/register) (aucune carte de crédit requise).

**Configurez quelques éléments essentiels sur votre machine de développement :**

<details>

<summary>Installer les modules de prise en charge de compilation Linux pour Unity</summary>

* Utilisez Unity Hub pour sélectionner l'onglet **Installe**, accéder à **Paramètres** et **Ajouter des modules** pour chaque version d'Unity que vous avez l'intention d'utiliser avec la plateforme Edgegap :

<figure><img src="/files/0dd9a895a55264bdf58a3bd9fc6b1bf8c61f4cdc" alt=""><figcaption></figcaption></figure>

* Faites défiler vers le bas pour sélectionner et installer les modules Unity suivants :
  * **Prise en charge de compilation Linux (IL2CPP),**
    * **Prise en charge de compilation Linux (Mono),**
    * **Prise en charge de compilation pour serveur dédié Linux**

<figure><img src="/files/06f95feb00dabcdbdb79c8f659b3d0980891bdbb" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><a href="https://www.docker.com/products/docker-desktop/">Installez Docker Desktop (ou Docker CLI)</a></summary>

* [Installez Docker Desktop à partir de la source officielle](https://www.docker.com/products/docker-desktop/) (aucun compte requis).
* Redémarrez votre ordinateur après avoir terminé l'installation.

</details>

<details>

<summary><a href="https://github.com/edgegap/edgegap-unity-plugin">Installer le plugin Quickstart des serveurs dédiés Unity d’Edgegap</a></summary>

Veuillez vous référer à [le dépôt officiel des plugins](https://github.com/edgegap/edgegap-unity-plugin) pour des instructions détaillées sur l’installation.

{% embed url="<https://youtu.be/3a5veDyxpoE>" %}

</details>

{% hint style="info" %}
**Vous êtes à l’aise avec les builds de votre serveur ?** Passer à [#customize-server-image](#customize-server-image "mention") ou [Fonctionnalités avancées](/docs.edgegap.com-fr/learn/advanced-features.md) pour en savoir plus.
{% endhint %}

## ⚙️ 1. Connecter le compte

☑️ Connectez-vous et vérifiez qu’il n’y a pas de nouvelles erreurs dans votre console Unity liées au plugin d’Edgegap.

✅ Vous pouvez maintenant passer à l’étape suivante.

<details>

<summary>Dépannage et FAQ</summary>

`!Success: 400 BAD REQUEST - POST | https://api.edgegap.com/v1/wizard/init-quick-start - {"message": "Le navigateur (ou le proxy) a envoyé une requête que ce serveur n’a pas pu comprendre."}`

* Si vous avez installé en copiant le fichier ZIP ou utilisé un projet d’exemple avec une copie du plugin installée de cette manière, vous devrez installer manuellement les dépendances du package, y compris la bibliothèque Newtonsoft JSON, voir [le dépôt officiel du plugin](https://github.com/edgegap/edgegap-unity-plugin/tree/main?tab=readme-ov-file#instructions-1).
* Veuillez nous contacter sur [Discord de la communauté](https://discord.gg/NgCnkHbsGp) pour obtenir de l’aide si ce n’est pas le cas.

</details>

## 🔧 2. Construire le serveur de jeu

Que vous utilisiez une machine Windows, Mac ou Linux, vous devrez **compiler votre serveur pour l’exécution Linux**, car la plupart des fournisseurs cloud aujourd’hui (y compris Edgegap) fonctionnent sous Linux. Ne vous inquiétez pas, aucune connaissance de Linux n’est requise pour y parvenir avec notre plugin.

☑️ **Vérifiez que vous avez installé les outils de compilation Linux Unity requis.**

<details>

<summary>Installer les modules de prise en charge de compilation Linux pour Unity</summary>

* Utilisez Unity Hub pour sélectionner l'onglet **Installe**, accéder à **Paramètres** et **Ajouter des modules** pour chaque version d'Unity que vous avez l'intention d'utiliser avec la plateforme Edgegap :

<figure><img src="/files/0dd9a895a55264bdf58a3bd9fc6b1bf8c61f4cdc" alt=""><figcaption></figcaption></figure>

* Faites défiler vers le bas pour sélectionner et installer les modules Unity suivants :
  * **Prise en charge de compilation Linux (IL2CPP),**
    * **Prise en charge de compilation Linux (Mono),**
    * **Prise en charge de compilation pour serveur dédié Linux**

<figure><img src="/files/06f95feb00dabcdbdb79c8f659b3d0980891bdbb" alt=""><figcaption></figcaption></figure>

</details>

☑️ Modifiez les paramètres de compilation pour **vous assurer que toutes les scènes de jeu requises sont incluses**.

{% hint style="info" %}
**Utilisateurs avancés de Unity** - modifiez éventuellement [les paramètres de compilation de Unity](https://docs.unity3d.com/Manual/BuildSettings.html). Attention ! Cela peut casser votre compilation.
{% endhint %}

☑️ Optionnel : ajoutez le script spécifique au netcode pour la vérification du port et l’initialisation de l’environnement à votre scène serveur initiale depuis le menu Edgegap Server Hosting (clic droit / :heavy\_plus\_sign: dans votre fenêtre Hierarchy).

<figure><img src="/files/e242caec08e4a1898927f09cf447e78fc04f0fc4" alt="" width="360"><figcaption></figcaption></figure>

{% hint style="info" %}
Une fois l’étape [#id-6.-deploy-to-cloud](#id-6.-deploy-to-cloud "mention")terminée, le script de vérification du port affichera un avertissement si l’adresse ou les ports de votre netcode ne correspondent pas à votre [mappage des ports de version d’application](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#other-parameters-optional) Edgegap.
{% endhint %}

{% hint style="success" %}
Les compilations serveur doivent utiliser l’adresse `0.0.0.0`  et le port `7777`  dans votre transport netcode. Si vous personnalisez votre port, veuillez indiquer le même dans votre [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#port-mapping) une fois que vous [#id-5.-upload-to-edgegap](#id-5.-upload-to-edgegap "mention").
{% endhint %}

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur **compilation du serveur**, attendez la fin du processus et vérifiez qu’il n’y a pas de nouvelles erreurs dans votre console Unity. La réalisation de cette étape fera apparaître un **nouveau dossier dans la racine de votre projet** - `Builds/EdgegapServer/ServerBuild` .

✅ Vous pouvez maintenant passer à l’étape suivante.

<details>

<summary>Dépannage et FAQ</summary>

Unity : les seules cibles autonomes prises en charge sont Windows x64 et OSX avec OpenXR.

* Ouvrez vos Packages et désactivez OpenXR avant de compiler votre serveur.
* Le plugin OpenXR n’est requis que pour les clients et n’est pas compatible avec les compilations de serveurs Linux. En l’excluant de vos compilations serveur, vous ne perdez aucune fonctionnalité.

</details>

## 🐋 3. Conteneuriser le serveur

Travailler en équipe de développeurs signifie partager votre code. Quand les choses tournent mal, la dernière chose que vous voulez entendre est « ça marche sur ma machine ». Les serveurs de jeu doivent fonctionner de manière fiable sur n’importe quelle machine, car les serveurs d’un jeu à succès fonctionneront sur des milliers de machines serveur dans le monde entier.

Pour aider à rendre votre serveur fiable, nous utilisons Docker - un logiciel de virtualisation pour garantir que toutes les dépendances de votre code serveur, jusqu’au niveau du système d’exploitation, seront toujours exactement les mêmes, peu importe comment ou où le serveur est lancé.

{% hint style="info" %}
Nous recommandons de regarder ["Ne jamais installer localement" (vidéo)](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized). **Vous N'AVEZ PAS besoin d'utiliser Dockerhub avec Docker**.  Docker ≠ Dockerhub. Pensez à Docker comme à un moteur de programmation et à Dockerhub comme à son App Store.
{% endhint %}

☑️ Pour l’instant, commencez par cliquer sur le bouton **Valider** pour vous assurer que vous avez terminé [Outils de développement](/docs.edgegap.com-fr/unity/developer-tools.md#usage-requirements).

<details>

<summary><a href="https://www.docker.com/products/docker-desktop/">Installez Docker Desktop (ou Docker CLI)</a></summary>

* [Installez Docker Desktop à partir de la source officielle](https://www.docker.com/products/docker-desktop/) (aucun compte requis).
* Redémarrez votre ordinateur après avoir terminé l'installation.

</details>

☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :

* **le chemin de compilation** est le chemin relatif vers votre artefact de compilation du serveur ; conservons la valeur par défaut pour l’instant.

{% hint style="warning" %}
**Conservez les compilations dans le dossier de votre projet**, Docker n’accepte que des chemins de compilation relatifs à la racine du projet.
{% endhint %}

* **Nom de l’image** est un identifiant unique de votre choix, qui étiquette votre build de serveur avant livraison.
  * En général, cela inclut le nom de votre jeu — par exemple « my-game-server ».
* **Tag de l’image** est un identifiant pointant vers une version spécifique de votre image.
  * Le terme « artifact de build » est parfois utilisé pour désigner une version spécifique de votre image.
  * Les horodatages sont une excellente option pour les tags, par ex. `2024.01.30-16.23.00-UTC` .
* **Chemin vers Dockerfile** peut être utilisé pour personnaliser la recette de vos images.
  * Nous recommandons de conserver le réglage par défaut pour l’instant ; vous pourrez en savoir plus plus tard dans la section [#customize-server-image](#customize-server-image "mention").
* **Paramètres de compilation Docker optionnels** peuvent être utilisés pour donner à Docker des instructions plus précises sur des nuances plus fines.
  * Nous recommandons de conserver le réglage par défaut pour l’instant ; vous pouvez [en savoir plus plus tard dans la documentation Docker](https://docs.docker.com/reference/cli/docker/image/build/#options).

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur **Conteneuriser avec Docker**, attendez la fin du processus et vérifiez qu’il n’y a pas de nouvelles erreurs dans votre console Unity. La réalisation de cette étape fera apparaître un **nouvelle image apparaissant sur votre machine locale**. Vous pouvez le vérifier soit dans Docker Desktop, dans l’onglet Images sous Local (par défaut), soit dans le CLI Docker en exécutant `docker images` .

✅ Vous pouvez maintenant passer à l’étape suivante.

<details>

<summary>Dépannage et FAQ</summary>

`/bin/bash : docker : commande introuvable` , ou `impossible de trouver Packages\com.edgegap.unity-servers-plugin\Editor`

* D’abord, assurez-vous d’avoir terminé [Outils de développement](/docs.edgegap.com-fr/unity/developer-tools.md#usage-requirements).
* Confirmez que vous avez vérifié votre compte Edgegap ; vous devriez avoir reçu un lien de vérification par e-mail.
* Certains paramètres ont peut-être été réinitialisés après la mise à jour de Docker Desktop. Essayez d’aller dans Paramètres / Avancé de Docker Desktop et, pour « Choisir comment configurer l’installation des outils CLI de Docker : », sélectionnez « Système (mot de passe requis) ».

***

`docker build nécessite exactement 1 argument`

* Veuillez vérifier que votre tag d’image ne contient aucun caractère d’espacement (espaces, tabulations). Saisir à nouveau la valeur de votre tag d’image garantira que vous n’avez pas accidentellement copié de tels caractères.

***

`(code HTTP 400) inattendu - format de tag invalide`

* C’est un [problème connu avec la version 4.33 de Docker sur macOS](https://github.com/docker/for-win/issues/14258), veuillez envisager de revenir à la version 4.32 ou de mettre à niveau vers la 4.35.

***

`ERREUR : échec de la résolution : ubuntu:22.04 : échec de la résolution des métadonnées sources pour http://docker.io/library/ubuntu:22.04 : échec de l’autorisation : échec de la récupération du jeton oauth`

* Êtes-vous situé en Chine ? Votre connexion peut être interrompue par le Grand Pare-feu. Essayez d’exécuter `docker pull ubuntu:22.04` manuellement dans votre ligne de commande (ouvrez l’invite de commande en appuyant sur Win+R, puis tapez `cmd` et Entrée).

***

`System.IndexOutOfRangeException : l’indice était hors des limites du tableau.`

* Si vous avez installé notre plugin Quickstart Unity en téléchargeant le ZIP, le cache de votre Unity Editor est peut-être corrompu. Essayez de supprimer votre copie du plugin et de l’installer via l’URL git ou depuis le Unity Asset Store. Vous ne devriez plus avoir besoin du package Newtonsoft.JSON, car il est inclus automatiquement avec les autres sources.

***

La taille de mon image Docker est énorme (plus de 1 Go) / minuscule (moins de 100 Mo), est-ce normal ?

* Cela peut être acceptable dans certains cas, tant que vous pouvez lancer le serveur et vous connecter avec succès (voir [#id-4.-test-your-server-locally](#id-4.-test-your-server-locally "mention")). Si ce n’est pas le cas, envisagez de revoir vos options de compilation, de les rétablir par défaut et d’ajouter progressivement des options pour voir comment elles affectent la taille de votre compilation. Voir aussi [#optimize-server-build-size](#optimize-server-build-size "mention").

***

Je rencontre un autre problème qui n’est mentionné nulle part dans cette documentation.

* D’abord, veuillez essayer [de mettre à jour votre plugin Edgegap](https://github.com/edgegap/edgegap-unity-plugin?tab=readme-ov-file#update-the-plugin-in-unity) car nous avons peut-être publié une correction. Si cela n’aide pas, veuillez nous contacter sur notre [Discord de la communauté](https://discord.gg/NgCnkHbsGp) et nous enquêterons rapidement avec vous.

</details>

## 🧪 4. Tester le serveur localement

Essayons de déployer localement (sur votre machine) et de connecter un client de jeu, pour nous assurer que l'image du serveur fonctionne correctement avant de l'uploader et de la déployer (ce qui peut prendre un certain temps).

☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :

* **Tag de l’image du serveur** de l’étape précédente.
  * Correspond par défaut au dernier tag que vous avez compilé avec le plugin.
* **Paramètres optionnels de docker run** peuvent être fournis pour exposer plusieurs ports, ou pour exécuter votre image sur des machines macOS.
  * Vous pouvez publier plusieurs ports pour votre conteneur si nécessaire, il suffit d’ajouter le paramètre `-p {port interne}/{protocole}` pour chacun, par exemple `-p 8080/tcp -p 7777/udp` pour publier et mapper votre port serveur `8080` vers un port externe aléatoire pour la connexion TCP et le port serveur `7777` vers un port externe aléatoire pour la connexion UDP en même temps.
  * **Trouvez la configuration du port serveur dans vos paramètres Transport ou spécifiques au netcode.**
  * Si vous utilisez une machine avec une architecture ARM (macOS M1, M2, M3, etc.), vous devriez voir ce paramètre optionnel inclus dans vos Paramètres optionnels de compilation Docker : `--platform=linux/amd64` .

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur **Déployer le conteneur local**, attendez la fin du processus et vérifiez qu’il n’y a pas de nouvelles erreurs dans votre console Unity. La réalisation de cette étape fera apparaître un **démarrage d’un nouveau conteneur** sur votre machine de développement.

{% hint style="info" %}
Pour plus de détails, voir Docker Desktop / Conteneurs, ou la commande Docker CLI `docker ps` .
{% endhint %}

☑️ Il est maintenant temps de **connecter votre client de jeu Unity Editor à votre conteneur Docker local** pour vérifier que votre image serveur fonctionne correctement. Trouvez les paramètres client de votre netcode et saisissez :

* `localhost` ou `0.0.0.0` (équivalent dans la plupart des cas) à la place de l’IP du serveur,
* valeur de port externe aléarisée trouvée dans Docker Desktop / Conteneurs / edgegap-server-test.

<figure><img src="/files/8f9a81418e3991c26483524a3b91f910102a5ba3" alt=""><figcaption></figcaption></figure>

☑️ Une fois que vous avez vérifié que vous pouvez vous connecter à votre conteneur de serveur local et jouer sans problème, vous pouvez supprimer le conteneur 🗑️ pour libérer des ressources sur votre machine pour d’autres programmes.

✅ Vous pouvez maintenant passer à l’étape suivante.

<details>

<summary>Dépannage et FAQ</summary>

Je n’arrive pas à me connecter au conteneur Docker local avec mon client de jeu Unity Editor.

* D’abord, assurez-vous que l’état du conteneur est Up et qu’il n’est pas en Restarting ou Exited, ce qui indiquerait une exception à l’exécution. Si votre conteneur ne s’exécute pas, consultez ses journaux via l’onglet Conteneurs de Docker Desktop (cliquez sur votre conteneur) ou en utilisant `docker logs {container_id} --timestamps` via le CLI Docker.
* Ensuite, vérifiez que le réglage du port de votre Network Manager provenant de votre compilation serveur correspond au port publié dans **Paramètres optionnels de docker run**. Si ce n’est pas le cas, essayez de réinitialiser ou de modifier manuellement la valeur de ce champ pour qu’elle corresponde à `{container}` port à votre réglage Network Manager. Trouvez votre protocole dans les paramètres de votre netcode.
* Enfin, confirmez que les paramètres netcode de votre client de jeu Unity Editor utilisent le port publié dans **Paramètres optionnels de docker run** (voir la capture d’écran ci-dessus).

***

`(Segmentation fault) - core dumped`

* Si vous utilisez une machine avec une architecture ARM (macOS M1, M2, M3, etc.), vous devriez voir ce paramètre optionnel inclus dans vos Paramètres optionnels de compilation Docker : `--platform=linux/amd64` . Si ce n’est pas le cas, essayez de réinitialiser la valeur de ce champ.

***

`SceneId 9120233082191360994 introuvable dans SceneObjects.`

* Cela peut signifier que la scène que vous essayez de charger n’a pas été correctement incluse dans la compilation, un problème connu dans les anciennes versions du plugin. Pour y remédier, veuillez essayer de mettre à jour votre version d’intégration netcode ou [de mettre à jour votre plugin Edgegap](https://github.com/edgegap/edgegap-unity-plugin?tab=readme-ov-file#update-the-plugin-in-unity).

***

`http2 : serveur : erreur lors de la lecture du préambule depuis le client //./pipe/docker_engine : le fichier a déjà été fermé`

* C’est un [problème connu avec les anciennes versions de Docker Desktop pour Windows](https://github.com/docker/for-win/issues/13611). Veuillez mettre à jour votre application Docker Desktop et réessayer la conteneurisation.

***

`Erreur Curl 35 : échec de la poignée de main du certificat. Erreur fatale. Code d’erreur UnityTls : 7`

* Cette erreur indique un problème de validation du certificat racine SSL, un problème connu dans les anciennes versions du plugin. Pour y remédier, veuillez essayer [de mettre à jour votre plugin Edgegap](https://github.com/edgegap/edgegap-unity-plugin?tab=readme-ov-file#update-the-plugin-in-unity).

</details>

## ☁️ 5. Envoyer vers Edgegap

Il est temps de mettre votre serveur en ligne ! Maintenant que votre image peut héberger des joueurs avec succès, nous pouvons la téléverser sur Edgegap et commencer à l’exécuter n’importe où dans le monde. Dans ce guide, nous utiliserons [**le registre de conteneurs d’Edgegap**](/docs.edgegap.com-fr/learn/advanced-features/edgegap-container-registry.md) (stockage pour les images).

☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :

* **Nom de l’application** sur Edgegap peut correspondre au nom de votre image ou être personnalisé.
  * Nous avons choisi de copier le nom de votre image pour l’instant.
* **Version de l’application** sur Edgegap peut correspondre à votre tag ou être personnalisé.
  * Les horodatages sont une excellente option pour les noms de version d’application, par ex. `2024.01.30-16.50.20-UTC` .
  * Plusieurs versions d’application peuvent pointer vers le même tag d’image, par exemple `v1.1.0` et `dev` .
  * En savoir plus sur [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md) plus tard.
* **Nom de l’image du serveur** de l’étape [#id-3.-containerize-your-game-server](#id-3.-containerize-your-game-server "mention").
* **Tag de l’image du serveur** de l’étape [#id-3.-containerize-your-game-server](#id-3.-containerize-your-game-server "mention").

{% hint style="success" %}
Trouvez n’importe quel nom et tag d’image stockés sur votre machine dans **Docker Desktop / Images**.
{% endhint %}

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur **Téléverser l’image et créer la version de l’application**, attendez la fin du processus et vérifiez qu’il n’y a pas de nouvelles erreurs dans votre console Unity.

☑️ Vous serez redirigé vers notre [Tableau de bord](https://app.edgegap.com/), où vous pourrez configurer des paramètres optionnels. La réalisation de cette étape entraînera [la création d’une nouvelle version d’application](https://app.edgegap.com/application-management/applications/list), et le marquage et le téléversement de votre [artefact de compilation vers le registre de conteneurs d’Edgegap](https://app.edgegap.com/registry-management/repositories/list).

☑️ Il vous sera maintenant demandé de définir un port pour votre nouvelle version d’application. Assurez-vous de définir la même valeur de port serveur que dans l’étape [#id-4.-test-your-server-locally](#id-4.-test-your-server-locally "mention") depuis vos paramètres Transport ou spécifiques au netcode.

✅ Vous pouvez maintenant passer à l’étape suivante.

<details>

<summary>Dépannage et FAQ</summary>

`refusé : ajout de 756,6 Mio de ressource de stockage, ce qui, une fois mis à jour avec l'utilisation actuelle de 4,3 Gio, dépassera la limite supérieure configurée de 4,7 Gio` , `échec de la validation sur la référence "layer-sha256:--------" : statut inattendu de la requête PUT vers https://registry.edgegap.com/`

* Il semble que vous ayez manqué d'espace de stockage d'images sur [Registre de conteneurs](https://app.edgegap.com/registry-management/repositories/list). Envisagez de supprimer les artefacts de build inutilisés (si vous en avez) ou d'optimiser la taille du build du serveur. Si vous utilisez un Dockerfile personnalisé ou un .dockerignore, vous pourriez copier des fichiers inutiles dans votre image.

***

`Vous avez atteint la limite de votre application de 2` , `Impossible de mettre à jour le tag/version docker : Vous avez atteint la limite de versions de votre application de 2`

* Vous avez atteint les limites de notre offre gratuite, veuillez envisager de mettre à niveau votre compte. Alternativement, vous pouvez supprimer vos ressources existantes via notre [Tableau de bord](https://app.edgegap.com/).

***

Ma nouvelle version d'application n'est pas répertoriée dans le plugin/extension.

* Veuillez vous assurer que vous avez rempli le formulaire de création de version d'application à la dernière étape.

</details>

## 🚀 6. Déployer sur le cloud

Ceci est l'étape finale de ce guide, après laquelle vous disposerez d'un serveur déployé sur le cloud Edgegap, auquel des joueurs du monde entier pourront se connecter.

☑️ **Choisissez une application et une version** de l'étape précédente à déployer.

☑️ Une fois prêt, cliquez sur **Déployer sur le Cloud**, attendez d'atteindre [/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-3.-deployment-ready](https://docs.edgegap.com/docs.edgegap.com-fr/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-3.-deployment-ready "mention"). L'achèvement de cette étape entraînera le démarrage d'un [nouveau déploiement](https://app.edgegap.com/deployment-management/deployments/list) sur votre compte Edgegap.

☑️ Vérifiez qu'il n'y a pas de nouvelles erreurs dans la sortie de la console. Assurez-vous également que vos [Déploiements](/docs.edgegap.com-fr/learn/orchestration/deployments.md#container-logs) n'affichent aucune erreur et que vos [Déploiements](/docs.edgegap.com-fr/learn/orchestration/deployments.md#container-metrics) n'indiquent pas une utilisation des ressources à 100 % (vCPU ou mémoire), sinon de nouvelles connexions de joueurs peuvent être rejetées, ou votre serveur bloqué dans une boucle de redémarrage. Consultez les étapes de dépannage ci-dessous pour résoudre tout problème.

☑️ Nous allons maintenant effectuer le test final et **connecter votre client de jeu Unity Editor à votre déploiement cloud**. Saisissez les détails de connexion du client de jeu depuis le déploiement :

* **Hôte** **URL** pointant vers l’IP du serveur, généralement dans le composant `NetworkManager` .
* **Port externe** mappé au [port d’écoute interne du serveur](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#port-mapping), généralement dans le composant Transport.

<figure><img src="/files/554f2ffa50a44f9e3d99647b7792a04c4faf1e07" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Le port externe de votre déploiement sur le cloud Edgegap sera choisi aléatoirement, afin qu'un attaquant potentiel (hacker) soit ralenti et détecté avant de pouvoir causer des dommages.
{% endhint %}

{% hint style="warning" %}
**Désactiver le VPN lors des tests** pour des conditions plus réalistes et recevoir un [déploiement à faible latence](/docs.edgegap.com-fr/learn/orchestration/deployments.md#server-placement).
{% endhint %}

☑️ Une fois que vous avez vérifié que vous pouvez vous connecter à votre déploiement sans problème et que vous avez fini les tests, **Arrêtez votre déploiement** pour libérer de la capacité dans votre compte pour la prochaine build.

* En cas de problème, [inspectez les journaux du tableau de bord de votre déploiement](https://app.edgegap.com/deployment-management/deployments/list).
* Si vous ne parvenez pas à identifier le problème, nous traînons dans notre [Discord Communautaire](https://discord.gg/NgCnkHbsGp) et heureux de vous aider.

🙌 Félicitations pour votre premier déploiement sur Edgegap ! Si vous souhaitez en savoir plus, continuez à lire.

<details>

<summary>Dépannage et FAQ</summary>

Impossible de connecter les clients au serveur - `Délai de la requête dépassé.` , `请求超时` , `Échec de la connexion` , ou `Échec de la vérification du port`

* Assurez-vous d’abord que le déploiement est prêt et qu’il n’y a ni exception d’exécution ni erreur dans le journal de votre déploiement. Si votre déploiement s’est arrêté, inspectez les journaux dans notre [Tableau de bord](https://app.edgegap.com/deployment-management/deployments/list).
* Si vous utilisez le netcode Mirror, vous devez avoir ["Auto Start Server"](https://mirror-networking.gitbook.io/docs/hosting/edgegap-hosting-plugin-guide#build-and-push) sélectionné dans votre `NetworkManager` , reconstruisez, poussez et redéployez votre serveur.
* Si vous utilisez le netcode FishNet, vous devez activer ["Start on Headless"](https://fish-networking.gitbook.io/docs/manual/components/managers/server-manager#settings-are-general-settings-related-to-the-servermanager) dans votre `ServerManager`, reconstruisez, poussez et redéployez votre serveur.
* Si vous utilisez le netcode Photon Fusion 2, veuillez vous assurer que votre serveur transmet l’IP publique du déploiement, le port externe et le `roomCode` sur le serveur, ainsi que le même code de salle dans le client dans le ["NeworkRunner.StartGame"](https://doc.photonengine.com/fusion/current/manual/network-runner#creating-or-joining-a-room) paramètre `StartGameArgs`. L’ID de déploiement (par ex. `b63e6003b19f`) est un excellent choix car il est unique à l’échelle mondiale et facilement accessible au client par [Matchmaker](/docs.edgegap.com-fr/learn/appariement/matchmaker-in-depth.md) et [Analyse approfondie](/docs.edgegap.com-fr/learn/appariement/matchmaker-in-depth.md#injected-environment-variables).
* Ensuite, veuillez vérifier que votre paramètre de port dans les paramètres netcode de votre build serveur correspond au port interne dans votre [version de l’application](https://app.edgegap.com/application-management/applications/list). Vous pouvez modifier le mappage des ports en éditant le [version de l’application](https://app.edgegap.com/application-management/applications/list) sans reconstruire. Trouvez votre protocole dans votre intégration netcode.
* Veuillez vous assurer que votre client de jeu se connecte au **port externe** affiché sur la page des détails de votre déploiement ; cette valeur sera toujours aléatoire pour des raisons de sécurité.
* Si vous utilisez le protocole Secure Websocket (WSS) dans votre intégration netcode, veuillez vous assurer que votre [version de l’application](https://app.edgegap.com/application-management/applications/list) configuration du port WSS a l’option TLS Upgrade activée.
* Êtes-vous situé en Chine et utilisez-vous [Flottes intelligentes](https://docs.edgegap.com/docs/deployment/session/fleet-manager/fleet)? Votre connexion peut être bloquée par le Grand Firewall. Envisagez d’ajouter à votre flotte un serveur situé en Chine, ou d’utiliser un VPN pour vous connecter.

***

Mon déploiement s’est arrêté/redémarré et je ne peux plus accéder à ses journaux.

* Si le processus serveur plante à cause d’une exception, notre système essaiera de redémarrer automatiquement le serveur. Pensez à [tester votre serveur localement](#id-4.-test-your-server-locally) pour découvrir la cause première.
* Nous conservons les journaux uniquement pendant la durée du déploiement ; si vous souhaitez les consulter après l’arrêt du déploiement, veuillez [intégrer un stockage de journaux tiers](https://docs.edgegap.com/docs/deployment/endpoint-storage).
* Voir [/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-5.-deployment-stopped](https://docs.edgegap.com/docs.edgegap.com-fr/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-5.-deployment-stopped "mention") pour découvrir toutes les causes possibles de l’arrêt de votre déploiement.

***

Mon déploiement s’est arrêté automatiquement après X minutes.

* Les déploiements du niveau gratuit ont une limite de 60 minutes ; veuillez envisager de mettre à niveau votre compte.
* Tous les déploiements seront terminés après 24 heures d’exécution conformément à notre politique de nettoyage des serveurs, pour la maintenance de l’infrastructure et pour éviter des coûts inattendus lorsque le déploiement n’a pas été arrêté correctement. Pour les serveurs longue durée, envisagez d’utiliser [Flottes privées](/docs.edgegap.com-fr/learn/orchestration/flottes-privees.md) avec [Persistance](/docs.edgegap.com-fr/learn/orchestration/persistance.md).
* Voir [/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-5.-deployment-stopped](https://docs.edgegap.com/docs.edgegap.com-fr/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-5.-deployment-stopped "mention") pour découvrir toutes les causes possibles de l’arrêt de votre déploiement.

***

Mon déploiement est prêt, mais je ne parviens pas à me connecter pendant plusieurs minutes après.

* Une fois qu’un déploiement est prêt, l’initialisation de votre moteur de jeu commence. Ce processus peut prendre de quelques secondes à plusieurs minutes, et le serveur n’accepte pas les connexions des joueurs pendant cette période.
* Envisagez d’optimiser l’initialisation de votre serveur pour réduire cette durée.
* Les clients de jeu doivent réessayer la connexion à intervalles d’une seconde pendant une durée limitée (selon la durée de votre initialisation), puis revenir au matchmaking.
* Envisagez d’ajouter une scène de chargement afin que le serveur puisse effectuer l’initialisation (et le voyage, dans le cas d’Unreal Engine) en même temps que les clients, tout en synchronisant l’état des deux.

***

Mon appareil Meta Quest affiche `HTTP 0: impossible de résoudre l’hôte de destination` .

* Lors de la compilation d’applications Unity pour la cible Android, votre autorisation d’accès à Internet peut être supprimée automatiquement de l’artefact de build APK client de sortie.
* Réajoutez les autorisations dans (nécessite de reconstruire le client ensuite) :
  * Paramètres du projet / OpenXR / :gear: Support Meta Quest / Forcer la suppression des autorisations Internet (désactiver).
  * Paramètres du joueur / Accès à Internet (définir sur requis).

***

Que se passera-t-il si un joueur quitte mon déploiement ?

* Par défaut, les serveurs ne rejettent pas les connexions des joueurs. L’authentification des joueurs relève de vos développeurs, car de nombreuses méthodes et fournisseurs d’authentification peuvent être utilisés.
* Les clients de jeu peuvent stocker localement les informations de connexion afin de tenter une reconnexion en cas de plantage inattendu du client.
* Pour permettre aux joueurs de rejoindre des parties en cours, envisagez d’utiliser [Analyse approfondie](/docs.edgegap.com-fr/learn/appariement/matchmaker-in-depth.md#backfill) ou [Sessions](https://docs.edgegap.com/docs/deployment/session).

***

Mon serveur affiche une utilisation CPU de 100 % après être devenu prêt.

* Ce n’est peut-être pas un problème, car les moteurs de jeu ont tendance à effectuer des opérations gourmandes en CPU pendant l’initialisation du serveur. Si l’utilisation du CPU ne baisse pas 2 à 3 minutes après le début du déploiement, vous devrez peut-être optimiser votre serveur ou augmenter les ressources de la version de l’application.
* Réduire la fréquence des ticks peut avoir un impact sur l’utilisation du CPU, car le serveur effectue moins d’opérations de messagerie.
* Si vous utilisez le netcode Mirror, vous devez avoir ["Auto Start Server"](https://mirror-networking.gitbook.io/docs/hosting/edgegap-hosting-plugin-guide#build-and-push) sélectionné dans votre `NetworkManager` , reconstruisez, poussez et redéployez votre serveur.
* Si vous utilisez le netcode FishNet, vous devez activer ["Start on Headless"](https://fish-networking.gitbook.io/docs/manual/components/managers/server-manager#settings-are-general-settings-related-to-the-servermanager) dans votre `ServerManager`, reconstruisez, poussez et redéployez votre serveur.
* Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le Free Tier.
* Vous pouvez augmenter les ressources allouées lors de la création d’une nouvelle version d’application. Vous pouvez dupliquer votre version d’application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ni votre image.

***

Mon déploiement redémarre de façon répétée et affiche l’erreur `OOM kill`

* Cela est dû au dépassement de la quantité de mémoire allouée. Envisagez d’optimiser l’utilisation de la mémoire avec le pooling d’objets, la compression ou la suppression des objets inutiles dans votre scène.
* Assurez-vous que votre projet charge la scène par défaut contenant votre `NetworkManager` et que la scène est incluse dans les paramètres de build d’Unity.
* Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le Free Tier.
* Vous pouvez augmenter les ressources allouées lors de la création d’une nouvelle version d’application. Vous pouvez dupliquer votre version d’application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ni votre image.

***

Parfois, l’utilisation de la mémoire (RAM) de mon serveur monte brusquement à une valeur élevée, est-ce un problème ?

* Tant que vous restez dans la quantité de mémoire allouée à la version de l’application, ce n’est pas un problème.
* Dépasser la quantité de mémoire allouée à la version de l’application provoquera `OOM kill` (voir ci-dessus).

***

Les performances de mon serveur seront-elles affectées par d’autres serveurs exécutés sur la même machine ?

* Non, notre plateforme garantit que les ressources allouées ne seront pas utilisées par d’autres studios ni par d’autres serveurs sur une infrastructure partagée. Avec Edgegap, il n’y a pas de voisins bruyants.

</details>

## 👉 Prochaines étapes

Une fois que vous disposez d'une configuration client/serveur fonctionnelle, assurez-vous de **sauvegarder une copie de votre projet** (en utilisant un logiciel de contrôle de version comme git) afin de toujours pouvoir retracer vos étapes en cas de problème.

Continuez à lire pour en savoir plus sur les sujets liés au cycle de vie des serveurs et à leur découvrabilité.

### Arrêter les déploiements

Une fois le match terminé (ou lorsque les joueurs partent), votre déploiement peut être arrêté pour réduire les coûts. [Le laisser vide ou seulement partiellement rempli peut augmenter vos coûts inutilement !](https://edgegap.com/blog/how-session-fill-rate-affects-your-multiplayer-hosting-costs)

{% hint style="success" %}
Importez notre `DeploymentAgent`  exemple du SDK Unity pour **arrêter les serveurs facilement et de manière fiable**.
{% endhint %}

{% hint style="warning" %}
Connectez votre [Stockage des points de terminaison](/docs.edgegap.com-fr/docs/endpoint-storage.md) pour obtenir vos journaux de déploiement, sinon ils seront supprimés !
{% endhint %}

### Variables injectées

Lisez des informations utiles comme l’ID de déploiement, l’adresse IP du serveur, l’emplacement du serveur, et plus encore, en accédant aux variables d’environnement injectées. Chaque déploiement inclut automatiquement :

* [Variables de déploiement](/docs.edgegap.com-fr/learn/orchestration/deployments.md#injected-environment-variables) - fournies automatiquement par Edgegap,
* [Variables de matchmaking](/docs.edgegap.com-fr/learn/appariement/matchmaker-in-depth.md#injected-environment-variables) - fournies automatiquement par Edgegap lors de l’utilisation de [Appariement](/docs.edgegap.com-fr/learn/appariement.md),
* [Variables de version d’application](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#injected-variables) - paires clé-valeur personnalisées configurables par vous.

{% hint style="success" %}
Importez notre `DeploymentAgent`  exemple du SDK Unity pour **lire facilement des variables fortement typées**.
{% endhint %}

### Automatisation des sessions

{% hint style="warning" %}
**Lancer vos déploiements manuellement, en collant l’URL et les ports, ne suffira pas pour un jeu en direct.**
{% endhint %}

Automatisez les flux de jeu populaires pour gérer les sessions et la mise à l’échelle à la demande avec l’une ou l’autre des options suivantes :

{% columns %}
{% column width="33.33333333333333%" %}
[Appariement](/docs.edgegap.com-fr/learn/appariement.md):

* Manches plus courtes
* Parties à la demande
* Classement par niveau et/ou\
  Règles personnalisées
  {% endcolumn %}

{% column width="33.33333333333333%" %}
[Navigateur de serveurs](/docs.edgegap.com-fr/learn/navigateur-de-serveurs.md):

* Persistant ou en manches
* Hubs régionaux sociaux
* Affectation automatique et/ou\
  Recherche personnalisée
  {% endcolumn %}

{% column width="33.33333333333333%" %}
Backend personnalisé :

* Migrer des parties en cours
* [Déployer avec l’API v2](/docs.edgegap.com-fr/docs/api/serveurs-dedies.md)
* [Observer les webhooks](/docs.edgegap.com-fr/learn/orchestration/deployments.md#webhooks)
  {% endcolumn %}
  {% endcolumns %}

{% hint style="info" %}
Si vous avez besoin d’aide, [veuillez nous contacter sur Discord](https://discord.gg/MmJf8fWjnt). Pour l’assistance aux jeux en direct, consultez notre [système de tickets](https://edgegap.atlassian.net/servicedesk/customer/portal/3).
{% endhint %}

### Optimiser les builds

**Ne reconstruire que les assets qui ont changé depuis la dernière compilation.**

Envisagez d’utiliser [Les compilations incrémentielles de Unity](https://docs.unity3d.com/Manual/incremental-build-pipeline.html) pour accélérer votre temps de compilation.

* Envisagez d’utiliser [Les compilations incrémentielles de Unity](https://docs.unity3d.com/Manual/incremental-build-pipeline.html) pour accélérer votre temps de compilation.

**N’incluez que ce dont vous avez absolument besoin pour que votre serveur fonctionne.**

* Copier des fichiers inutilisés dans vos images entraîne une augmentation de leur taille, des téléversements plus longs, une mise en cache plus lente et un démarrage global du serveur plus lent. [Consultez les सुझाव d’optimisation des images Docker](https://docs.docker.com/build-cloud/optimization/#dockerignore-files).

**Désactiver le batching statique des maillages pour réduire la taille de l’image.**

* [Désactiver le batching statique pour des compilations, des téléversements et des déploiements plus rapides.](https://docs.unity3d.com/Manual/DrawCallBatching.html)

**Compresser les maillages pour réduire la taille de l’image.**

* [Définir la compression des maillages sur Élevée pour des compilations, des téléversements et des déploiements plus rapides.](https://docs.unity3d.com/6000.0/Documentation/Manual/compressing-mesh-data-optimization.html)
* La compression des sommets n’a pas d’impact sur la taille de l’image.

**Mettre en place un chargement paresseux conditionnel des ressources.**

* Exclure les assets réservés au client en [désactivant la lecture/écriture CPU des textures et des maillages](https://docs.unity3d.com/6000.0/Documentation/Manual/dedicated-server-optimizations.html).
* Envisagez d’utiliser [Unity Addressables](https://docs.unity3d.com/Packages/com.unity.addressables@2.1/manual/index.html) pour vos compilations client afin d’accélérer les compilations et les déploiements en [chargeant les assets juste à temps](https://docs.unity3d.com/Packages/com.unity.addressables@1.19/manual/LoadingAddressableAssets.html), ou en ignorant le chargement de certains assets dans les compilations serveur en vérifiant la présence de [Déploiements](/docs.edgegap.com-fr/learn/orchestration/deployments.md#injected-environment-variables).

**Envisagez d’utiliser** [**des builds Docker multi-étapes (lien)**](https://docs.docker.com/build/building/multi-stage/)**.**

* Séparez les grosses dépendances du serveur dans une image distincte pour les réutiliser dans des builds multi-étapes. Docker mettra en cache chaque couche et réutilisera simplement la version précédente en ignorant le téléversement de cette partie, sauf instruction explicite, ce qui vous fera économiser de la bande passante et du temps d’attente pour la fin du téléversement.
* Si vous ne savez pas pourquoi l’une des commandes de votre Dockerfile génère une erreur, essayez de déboguer localement. Créez une nouvelle étape juste avant que le problème ne se produise (ajoutez une deuxième `FROM` commande), utilisez `--target` pour indiquer au processus de build de s’arrêter à l’étape problématique, puis `docker exec -it {container} /bin/bash` pour entrer dans un terminal interactif à l’intérieur de votre conteneur. Ensuite, vous pouvez utiliser des commandes shell dans votre image de base pour enquêter plus avant (par ex. `top` sur Ubuntu).

### Personnaliser l’image

Nous prenons également en charge l’ajout de votre propre Dockerfile pour les utilisateurs qui ont besoin de plus de contrôle sur leurs images en raison de l’optimisation de la taille de la compilation, de dépendances superflues ou d’un processus de démarrage plus complexe. Vous pouvez éventuellement fournir un chemin vers votre Dockerfile personnalisé à l’étape [#id-3.-containerize-your-game-server](#id-3.-containerize-your-game-server "mention"). Nous allons maintenant partager quelques conseils et bonnes pratiques « à faire soi-même ».

**Vous avez des problèmes avec les WebSockets ou les requêtes HTTPS ?**

* Si vous obtenez `Erreur Curl 35 : échec de la poignée de main du certificat. Erreur fatale. Code d’erreur UnityTls : 7` ne désespérez pas, il s’agit d’un problème connu avec les anciennes images de base (`FROM`) incluant un certificat d’autorité racine expiré. Vous pouvez corriger cela en mettant à jour vers une version plus récente de l’image de base (par ex. `ubuntu:22.04`), et en exécutant `update-ca-certificates` , ajoutez ceci à votre Dockerfile :

  ```docker
  FROM ubuntu:22.04

  RUN apt-get install -y ca-certificates && \
      apt-get clean && \
      update-ca-certificates
  ```

**Assurez-vous toujours de travailler avec une build serveur fonctionnelle.**

* Avant de supposer qu’un problème est lié au Dockerfile personnalisé, vérifiez que votre build serveur Unity peut démarrer et que le processus de build dans Unity n’a généré aucune exception ni erreur.

**Testez toujours localement avant de téléverser.**

* Tester votre image localement vous fera gagner beaucoup de temps pendant l’attente du téléversement. C’est aussi entièrement gratuit ✨ car cela ne nécessite aucune ressource Edgegap.
* Lorsque vous testez localement, assurez-vous de définir correctement votre port interne :

  ```bash
  docker run \
    -p 7777/udp \
    -e ARBITRIUM_PORTS_MAPPING='{"ports":{"gameport":{"internal":7777}}}' \
    'registry.edgegap.com/<repository>:<tag>'
  ```

**Assurez-vous d’avoir les bases. Chaque Dockerfile a besoin de quelques commandes essentielles :**

* `FROM {image}` est votre image de base ; pour les projets Unity nous utilisons généralement une distribution Linux prise en charge à long terme, mais toute image de base basée sur Linux fera l’affaire. Ce sont généralement des images publiques stockées sur Docker Hub. Référence Dockerfile ici. [Référence Dockerfile ici](https://docs.docker.com/reference/dockerfile/#from).
* `COPY {source} {destination}` pour copier votre build serveur Linux depuis votre machine hôte à l’intérieur de l’image, afin de pouvoir le démarrer plus tard. [Référence Dockerfile ici](https://docs.docker.com/reference/dockerfile/#copy).
* `USER {user}` devrait suivre après un [commande useradd (ubuntu)](https://manpages.ubuntu.com/manpages/bionic/man8/useradd.8.html) ou équivalent, il est préférable de ne pas tout exécuter en tant que `root` pour être du côté sûr. [Référence Dockerfile ici](https://docs.docker.com/reference/dockerfile/#user).
* `CMD {command}` sera la dernière ligne, appelant très probablement un `StartServer.sh` ou une sorte de script de démarrage pour s’assurer que votre serveur s’initialise correctement une fois tout configuré. [Référence Dockerfile ici](https://docs.docker.com/reference/dockerfile/#cmd).
* NE PAS utiliser `VOLUME` - vous ne pourrez pas monter de stockage local de cette manière sur Edgegap, considérez plutôt notre fonctionnalité Endpoint Storage et utilisez un bucket S3, voir [Endpoint Storage](https://docs.edgegap.com/docs/deployment/endpoint-storage),
* `EXPOSE 7777/UDP`  n’est pas requis ! Cela ne rendra pas réellement le port interne du serveur disponible depuis l’extérieur du conteneur, c’est seulement un indice pour le développeur et le port doit être
  * publié lors des tests locaux avec `docker run <image> -p 7777/udp` ,
  * ou mappé dans [Edgegap Port Mapping](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#other-parameters-optional).

**Différez la déclaration des paramètres jusqu’au dernier moment possible. Configurabilité > composabilité en raison des longs temps de build serveur.** [**Appliquez cette approche aux commandes Dockerfile pour construire et téléverser plus rapidement.**](https://medium.com/@esotericmeans/optimizing-your-dockerfile-dc4b7b527756)

* Scénario : vous devez définir des paramètres tels que le stade de déploiement, la version, le mode de jeu, la carte, le nombre de joueurs par serveur, la fréquence de sauvegarde, ou similaire.
* Mauvaise solution : créer une image distincte pour chaque combinaison de vos paramètres. Vous passerez tout votre temps à reconstruire les images avec très peu d’avantages.
* Meilleure solution - substituer les paramètres de configuration au dernier moment :
  1. paramètres de déploiement - fournis juste avant le déploiement - sélecteurs de matchmaking passés comme variables d’environnement, ou votre système de gestion de session personnalisé passant des variables d’environnement au moment du déploiement,
  2. paramètres de version - partagés pour tous les déploiements sur une version d’application - stade de déploiement, tag de l’artifact, secrets et points de terminaison tiers, et similaires ; puis
  3. une seule image - contient et charge toutes les options de configuration lors du lancement.

**NE PAS exécuter de bases de données sur les déploiements Edgegap.**

* Les déploiements Edgegap ne sont pas conçus pour des processus de longue durée et peuvent être arrêtés après une longue période d’exécution sans préavis. Une base de données (même distribuée) fonctionnant de cette manière peut être interrompue et entraîner une perte irréversible de données. Si vous avez besoin d’une base de données, veuillez envisager un DBaaS tiers.
* Envisagez d’utiliser nos [Clusters gérés](https://app.edgegap.com/cluster-management/clusters/list) pour héberger des bases de données et des services à longue durée d’exécution.

{% hint style="info" %}
Vous vous heurtez à un mur ? Nous sommes disponibles dans notre [Discord de la communauté](https://discord.gg/MmJf8fWjnt) et heureux de vous aider.
{% endhint %}
