Setting up a Multiplayer Server/fr: Difference between revisions
(Created page with "Il est recommandé d'utiliser le script d'installation situé sur GitHub. Ce qui suit est un guide étape par étape sur la façon d'utiliser le script sur un système basé sur Debian (Ubuntu, Debian, Rasbian, etc).") |
No edit summary |
||
(54 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
===Serveur Ad-hoc=== | ===Serveur Ad-hoc=== | ||
Si vous cherchez une expérience multijoueur temporaire il est possible d'ouvrir un monde en mode solo et de cliquer sur "Ouvrir au LAN" dans le menu des options. Cela permettra aux joueurs sur le même réseau local de vous rejoindre. | Si vous cherchez une expérience multijoueur temporaire il est possible d'ouvrir un monde en mode solo et de cliquer sur "Ouvrir au LAN" dans le menu des options. Cela permettra aux joueurs sur le même réseau local de vous rejoindre. | ||
Si vous souhaitez ouvrir votre partie à des joueurs au-delà de votre connexion locale, vous pouvez aussi cliquer sur "Ouvrir à internet", ce qui tentera d'établir une connexion externe pour rejoindre votre serveur depuis internet. Cela est possible par une technique appelée UPnP et doit être activé sur votre box internet, l'UPnP est souvent activé par défaut sur la plupart des fournisseurs d'accès. Il y a 60 % de chances que "Ouvrir à internet" fonctionne instantanément sans problème. Sinon, vous devrez effectuer une "Redirection de ports" depuis votre box. Vous devrez rediriger le port TCP 42420 afin de permettre l'accès extérieur. (Vous pouvez trouver des renseignements supplémentaires sur internet en recherchant "Redirection de ports" avec le modèle de votre box internet). | Si vous souhaitez ouvrir votre partie à des joueurs au-delà de votre connexion locale, vous pouvez aussi cliquer sur "Ouvrir à internet", ce qui tentera d'établir une connexion externe pour rejoindre votre serveur depuis internet. Cela est possible par une technique appelée UPnP et doit être activé sur votre box internet, l'UPnP est souvent activé par défaut sur la plupart des fournisseurs d'accès. Il y a 60 % de chances que "Ouvrir à internet" fonctionne instantanément sans problème. Sinon, vous devrez effectuer une "Redirection de ports" depuis votre box. Vous devrez rediriger le port TCP 42420 afin de permettre l'accès extérieur. (Vous pouvez trouver des renseignements supplémentaires sur internet en recherchant "Redirection de ports" avec le modèle de votre box internet). | ||
Line 10: | Line 11: | ||
===Serveur Dédié=== | ===Serveur Dédié=== | ||
Quand le jeu est installé, il installe également un programme de serveur dédié que vous pouvez exécuter et laisser activé en permanence sans avoir besoin d'être présent sur le jeu vous-même. | Quand le jeu est installé, il installe également un programme de serveur dédié que vous pouvez exécuter et laisser activé en permanence sans avoir besoin d'être présent sur le jeu vous-même. | ||
Il existe différentes manières d'installer et de lancer un serveur dédié. | Il existe différentes manières d'installer et de lancer un serveur dédié. | ||
Line 16: | Line 18: | ||
L'hébergement est disponible par les créateurs du jeu via le tableau de bord intégré du serveur, pas encore de support pour les mods, serveurs situés en Europe centrale.<br> | L'hébergement est disponible par les créateurs du jeu via le tableau de bord intégré du serveur, pas encore de support pour les mods, serveurs situés en Europe centrale.<br> | ||
* [https://www.vintagestory.at/store/product/7-simple-server-hosting-8-slots/ | * [https://www.vintagestory.at/store/product/7-simple-server-hosting-8-slots/ Disponible sur le site officiel du jeu]. | ||
Services d'hébergement de tiers, sans ordre particulier : | Services d'hébergement de tiers, sans ordre particulier : | ||
Line 34: | Line 36: | ||
==== Serveurs dédiés sur Windows ==== | ==== Serveurs dédiés sur Windows ==== | ||
* Ouvrez le dossier contenant le jeu (<code>%appdata%/VintageStory</code> par défaut) | * Ouvrez le dossier contenant le jeu (<code>%appdata%/VintageStory</code> par défaut) | ||
* Lancez <code>VintagestoryServer.exe</code>. | * Lancez <code>VintagestoryServer.exe</code>. | ||
Line 40: | Line 43: | ||
=== Serveurs dédiés sur Linux === | === Serveurs dédiés sur Linux === | ||
Cette section explique comment mettre en place un serveur dédié en tant que service sur les systèmes Linux.<br> | Cette section explique comment mettre en place un serveur dédié en tant que service sur les systèmes Linux.<br> | ||
<span style="color:#E16100">Remarque : ''Ce qui suit fonctionne uniquement pour les processeurs x64. Si vous utilisez ARM, veuillez vous référer à la section suivante.''</span><br> | <span style="color:#E16100">Remarque : ''Ce qui suit fonctionne uniquement pour les processeurs x64. Si vous utilisez ARM, veuillez vous référer à la section suivante.''</span><br> | ||
Line 47: | Line 51: | ||
* [https://dotnet.microsoft.com/en-us/download/dotnet/7.0 .NET Runtime 7.0] Ceci devrait être tout ce qui est nécessaire pour faire fonctionner un serveur Vintagestory. Tout le reste ne sert qu'à faciliter le démarrage et la gestion du serveur. | * [https://dotnet.microsoft.com/en-us/download/dotnet/7.0 .NET Runtime 7.0] Ceci devrait être tout ce qui est nécessaire pour faire fonctionner un serveur Vintagestory. Tout le reste ne sert qu'à faciliter le démarrage et la gestion du serveur. | ||
* installez <code>pgrep</code>, <code>screen</code> et <code>wget</code> en utilisant le gestionnaire de paquets de votre système. | * installez <code>pgrep</code>, <code>screen</code> et <code>wget</code> en utilisant le gestionnaire de paquets de votre système. | ||
===== Mise en place du serveur ===== | ===== Mise en place du serveur ===== | ||
Line 100: | Line 103: | ||
---- | ---- | ||
==== Serveur dédié sur ARM64==== | ==== Serveur dédié sur ARM64 ==== | ||
<span style="color:#E16100">Remarque : ''Notez que la version ARM64 est EXPÉRIMENTALE. Merci de signaler les problèmes éventuels sur le [https://discord.com/channels/302152934249070593/1128220205181587516 discord ]''</span> | <span style="color:#E16100">Remarque : ''Notez que la version ARM64 est EXPÉRIMENTALE. Merci de signaler les problèmes éventuels sur le [https://discord.com/channels/302152934249070593/1128220205181587516 discord ]''</span> | ||
Line 107: | Line 111: | ||
Il est recommandé d'utiliser le script d'installation situé sur GitHub. Ce qui suit est un guide étape par étape sur la façon d'utiliser le script sur un système basé sur Debian (Ubuntu, Debian, Rasbian, etc). | Il est recommandé d'utiliser le script d'installation situé sur GitHub. Ce qui suit est un guide étape par étape sur la façon d'utiliser le script sur un système basé sur Debian (Ubuntu, Debian, Rasbian, etc). | ||
1. Installez les dépendances nécessaires à l'utilisation de ce script en procédant comme suit <code>apt -y install curl jq</code> | |||
1. | |||
2. Créez un nouveau fichier nommé <code>arminstall.sh</code> en exécutant <code>vim arminstall.sh</code> ou <code>nano arminstall.sh</code> | |||
2. | |||
3. Copiez le contenu du fichier <code>arminstall.sh</code> depuis GitHub vers le fichier que vous venez de créer et faites une sauvegarde en faisant <code>:wq</code> avec Vim ou <code>Ctrl + X</code>, puis <code>Y</code>, puis <code>Enter</code> avec Nano. | |||
3. | |||
4. Rendez le script exécutable en tapant <code>chmod +x arminstall.sh</code> | |||
4. | |||
5. Lancez le script en tapant <code>./arminstall.sh</code> | |||
5. | |||
6. Démarrez le serveur en tapant <code>./VintagestoryServer</code> ou <code>dotnet VintagestoryServer.dll</code> | |||
6. | |||
Ceci téléchargera la dernière version de Vintagestory dans le répertoire de travail actuel, puis remplacera les fichiers nécessaires pour fonctionner avec ARM. | |||
Si, à un moment donné, vous souhaitez mettre à jour la dernière version de Vintage Story, il vous suffit de relancer le script. | |||
---- | ---- | ||
==== Commande simple de démarrage du serveur ==== | |||
= | |||
Si vous souhaitez utiliser un script personnalisé ou simplement démarrer manuellement votre serveur, vous pouvez lancer | |||
dotnet VintagestoryServer.dll --dataPath /path/to/data | dotnet VintagestoryServer.dll --dataPath /path/to/data | ||
Ou | |||
./VintagestoryServer --dataPath /path/to/data | ./VintagestoryServer --dataPath /path/to/data | ||
si la variable d'environnement <code>DOTNET_ROOT</code> est définie. | |||
==== Mettre à jour le serveur ==== | ==== Mettre à jour le serveur ==== | ||
Line 156: | Line 143: | ||
== Configuration Basique == | == Configuration Basique == | ||
Une fois votre serveur lancé, vous pourriez chercher à modifier certaines options de configuration. | Une fois votre serveur lancé, vous pourriez chercher à modifier certaines options de configuration. | ||
Vous pouvez configurer votre serveur pendant son fonctionnement à travers des commandes ou lorsque le serveur est arrêté en éditant le fichier | Vous pouvez configurer votre serveur pendant son fonctionnement à travers des commandes ou lorsque le serveur est arrêté en éditant le fichier {{ll|Server Config|serverconfig.json}}. | ||
Sur Windows, le fichier se trouve par défaut à '''%appdata%/VintageStoryData/serverconfig.json'''. | Sur Windows, le fichier se trouve par défaut à '''%appdata%/VintageStoryData/serverconfig.json'''. | ||
Sur Linux, le fichier se trouve à '''./data/serverconfig.json''' du dossier de votre serveur (par exemple : ''/home/vintagestory/server/data/serverconfig.json'' si installé de la même manière qu'ici). | Sur Linux, le fichier se trouve à '''./data/serverconfig.json''' du dossier de votre serveur (par exemple : ''/home/vintagestory/server/data/serverconfig.json'' si installé de la même manière qu'ici). | ||
{{ | {{Protip | ||
|La manière la plus facile de configurer les paramètres de votre monde est de le créer en mode solo en utilisant les options avancées de création de monde, pour ensuite envoyer ses fichiers pour l'utiliser en tant que monde de serveur. | |La manière la plus facile de configurer les paramètres de votre monde est de le créer en mode solo en utilisant les options avancées de création de monde, pour ensuite envoyer ses fichiers pour l'utiliser en tant que monde de serveur. | ||
}} | }} | ||
Line 192: | Line 177: | ||
===Debian avec systemd et rsyslog=== | ===Debian avec systemd et rsyslog=== | ||
Si vous préférez utiliser systemd au lieu de screen pour faire fonctionner votre serveur VS, vous pouvez suivre ces instructions.<br> | Si vous préférez utiliser systemd au lieu de screen pour faire fonctionner votre serveur VS, vous pouvez suivre ces instructions.<br> | ||
Nous allons également configurer rsyslog pour séparer tous les journaux d'états dans des fichiers distincts.<br> | Nous allons également configurer rsyslog pour séparer tous les journaux d'états dans des fichiers distincts.<br> | ||
Line 197: | Line 183: | ||
==== Installation ==== | ==== Installation ==== | ||
'''1. Créer un utilisateur''' | |||
''' | |||
adduser --shell /bin/bash --disabled-password gameserver | adduser --shell /bin/bash --disabled-password gameserver | ||
''' | '''2. Créer les dossiers''' | ||
mkdir -p /srv/gameserver/vintagestory | mkdir -p /srv/gameserver/vintagestory | ||
mkdir -p /srv/gameserver/data/vs | mkdir -p /srv/gameserver/data/vs | ||
mkdir -p /usr/lib/systemd/system | mkdir -p /usr/lib/systemd/system | ||
'''3. Télécharger le jeu''' | '''3. Télécharger le jeu''' | ||
cd /srv/gameserver/vintagestory | cd /srv/gameserver/vintagestory | ||
Allez sur http://account.vintagestory.at/downloads<br> | Allez sur http://account.vintagestory.at/downloads<br> | ||
Copiez le lien du dernier paquet " | Copiez le lien du dernier paquet "vs_server_linux-x64_*.*.*.tar.gz" ('''Linux Server (.tar.gz)''' dans la partie '''Show other available downloads of Vintage Story''')<br> | ||
Téléchargez avec "wget" depuis la console (''Vintage Story version 1. | Téléchargez avec "wget" depuis la console (''Vintage Story version 1.18.8 dans cet exemple''). | ||
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz | |||
wget https://cdn.vintagestory.at/gamefiles/stable/ | |||
'''4. Extraire le paquet tar.gz''' | '''4. Extraire le paquet tar.gz''' | ||
tar xzf vs_server_linux-x64_1.18.8.tar.gz | |||
tar xzf | |||
'''5. Changer les paramètres d'accès''' | '''5. Changer les paramètres d'accès''' | ||
Vous devez définir les droits d'accès du répertoire de votre serveur de jeux pour éviter les erreurs d'autorisations. | Vous devez définir les droits d'accès du répertoire de votre serveur de jeux pour éviter les erreurs d'autorisations. | ||
chown -R gameserver:gameserver /srv/gameserver | chown -R gameserver:gameserver /srv/gameserver | ||
'''6. Créer le fichier de service systemd''' | '''6. Créer le fichier de service systemd''' | ||
Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano). | Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano). | ||
nano /usr/lib/systemd/system/vintagestoryserver.service | nano /usr/lib/systemd/system/vintagestoryserver.service | ||
Line 253: | Line 220: | ||
[Service] | [Service] | ||
WorkingDirectory=/srv/gameserver/vintagestory | WorkingDirectory=/srv/gameserver/vintagestory | ||
ExecStart= | ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs | ||
Restart=always | Restart=always | ||
RestartSec=30 | RestartSec=30 | ||
Line 264: | Line 231: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
Assurez-vous que le nouvel utilisateur a accès à la commande <code>dotnet</code> ou remplacez la commande avec le chemin complet là où vous avez installé la routine dotnet (si vous avez utilisé une installation personnalisée). Ou bien vous pouvez aussi utiliser <code>ExecStart=VintagestoryServer --dataPath /srv/gameserver/data/vs</code> si la variable d'environnement <code>DOTNET_ROOT</code> a été définie. | |||
'''7. Créer un fichier de configuration pour rsyslog''' | '''7. Créer un fichier de configuration pour rsyslog''' | ||
Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano). | Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano). | ||
nano /etc/rsyslog.d/vintagestoryserver.conf | nano /etc/rsyslog.d/vintagestoryserver.conf | ||
Line 299: | Line 260: | ||
# Discard | # Discard | ||
if $programname == 'VSSRV' then ~ | if $programname == 'VSSRV' then ~ | ||
'''8. Redémarrer rsyslog / activer le service''' | '''8. Redémarrer rsyslog / activer le service''' | ||
Pour activer rsyslog et votre serveur vintagestory, tapez les commandes suivantes : | Pour activer rsyslog et votre serveur vintagestory, tapez les commandes suivantes : | ||
Line 304: | Line 266: | ||
systemctl enable vintagestoryserver.service | systemctl enable vintagestoryserver.service | ||
systemctl start vintagestoryserver.service | systemctl start vintagestoryserver.service | ||
---- | ---- | ||
Line 356: | Line 317: | ||
Si vous souhaitez utiliser plusieurs instances sur la même machine, il vous suffit de refaire certaines des étapes ci-dessus. Voici un exemple pour une deuxième instance : | Si vous souhaitez utiliser plusieurs instances sur la même machine, il vous suffit de refaire certaines des étapes ci-dessus. Voici un exemple pour une deuxième instance : | ||
mkdir -p /srv/gameserver/data/vs2 | |||
mkdir -p /srv/gameserver/data/vs2 | |||
nano /usr/lib/systemd/system/vintagestoryserver2.service | nano /usr/lib/systemd/system/vintagestoryserver2.service | ||
Copiez le texte de l'étape 6 et modifiez ces lignes : | Copiez le texte de l'étape 6 et modifiez ces lignes : | ||
Description=Vintage Story Server 2 Unit | Description=Vintage Story Server 2 Unit | ||
ExecStart= | ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs2 | ||
SyslogIdentifier=VSSRV2 | SyslogIdentifier=VSSRV2 | ||
Créez un fichier rsyslog et copiez le code de l'étape 7 : | Créez un fichier rsyslog et copiez le code de l'étape 7 : | ||
Line 377: | Line 337: | ||
Terminez avec : | Terminez avec : | ||
30 4 * * * systemctl restart vintagestoryserver2.service | 30 4 * * * systemctl restart vintagestoryserver2.service | ||
Amusez-vous bien ! | Amusez-vous bien ! | ||
==Configuration avancée== | |||
= | |||
===Utilisation d'un enregistrement SRV pour diriger un domaine vers votre serveur=== | |||
Dans certains cas, il se peut que vous ne puissiez pas obtenir un serveur avec le port par défaut (instances multiples sur le même serveur, hôtes payants...), et vous devrez ajouter le port à la fin de l'adresse du serveur afin de vous y connecter.<br> | |||
Mais il se peut que vous souhaitiez éviter d'avoir à spécifier le port (plus facile à retenir, plus propre). | |||
Il existe un moyen de faire pointer un domaine vers votre serveur et d'éviter d'avoir à ajouter le port : les enregistrements SRV<br> | |||
Les enregistrements SRV vous permettent de faire pointer un domaine/sous-domaine vers votre instance, tout en indiquant au jeu le port à utiliser.<br> | |||
SRV | La manière de configurer les enregistrements SRV dépend de votre fournisseur de domaine, et vous devriez consulter sa documentation avant d'effectuer des changements. Cependant, l'idée et les valeurs restent les mêmes pour chaque fournisseur.<br> | ||
Prenons un serveur avec les détails suivants : | |||
* Addresse : <code>play.example.com</code> | |||
* | |||
* Port : <code>50030</code> | * Port : <code>50030</code> | ||
* | * Domaine propre : <code>mydomain.com</code> | ||
* | * Sous-domaine souhaité : <code>vintagestory.mydomain.com</code> | ||
Vos enregistrements SRV bruts devraient ressembler à ceci : | |||
_vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com. | _vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com. | ||
Les traits de soulignement et les points sont importants ! Voici quelques détails : | |||
* <code>_vintagestory</code> définit le service, dans notre cas, Vintage Story<br> | |||
* <code>_vintagestory</code> | * <code>_tcp</code> définit le protocole, Vintage Story utilise TCP<br> | ||
* <code>_tcp</code> | * <code>vintagestory.mydomain.com.</code> est le sous-domaine que nous voulons utiliser. Le point final est important !<br> | ||
* <code>vintagestory.mydomain.com.</code> | * <code>IN SRV</code> Définit le type d'enregistrement, ne modifiez pas ceci<br> | ||
* <code>IN SRV</code> | * <code>10 10</code> sont dans l'ordre, la priorité et la pondération de notre enregistrement, dans notre cas ils ne sont pas important, car vous n'allez probablement pas équilibrer la charge d'un serveur Vintage Story<br> | ||
* <code>10 10</code> | * <code>50030</code> est le port que notre instance va écouter<br> | ||
* <code>50030</code> | * <code>server.example.com.</code> est la cible, où notre serveur est situé. Le point final est obligatoire puisque le serveur ciblé n'est pas dans le même domaine que nous. Si c'était le cas, vous n'auriez besoin que d'ajouter le sous-domaine de la cible sans le point final<br> | ||
* <code>server.example.com.</code> | |||
Si vous vouliez pointer votre enregistrement directement à votre domaine, vous auriez <code>mydomain.com.</code> au lieu de <code>vintagestory.mydomain.com.</code> | |||
Voici comment procéder pour OVH et Hetzner (N'oubliez pas de modifier les valeurs pour les adapter à votre configuration !) : | |||
====OVH==== | ====OVH==== | ||
Vous devrez aller dans votre zone DNS et ajouter une entrée, sélectionner le type d'enregistrement SRV : | |||
* Sous-domaine : <code>_vintagestory._tcp.vintagestory</code> Vous n'avez pas besoin d'ajouter votre domaine, car leur formulaire le fait pour vous. | |||
* | * TTL : Il n'est pas nécessaire de modifier ceci | ||
* TTL : | * Priorité : <code>10</code> | ||
* | * Pondération : <code>10</code> | ||
* | |||
* Port : <code>50030</code> | * Port : <code>50030</code> | ||
* | * Cible : <code>server.example.com.</code> | ||
====Hetzner==== | ====Hetzner==== | ||
Vous devrez créer un enregistrement à partir de leur console DNS : | |||
* Type : <code>SRV</code> | * Type : <code>SRV</code> | ||
* | * Nom : <code>_vintagestory._tcp.vintagestory.mydomain.com.</code> | ||
Cliquez sur le champ Valeur pour entrer les détails : | |||
* | * Priorité : <code>10</code> | ||
* | * Pondération : <code>10</code> | ||
* Port : <code>50030</code> | * Port : <code>50030</code> | ||
* | * Cible : <code>server.example.com.</code> | ||
Attendez quelques minutes pour que votre enregistrement se propage et essayez ensuite de l'utiliser pour vous connecter au serveur, en utilisant <code>vintagestory.mydomain.com</code> comme adresse. | |||
Vous êtes maintenant prêt à partager votre serveur avec votre domaine personnalisé. | |||
{{Game navbox}} | {{Game navbox}} |
Revision as of 16:03, 22 November 2023
Installation Basique
Serveur Ad-hoc
Si vous cherchez une expérience multijoueur temporaire il est possible d'ouvrir un monde en mode solo et de cliquer sur "Ouvrir au LAN" dans le menu des options. Cela permettra aux joueurs sur le même réseau local de vous rejoindre. Si vous souhaitez ouvrir votre partie à des joueurs au-delà de votre connexion locale, vous pouvez aussi cliquer sur "Ouvrir à internet", ce qui tentera d'établir une connexion externe pour rejoindre votre serveur depuis internet. Cela est possible par une technique appelée UPnP et doit être activé sur votre box internet, l'UPnP est souvent activé par défaut sur la plupart des fournisseurs d'accès. Il y a 60 % de chances que "Ouvrir à internet" fonctionne instantanément sans problème. Sinon, vous devrez effectuer une "Redirection de ports" depuis votre box. Vous devrez rediriger le port TCP 42420 afin de permettre l'accès extérieur. (Vous pouvez trouver des renseignements supplémentaires sur internet en recherchant "Redirection de ports" avec le modèle de votre box internet).
Pour que ce serveur fonctionne, une partie solo doit être lancée en continu sur l'ordinateur d'un des joueurs.
Serveur Dédié
Quand le jeu est installé, il installe également un programme de serveur dédié que vous pouvez exécuter et laisser activé en permanence sans avoir besoin d'être présent sur le jeu vous-même. Il existe différentes manières d'installer et de lancer un serveur dédié.
Hôtes payants
L'hébergement est disponible par les créateurs du jeu via le tableau de bord intégré du serveur, pas encore de support pour les mods, serveurs situés en Europe centrale.
Services d'hébergement de tiers, sans ordre particulier :
- Pingperfect
- 4netplayers
- Bisecthosting
- HostHavoc
- Akliz
- CitadelHosting
- Something Unique Hosting
- GTX.gaming.uk
- CreeperHost
- Shockbyte
- Gportal (si vous installez des mods, il est conseillé de désactiver les mises à jour auto)
- Nitrado (serait en train de supprimer la prise en charge de Vintage Story)
Serveurs dédiés sur Windows
- Ouvrez le dossier contenant le jeu (
%appdata%/VintageStory
par défaut) - Lancez
VintagestoryServer.exe
. - Vous pouvez configurer une redirection des ports de votre routeur internet si vous voulez que votre serveur soit accessible au-delà de votre réseau local.
Serveurs dédiés sur Linux
Cette section explique comment mettre en place un serveur dédié en tant que service sur les systèmes Linux.
Remarque : Ce qui suit fonctionne uniquement pour les processeurs x64. Si vous utilisez ARM, veuillez vous référer à la section suivante.
Prérequis
- .NET Runtime 7.0 Ceci devrait être tout ce qui est nécessaire pour faire fonctionner un serveur Vintagestory. Tout le reste ne sert qu'à faciliter le démarrage et la gestion du serveur.
- installez
pgrep
,screen
etwget
en utilisant le gestionnaire de paquets de votre système.
Mise en place du serveur
1. Télécharger le jeu
Conseil : Créez un dossier différent pour Vintage Story étant donné que le tar.gz ne contient pas de sous-dossier.
mkdir server && cd server
Allez sur http://account.vintagestory.at/downloads
Copiez le lien du dernier paquet "vs_server_linux-x64_*.*.*.tar.gz" (Linux Server (.tar.gz) dans la partie Show other available downloads of Vintage Story)
Téléchargez avec "wget" depuis la console (Vintage Story version 1.18.8 dans cet exemple).
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz
2. Extraire le paquet tar.gz
tar xzf vs_server_linux-x64_*.*.*.tar.gz
3. Faire de server.sh un script exécutable
chmod +x server.sh
4. Éditer le fichier server.sh
Pour des raisons de sécurité, vous ne devriez pas lancer votre serveur en tant que root, le nom d'utilisateur par défaut USERNAME sera défini sur "vintagestory". Sur la plupart des systèmes d'exploitations Linux, vous pouvez créer un nouvel utilisateur avec la commande "adduser".
adduser vintagestory
Puis changez ces options par rapport à vos besoins :
USERNAME='<le-nom-d'utilisateur-pour-votre-serveur-VS>' VSPATH='<le-chemin-du-dossier-du-jeu>'
5. Ouvrir les ports sur votre pare-feu (si nécessaire)
firewalld
firewall-cmd --permanent --zone=public --add-port=42420/tcp firewall-cmd --reload
iptables
iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT
6. Lancement du serveur et premiers pas
./server.sh start
Attendez la fin du démarrage puis donnez vous les droits administrateurs (OP) avec : ./server.sh command "/op <votre_nom_d'utilisateur>"
7. Connectez vous à votre IP/Domaine et amusez-vous !
Serveur dédié sur ARM64
Remarque : Notez que la version ARM64 est EXPÉRIMENTALE. Merci de signaler les problèmes éventuels sur le discord
La version ARM64 est disponible sur GitHub
Il est recommandé d'utiliser le script d'installation situé sur GitHub. Ce qui suit est un guide étape par étape sur la façon d'utiliser le script sur un système basé sur Debian (Ubuntu, Debian, Rasbian, etc).
1. Installez les dépendances nécessaires à l'utilisation de ce script en procédant comme suit apt -y install curl jq
2. Créez un nouveau fichier nommé arminstall.sh
en exécutant vim arminstall.sh
ou nano arminstall.sh
3. Copiez le contenu du fichier arminstall.sh
depuis GitHub vers le fichier que vous venez de créer et faites une sauvegarde en faisant :wq
avec Vim ou Ctrl + X
, puis Y
, puis Enter
avec Nano.
4. Rendez le script exécutable en tapant chmod +x arminstall.sh
5. Lancez le script en tapant ./arminstall.sh
6. Démarrez le serveur en tapant ./VintagestoryServer
ou dotnet VintagestoryServer.dll
Ceci téléchargera la dernière version de Vintagestory dans le répertoire de travail actuel, puis remplacera les fichiers nécessaires pour fonctionner avec ARM.
Si, à un moment donné, vous souhaitez mettre à jour la dernière version de Vintage Story, il vous suffit de relancer le script.
Commande simple de démarrage du serveur
Si vous souhaitez utiliser un script personnalisé ou simplement démarrer manuellement votre serveur, vous pouvez lancer
dotnet VintagestoryServer.dll --dataPath /path/to/data
Ou
./VintagestoryServer --dataPath /path/to/data
si la variable d'environnement DOTNET_ROOT
est définie.
Mettre à jour le serveur
Si vous souhaitez installer une version plus récente, retirez tous les fichiers de l'ancienne installation. Si vous avez choisi de mettre vos données de jeu dans le dossier d'installation, faites attention à ne pas le supprimer ou vous pourriez perdre vos sauvegardes, configurations et données de joueur. Téléchargez le dernier fichier "Tar.gz Archive/Linux (server only)" et extrayez-le. Si vous ne possédez qu'une connexion FTP à votre serveur distant, vous devrez extraire localement le serveur et transférer chaque fichier un par un.
Configuration Basique
Une fois votre serveur lancé, vous pourriez chercher à modifier certaines options de configuration. Vous pouvez configurer votre serveur pendant son fonctionnement à travers des commandes ou lorsque le serveur est arrêté en éditant le fichier serverconfig.json . Sur Windows, le fichier se trouve par défaut à %appdata%/VintageStoryData/serverconfig.json. Sur Linux, le fichier se trouve à ./data/serverconfig.json du dossier de votre serveur (par exemple : /home/vintagestory/server/data/serverconfig.json si installé de la même manière qu'ici).
Remarque :
La manière la plus facile de configurer les paramètres de votre monde est de le créer en mode solo en utilisant les options avancées de création de monde, pour ensuite envoyer ses fichiers pour l'utiliser en tant que monde de serveur. |
Des explications sur les données de "serverconfig.json" peuvent être trouvées ici : Configuration Serveur
Voici quelques configurations par commandes que vous souhaiteriez typiquement mettre.
/serverconfig upnp [0|1]
Si paramétré sur 1, le serveur de jeu tentera de rediriger les ports à votre place./serverconfig name Serveur PvE Pacifique
Paramètre le nom du serveur visible sur la liste des serveurs publics./serverconfig description Ceci est un serveur de survie médiévale, PvE uniquement, bienvenue à tous ! <3
Paramètre la description du serveur visible sur la liste des serveurs publics./serverconfig motd Salut {playername} ! N'oublie pas de suivre les règles du serveur !
Le message de bienvenue quand un joueur rejoint le serveur./serverconfig password azerty
Permet d'empêcher l'accès au serveur par un mot de passe. Utilisez/serverconfig nopassword
pour de nouveau donner l'accès public./serverconfig advertise (1|0)
Permet d'afficher ou non le serveur sur la liste des serveurs publics.
Pour terminer, vous pouvez de la même manière configurer un serveur créé avec "Ouvrir au LAN", attention cependant, certaines configurations seront directement remises par défaut, par exemple l'emplacement des fichiers de sauvegarde.
Acquérir les droits administrateurs
Si vous avez accès à la console du serveur, tapez directement /op nom_du_joueur
. Sinon, ouvrez le "serverconfig.json" et remplacez :
"StartupCommands": null,
avec :
"StartupCommands": "/op nom_du_joueur",
Dans les deux cas, vous devez remplacer nom_du_joueur
avec votre véritable nom de joueur.
Serveur dédié avancé
Debian avec systemd et rsyslog
Si vous préférez utiliser systemd au lieu de screen pour faire fonctionner votre serveur VS, vous pouvez suivre ces instructions.
Nous allons également configurer rsyslog pour séparer tous les journaux d'états dans des fichiers distincts.
Installation
1. Créer un utilisateur
adduser --shell /bin/bash --disabled-password gameserver
2. Créer les dossiers
mkdir -p /srv/gameserver/vintagestory mkdir -p /srv/gameserver/data/vs mkdir -p /usr/lib/systemd/system
3. Télécharger le jeu
cd /srv/gameserver/vintagestory
Allez sur http://account.vintagestory.at/downloads
Copiez le lien du dernier paquet "vs_server_linux-x64_*.*.*.tar.gz" (Linux Server (.tar.gz) dans la partie Show other available downloads of Vintage Story)
Téléchargez avec "wget" depuis la console (Vintage Story version 1.18.8 dans cet exemple).
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz
4. Extraire le paquet tar.gz
tar xzf vs_server_linux-x64_1.18.8.tar.gz
5. Changer les paramètres d'accès
Vous devez définir les droits d'accès du répertoire de votre serveur de jeux pour éviter les erreurs d'autorisations.
chown -R gameserver:gameserver /srv/gameserver
6. Créer le fichier de service systemd
Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano).
nano /usr/lib/systemd/system/vintagestoryserver.service
Insérez le contenu suivant :
[Unit] Description=Unite Serveur Vintage Story After=network.target [Service] WorkingDirectory=/srv/gameserver/vintagestory ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs Restart=always RestartSec=30 StandardOutput=syslog StandardError=syslog SyslogIdentifier=VSSRV User=gameserver Group=gameserver [Install] WantedBy=multi-user.target
Assurez-vous que le nouvel utilisateur a accès à la commande dotnet
ou remplacez la commande avec le chemin complet là où vous avez installé la routine dotnet (si vous avez utilisé une installation personnalisée). Ou bien vous pouvez aussi utiliser ExecStart=VintagestoryServer --dataPath /srv/gameserver/data/vs
si la variable d'environnement DOTNET_ROOT
a été définie.
7. Créer un fichier de configuration pour rsyslog
Utilisez votre logiciel de modification de fichier préféré pour créer un fichier de service (dans cet exemple nano).
nano /etc/rsyslog.d/vintagestoryserver.conf
Insérez le contenu suivant :
if $programname == 'VSSRV' then { if($msg contains "Chat") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/chat.log") } else if($msg contains "verließ") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/login.log") } else if($msg contains "join") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/login.log") } else if($msg contains "Server Warning") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/warn.log") } else if($msg contains "Server Notification") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/info.log") } else if($msg contains "Server Debug") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/debug.log") } else if($msg contains "Server Event") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/event.log") } else { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/other.log") } } # Discard if $programname == 'VSSRV' then ~
8. Redémarrer rsyslog / activer le service Pour activer rsyslog et votre serveur vintagestory, tapez les commandes suivantes :
systemctl restart rsyslog.service; systemctl enable vintagestoryserver.service systemctl start vintagestoryserver.service
Arrêter, Démarrer, Désactiver le Serveur
Pour arrêter manuellement votre serveur VS, utilisez la commande suivante :
systemctl stop vintagestoryserver.service
Pour redémarrer manuellement votre serveur VS, tapez :
systemctl start vintagestoryserver.service
Pour désactiver le service, utilisez :
systemctl disable vintagestoryserver.service
Configuration
Pour modifier la configuration de votre serveur, arrêtez-le et modifiez le fichier suivant :
nano /srv/gameserver/data/vs/serverconfig.json
Après avoir enregistré vos modifications, redémarrez le serveur.
Redémarrage programmé
Si vous souhaitez que votre serveur redémarre tous les jours, vous pouvez créer un cronjob de la manière suivante :
crontab -e
Insérez cette ligne pour arrêter le serveur à 04h30 :
30 4 * * * systemctl stop vintagestoryserver.service
Vous pouvez maintenant exécuter des tâches de sauvegarde et les relancer avec la ligne suivante à 04:32 (si vous exécutez une sauvegarde, planifiez un peu plus de temps) :
32 4 * * * systemctl start vintagestoryserver
Si vous souhaitez simplement redémarrer le serveur, utilisez plutôt cette ligne :
30 4 * * * systemctl restart vintagestoryserver.service
Journalisation
La configuration de rsyslog divise les journaux du serveur en fichiers distincts que vous pouvez consulter avec la commande "tail".
Pour les connexions et déconnexions :
tail -f /var/log/vintagestory-server/login.log
Pour tous les messages de chat :
tail -f /var/log/vintagestory-server/chat.log
Pour tous les messages contenant [Server Warning] :
tail -f /var/log/vintagestory-server/warn.log
Pour tous les messages contenant [Server Notification] :
tail -f /var/log/vintagestory-server/info.log
Pour tous les messages contenant [Server Debug] :
tail -f /var/log/vintagestory-server/debug.log
Pour tous les messages contenant [Server Event] :
tail -f /var/log/vintagestory-server/event.log
Pour tous les autres messages :
tail -f /var/log/vintagestory-server/other.log
Instances multiples de serveurs
Si vous souhaitez utiliser plusieurs instances sur la même machine, il vous suffit de refaire certaines des étapes ci-dessus. Voici un exemple pour une deuxième instance :
mkdir -p /srv/gameserver/data/vs2 nano /usr/lib/systemd/system/vintagestoryserver2.service
Copiez le texte de l'étape 6 et modifiez ces lignes :
Description=Vintage Story Server 2 Unit ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs2 SyslogIdentifier=VSSRV2
Créez un fichier rsyslog et copiez le code de l'étape 7 :
nano /etc/rsyslog.d/vintagestoryserver2.conf
Changez VSSRV
en VSSRV2
et /var/log/vintagestory-server
en /var/log/vintagestory-server2
Avant de procéder, faites une copie de votre première configuration de serveur et modifiez-la en fonction de vos besoins (n'oubliez pas de changer les ports !!!).
cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/ nano /srv/gameserver/data/vs2/serverconfig.json
Démarrez maintenant le service :
systemctl restart rsyslog.service; systemctl enable vintagestoryserver2.service systemctl start vintagestoryserver2.service
Installez cronjob :
crontab -e
Terminez avec :
30 4 * * * systemctl restart vintagestoryserver2.service
Amusez-vous bien !
Configuration avancée
Utilisation d'un enregistrement SRV pour diriger un domaine vers votre serveur
Dans certains cas, il se peut que vous ne puissiez pas obtenir un serveur avec le port par défaut (instances multiples sur le même serveur, hôtes payants...), et vous devrez ajouter le port à la fin de l'adresse du serveur afin de vous y connecter.
Mais il se peut que vous souhaitiez éviter d'avoir à spécifier le port (plus facile à retenir, plus propre).
Il existe un moyen de faire pointer un domaine vers votre serveur et d'éviter d'avoir à ajouter le port : les enregistrements SRV
Les enregistrements SRV vous permettent de faire pointer un domaine/sous-domaine vers votre instance, tout en indiquant au jeu le port à utiliser.
La manière de configurer les enregistrements SRV dépend de votre fournisseur de domaine, et vous devriez consulter sa documentation avant d'effectuer des changements. Cependant, l'idée et les valeurs restent les mêmes pour chaque fournisseur.
Prenons un serveur avec les détails suivants :
- Addresse :
play.example.com
- Port :
50030
- Domaine propre :
mydomain.com
- Sous-domaine souhaité :
vintagestory.mydomain.com
Vos enregistrements SRV bruts devraient ressembler à ceci :
_vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com.
Les traits de soulignement et les points sont importants ! Voici quelques détails :
_vintagestory
définit le service, dans notre cas, Vintage Story_tcp
définit le protocole, Vintage Story utilise TCPvintagestory.mydomain.com.
est le sous-domaine que nous voulons utiliser. Le point final est important !IN SRV
Définit le type d'enregistrement, ne modifiez pas ceci10 10
sont dans l'ordre, la priorité et la pondération de notre enregistrement, dans notre cas ils ne sont pas important, car vous n'allez probablement pas équilibrer la charge d'un serveur Vintage Story50030
est le port que notre instance va écouterserver.example.com.
est la cible, où notre serveur est situé. Le point final est obligatoire puisque le serveur ciblé n'est pas dans le même domaine que nous. Si c'était le cas, vous n'auriez besoin que d'ajouter le sous-domaine de la cible sans le point final
Si vous vouliez pointer votre enregistrement directement à votre domaine, vous auriez mydomain.com.
au lieu de vintagestory.mydomain.com.
Voici comment procéder pour OVH et Hetzner (N'oubliez pas de modifier les valeurs pour les adapter à votre configuration !) :
OVH
Vous devrez aller dans votre zone DNS et ajouter une entrée, sélectionner le type d'enregistrement SRV :
- Sous-domaine :
_vintagestory._tcp.vintagestory
Vous n'avez pas besoin d'ajouter votre domaine, car leur formulaire le fait pour vous. - TTL : Il n'est pas nécessaire de modifier ceci
- Priorité :
10
- Pondération :
10
- Port :
50030
- Cible :
server.example.com.
Hetzner
Vous devrez créer un enregistrement à partir de leur console DNS :
- Type :
SRV
- Nom :
_vintagestory._tcp.vintagestory.mydomain.com.
Cliquez sur le champ Valeur pour entrer les détails :
- Priorité :
10
- Pondération :
10
- Port :
50030
- Cible :
server.example.com.
Attendez quelques minutes pour que votre enregistrement se propage et essayez ensuite de l'utiliser pour vous connecter au serveur, en utilisant vintagestory.mydomain.com
comme adresse.
Vous êtes maintenant prêt à partager votre serveur avec votre domaine personnalisé.
Wiki Navigation | |
---|---|
Vintage Story | Guides • Foire aux questions (FAQ) • Vintage Story Original Soundtrack • Versions • Controls |
Systèmes de jeu | Artisanat • Taille de pierre • Modelage d'argile • Forge • Cuisine • Température • Faim • Minage • Stabilité temporelle • Puissance mécanique • Commerce • Agriculture • Élevage |
Le Monde | Création du monde • Biomes • Météo • Tempêtes temporelles |
Objets | Outils • Armes • Armure • Vêtements • Sacs • Matériau • Nourriture |
Blocs | Terrain • Plantes • Décoratifs • Éclairage • Fonctionnels • Minerai |
Créatures | Entités hostiles • Animaux • PNJs • Joueurs |
Miscellaneous | Liste des commandes client • Liste des commandes serveur • Creative Starter Guide • Bot System • How_to_use_WorldEdit • Caméra cinématique • Enregistrement de vidéos à taux variable • ServerBlockTicking |