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

# Déployer un serveur Unreal Linux dans le cloud MPS

> Générez et déployez un serveur dédié Linux Unreal Engine 5 sur PlayFab Multiplayer Servers (MPS), avec des remarques sur la compilation croisée depuis Windows et sur UE 4.26 ou 4.27.

# Configurer un serveur dédié Linux sur PlayFab

Ce guide décrit toutes les étapes nécessaires pour générer et vérifier un serveur dédié Linux. Les étapes suivantes sont propres à Unreal Engine 5 (accès anticipé et version officielle). Le même ensemble d'étapes a été testé et s'applique également à UE 4.26 et UE 4.27, avec quelques différences mineures concernant l'emplacement de l'option d'empaquetage dans l'interface utilisateur d'Unreal Engine, qui diffère entre UE 4.27 et l'accès anticipé d'UE5.

Vous trouverez plus d'informations sur le déploiement Linux [ici](https://github.com/PlayFab/MpsAgent/blob/main/LocalMultiplayerAgent/MultiplayerSettingsLinuxContainersOnWindowsSample.json)

## Exigences

* Installez les [prérequis Linux pour Unreal](https://docs.unrealengine.com/SharingAndReleasing/Linux/GettingStarted/)
* Installez [Docker pour Windows](https://docs.docker.com/desktop/windows/install/)

## Instructions

* Depuis la page des **prérequis Linux pour Unreal**, téléchargez la chaîne d'outils correspondant à votre version d'Unreal Engine installée et exécutez l'exécutable. Notez que, comme pour de nombreuses parties de ces guides, ces étapes ne fonctionnent que si votre Unreal Engine a été généré à partir du code source.
  * Une fois l'installation terminée, examinez vos variables d'environnement Windows et vérifiez que la variable système suivante existe : **LINUX\_MULTIARCH\_ROOT**.
* Dans le répertoire source de votre Unreal Engine :
  * Réexécutez : `Setup.bat`
  * Réexécutez : `GenerateProjectFiles.bat`
* Revenez à votre propre projet :
  * Cliquez avec le bouton droit sur votre fichier `{ProjectName}.uproject`, puis sélectionnez **Generate Visual Studio project files**
  * Ouvrez le fichier \{ProjectName}.sln dans Visual Studio
  * Définissez la configuration sur **Development Editor**
  * Générez et exécutez l'éditeur Unreal
* À ce stade, vous devriez pouvoir empaqueter votre projet pour un serveur Linux dans le répertoire de votre choix.
  * Pour Unreal Engine 5, dans l'éditeur, sélectionnez l'empaquetage en haut à droite de l'écran : l'option Linux devrait désormais être disponible. Pour UE 4.26 et UE 4.27, l'option d'empaquetage se trouve sous l'onglet File.
  * Confirmez vos configurations Server et Shipping, sélectionnez **Linux** pour la génération, puis sélectionnez le répertoire de sortie.

## Créer une image Docker du serveur Linux

Dans cette section, nous allons configurer une image Docker contenant votre serveur Linux

* Maintenant que vous avez créé un serveur Linux, accédez à ce répertoire (Explorateur Windows ou terminal de votre choix)
* Créez un fichier nommé : `Dockerfile`
* Modifiez le fichier avec l'éditeur de votre choix (notepad, vim, emacs, etc.)
* Copiez-collez le contenu présenté ci-dessous. Veillez à remplacer \[YourProjectNameServer].sh par le nom de l'exécutable de votre propre serveur Linux (dans le même répertoire)

```Docker theme={null}
FROM ubuntu:18.04

# Unreal refuses to run as root user, so we must create a user to run as
# Docker uses root by default
RUN useradd --system ue
USER ue

EXPOSE 7777/udp

WORKDIR /server

COPY --chown=ue:ue . /server
USER root
CMD chown -R ue.ue $PF_SERVER_LOG_DIRECTORY && su ue -c ./YourGameNameServer.sh
```

REMARQUE : la commande **chown** rend \$PF\_SERVER\_LOG\_DIRECTORY accessible au processus de votre serveur, puis && enchaîne la commande d'exécution de votre serveur

* À l'aide du terminal de votre choix, accédez au répertoire du serveur Linux
  * Les utilisateurs Windows utilisent généralement cmd ou PowerShell, mais bash est également disponible via des outils tiers ou WSL
  * Les utilisateurs Mac et Linux utilisent généralement bash
* Exécutez : `docker build -t "[imageName]:[tag]" .`, où imageName et tag sont des valeurs de votre choix.
  * Mémorisez ces noms, vous les réutiliserez
  * Par exemple : **YourProjectNameServer** et **01** respectivement
  * L'élément **tag** est généralement utilisé pour gérer les versions de votre instance de serveur
  * Ces balises seront utilisées lors d'une étape ultérieure
  * Si vous les oubliez, vous pouvez saisir **docker images** dans le terminal pour récupérer imageName et tag
* Saisissez **docker images** dans le terminal pour vérifier que l'image Docker a bien été créée.
* Laissez cette fenêtre de terminal ouverte et mettez-la de côté, car nous aurons d'autres commandes à y exécuter plus tard
  * (Désignée par \[Docker terminal] dans les étapes ultérieures)

## Charger l'image de conteneur dans le registre Azure de PlayFab

À ce stade, vous êtes prêt à envoyer votre image Docker vers le registre de conteneurs Azure de PlayFab afin de pouvoir l'utiliser pour lancer votre build sur PlayFab.

* Accédez au [portail des développeurs PlayFab](https://developer.playfab.com/)
* Sélectionnez votre titre
* Sélectionnez l'onglet **Multiplayer** à gauche
* Sélectionnez **New Build** à droite de l'écran.
* Choisissez un nom
* Sélectionnez un type de machine virtuelle ; pour les projets ThirdPersonMP, **Dasv4 (2 cores)** suffit
* Sous Server Details, définissez Server Type sur **Container** et Operating System sur **Linux**.
* Sélectionnez **Upload to container registry**.
* Dans la fenêtre qui s'affiche :
  * Mémorisez votre \[AzureUsername] affiché dans cette fenêtre ; il est utilisé à plusieurs reprises dans les étapes suivantes
  * Sélectionnez **Copy Docker Login Command**
* Revenez à la fenêtre \{Docker terminal}
  * Collez la commande Docker Login dans \[Docker terminal]. Cette commande vous connecte au registre Azure utilisé par PlayFab.
  * Saisissez : `docker tag [imageName]:[tag] [AzureUsername].azurecr.io/[imageName]:[tag]`
  * Saisissez : `docker push [AzureUsername].azurecr.io/[imageName]:[tag]`
  * Pour rappel, AzureUsername était affiché sur le portail des développeurs PlayFab, et vous avez choisi imageName et tag précédemment.
* De retour sur le site web de PlayFab, sous Server Details sur la page New Build, sélectionnez Refresh à côté de Container image.
* Cliquez sur le bouton fléché : vous devriez voir et pouvoir sélectionner l'image Docker que vous avez chargée et la balise correspondante.
* Dans le bloc Regions, sélectionnez une région proche de vous et définissez Standby et Max sur 1 (uniquement pour les tests)
* Dans le bloc Network, définissez le champ Port Name sur `gameport`
  * Il est obligatoire de définir le port qui sera utilisé pour se connecter à votre serveur de jeu
  * Le GSDK Unreal contient du code qui lit automatiquement ce port et remplace en interne le port hôte du serveur Unreal en fonction de cette valeur
  * Le nom de ce port doit obligatoirement être `gameport`
* Sélectionnez **Add Build** et attendez que l'état de votre build passe à **Deployed**

## Étapes suivantes

De nombreux utilisateurs voudront tester leur serveur en [connectant un client de jeu](/fr/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build).

Sinon, vous pouvez revenir au guide principal du [plug-in Unreal GSDK](/fr/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk).


## Related topics

- [Déploiement cloud du projet GSDK](/fr/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-cloud-deployment.md)
- [Se connecter à un serveur Unreal hébergé dans le cloud](/fr/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
- [Vue d'ensemble du plug-in PlayFab Unreal GSDK](/fr/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/index.md)
- [Créer et déployer des builds Linux](/fr/services/playfab/multiplayer/servers/deploying-linux-based-builds.md)
- [Déployer des builds à l'aide de Game Manager](/fr/services/playfab/multiplayer/servers/deploy-using-game-manager.md)
