Installer un serveur Terraria sous Linux ou sur un NAS Synology

Installer un serveur Terraria sous Linux ou sur un NAS Synology

Tags : Jeux, Linux, NAS, Synology, Tutorial
Catégorie : Divers
Mise en ligne : 5 Janvier 2015 à 00:00

Je viens de me mettre à un petit jeu indépendant, Terraria. Pour ceux qui ne connaissant pas, c'est un genre de Minecraft mais en 2D. En gros vous avez un personnag et vous devez utiliser votre environnement pour construite des habitations, trouver des ressources pour faire des armes, armures ... Le jeu est soit PvE, soit PvP. Et voulant y jouer avec mes amis à moindre frais, j'ai créé mon propre serveur.

Pour créer votre serveur vous allez avoir besoin soit d'un ordinateur sous Linux (peut importe la version, même sans interface) ou d'un NAS Synology pour continuer ce tuto. Sur Windows vous allez voir c'est un fichier *.exe que vous allez pouvoir éxecuter directement à la main.

Tout d'abord on va installer Mono. Mono est une plate-forme qui permet d'éxecuter des applications Windows sous Linux.

Linux :

sudo add-apt-repository ppa:inizan-yannick/mono
sudo apt-get install mono-runtime

NAS Synology :

  1. Rendez vous dans le centre de paquets
  2. Paramètres, onglets Bêta, et cochez : Oui, je veux voir les versions bêta !
  3. Recherchez Mono et installez-le

Pour utiliser Terraria sur un serveur nous allons avoir besoin de TShock. TShock est un serveur pour Terraria écrit en C# et basé sur l'API serveur de Terraria.

Pour l'installer, on va devoir nous connecter en SSH à notre serveur. Je suppose que vous savez vous connecter à votre serveur en SSH sinon une petite recherche Google devrait suffir. Pour ceux qui ont un NAS Synology, vous devez vous connecter avec l'utilisateur root et avec le mot de passe de l'admin.

# Adaptez le dossier à vos besoin
cd /volume1/homes/admin/

# Pour les NAS Synology, je vous renvoi à mon tuto Installer IPKG sur son NAS Synology DSM 5 (http://www.babeuloula.fr/blog/billet/52/installer-ipkg-sur-son-nas-synology-dsm-5/)
# A la fin de ce tuto, j'explique comment installer wget-ssl
wget https://github.com/NyxStudios/TShock/releases/download/v4.2300/TShock.4.2.3.0702.zip

unzip -d Terraria TShock.4.2.3.0702.zip
rm TShock.4.2.3.0702.zip

cd Terraria/
mono TerrariaServer.exe

Le serveur se lance, je vous laisse configurer votre serveur comme vous le souhaitez.

Je vous mets dans la source du billet, le contenu d'un fichier texte qui permet de lancer directement le serveur avec toutes les configurations. Ce qui vous permettera lancer le serveur correctement au lancement de votre serveur.

Et si vous souhaitez fermer la console sans que le serveur ne se ferme vous pouvez installer screen :

# NAS Synology
ipkg install screen

# Linux
sudo apt-get install screen

Et lancez le avec :

screen mono TerrariaServer.exe

Source

Pour lancer le serveur en ligne de commande

mono TerrariaServer.exe -config serverconfig.txt

Contenu du fichier serverconfig.txt

#the following is a list of available command line parameters:

#-config                       Specifies the configuration file to use.
#-port                         Specifies the port to listen on.
#-players  / -maxplayers    Sets the max number of players
#-pass  / -password     Sets the server password
#-world                         Load a world and automatically start the server.
#-autocreate <#>                            Creates a world if none is found in the path specified by -world. World size is specified by: 1(small), 2(medium), and 3(large).
#-banlist                             Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory.
#-worldname                     Sets the name of the world when using -autocreate.
#-secure                                    Adds addition cheat protection to the server.
#-noupnp                                    Disables automatic port forwarding

#Set's the max number of players allowed on a server.  Value must be between 1 and 255
#maxplayers=8

#Load a world and automatically start the server.
#world=/volume1/homes/admin/Terraria/Terraria/Worlds/world1.wld

#Set the port number
#port=7777

#Set the server password
#password=p@55w0rd

#Set the message of the day
#motd=Please don’t cut the purple trees!

#Sets the folder where world files will be stored
#worldpath=/volume1/homes/admin/Terraria/Terraria/Worlds/

#Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large).
#autocreate=3

#Sets the name of the world when using autocreate
#worldname=World

#The location of the banlist. Defaults to "banlist.txt" in the working directory.
#banlist=banlist.txt

#Adds addition cheat protection.
#secure=1

#Sets the server language 1:English, 2:German, 3:Italian, 4:French, 5:Spanish
#lang=1

#Automatically forward ports with uPNP
#upnp=1

#Reduces enemy skipping but increases bandwidth usage. The lower the number the less skipping will happen, but more data is sent. 0 is off.
#npcstream=60

#Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle
priority=1

<Laisser un commentaire/>

* Champs obligatoire

BaBeuloula

Posté le 1 Juillet 2016 à 00:00

Dans la th&eacute;orie oui. Apr&egrave;s j'ai jamais test&eacute;

helloworld

Posté le 1 Juillet 2016 à 00:00

ok mais du coup je me disais que si je l' ouvre sur mon pc sur le quel je joue me suffirait il &agrave; ouvrir le port 777 sur ma box et sur l' ip de mon pc &agrave; permettre &agrave; des personnes &agrave; ce connecter ?

BaBeuloula

Posté le 1 Juillet 2016 à 00:00

Salut helloworld,<br>
<br>
Vu le message d'erreur il semblerai que se soit plus un probl&egrave;me de compilation de Terraria. Je te conseille donc de poster ton erreur sur le github de TShock (https://github.com/NyxStudios/TShock/issues).<br>
<br>
Bonne journ&eacute;e

helloworld

Posté le 1 Juillet 2016 à 00:00

Bonjour, j' ai une erreur lors de l' execution de mono TerrariaServer.exe, je te donne ce qu' il me retourne :<br>
<br>
pi@raspberrypi:~/serveur_terraria/Terraria $ sudo mono TerrariaServer.exe <br>
Missing method .ctor in assembly /home/pi/serveur_terraria/Terraria/TerrariaServer.exe, type System.Runtime.CompilerServices.ExtensionAttribute<br>
Can't find custom attr constructor image: /home/pi/serveur_terraria/Terraria/TerrariaServer.exe mtoken: 0x0a000122<br>
* Assertion at class.c:5597, condition `!mono_loader_get_last_error ()' not met<br>
<br>
Stacktrace:<br>
<br>
<br>
Native stacktrace:<br>
<br>
<br>
Debug info from gdb:<br>
<br>
[New LWP 4796]<br>
[Thread debugging using libthread_db enabled]<br>
Using host libthread_db library &quot;/lib/arm-linux-gnueabihf/libthread_db.so.1&quot;.<br>
0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a<br>
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40<br>
40 ../sysdeps/unix/sysv/linux/waitpid.c: Aucun fichier ou dossier de ce type.<br>
Id Target Id Frame <br>
2 Thread 0x7699f430 (LWP 4796) &quot;mono&quot; 0x76e2ca40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48<br>
* 1 Thread 0x76f3e000 (LWP 4795) &quot;mono&quot; 0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a<br>
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40<br>
<br>
Thread 2 (Thread 0x7699f430 (LWP 4796)):<br>
#0 0x76e2ca40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48<br>
#1 0x76e2caf4 in __new_sem_wait (sem=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69<br>
#2 0x00219f98 in mono_sem_wait ()<br>
#3 0x0019091c in ?? ()<br>
Backtrace stopped: previous frame identical to this frame (corrupt stack?)<br>
<br>
Thread 1 (Thread 0x76f3e000 (LWP 4795)):<br>
Cannot access memory at address 0x2a<br>
#0 0x76e2eee8 in __libc_waitpid (pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40<br>
#1 0x000c0ba4 in ?? ()<br>
Cannot access memory at address 0x2a<br>
Backtrace stopped: previous frame identical to this frame (corrupt stack?)<br>
<br>
=================================================================<br>
Got a SIGABRT while executing native code. This usually indicates<br>
a fatal error in the mono runtime or one of the native libraries <br>
used by your application.<br>
=================================================================<br>
<br>
si tu saurais comment r&eacute;soudre cette erreur je suis preneur, merci d' avance.

BaBeuloula

Posté le 20 Mai 2015 à 00:00

Salut,<br>
<br>
Je n'ai pas constat&eacute; de consommation &eacute;lev&eacute;e. Mais bon apr&egrave;s moi c'est pas un vrai Synology mais un XPEnology avec un i3 et 4Go de RAM.<br>
<br>
&Ccedil;a ne lag, et j'utilise mon NAS aussi pour la vid&eacute;o avec Plex, mes photos ... Je n'ai pas de soucis. <br>
<br>
A toi de voir avec ton NAS

Jir4

Posté le 20 Mai 2015 à 00:00

Salut,<br>
<br>
As tu un retour sur la consommation de ressource du serveur terraria sur le NAS. Tu le ressens &agrave; l'utilisation ? &ccedil;a ce voit vraiment ? Pour ma part j'ai un DS214j donc ce n'est pas non plus une machine de guerre niveau proco/ram.<br>
<br>
Merci pour tes retours ;)<br>
<br>
Bisous<br>