Installer un serveur Terraria sous Linux ou sur un NAS Synology

5 Janvier 2015 à 00:00 Jeux vidéos

Je ne publierai plus rien sur ce blog. Un nouveau blog existe maintenant. Il se nomme Hardly Smart.

Vous pourrez y retrouver des astuces plus larges sur l'informatique ainsi que mes anciens billets de blog.

Je vous souhaite une bonne lecture sur Hardly Smart.


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

Articles liés

Les commentaires ont été désactivés.

9 commentaires

Jir4 20 Mai 2015 à 00:00

Salut,

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.

Merci pour tes retours ;)

Bisous

BaBeuloula 20 Mai 2015 à 00:00

Salut,

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.

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

A toi de voir avec ton NAS

helloworld 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 :

pi@raspberrypi:~/serveur_terraria/Terraria $ sudo mono TerrariaServer.exe
Missing method .ctor in assembly /home/pi/serveur_terraria/Terraria/TerrariaServer.exe, type System.Runtime.CompilerServices.ExtensionAttribute
Can't find custom attr constructor image: /home/pi/serveur_terraria/Terraria/TerrariaServer.exe mtoken: 0x0a000122
* Assertion at class.c:5597, condition `!mono_loader_get_last_error ()' not met


Stacktrace:


Native stacktrace:


Debug info from gdb:

[New LWP 4796]
[Thread debugging using libthread_db enabled]
Using host libthread_db library &quot;/lib/arm-linux-gnueabihf/libthread_db.so.1&quot;.
0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
40 ../sysdeps/unix/sysv/linux/waitpid.c: Aucun fichier ou dossier de ce type.
Id Target Id Frame
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
* 1 Thread 0x76f3e000 (LWP 4795) &quot;mono&quot; 0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40

Thread 2 (Thread 0x7699f430 (LWP 4796)):
#0 0x76e2ca40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
#1 0x76e2caf4 in __new_sem_wait (sem=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69
#2 0x00219f98 in mono_sem_wait ()
#3 0x0019091c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76f3e000 (LWP 4795)):
Cannot access memory at address 0x2a
#0 0x76e2eee8 in __libc_waitpid (pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
#1 0x000c0ba4 in ?? ()
Cannot access memory at address 0x2a
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

si tu saurais comment r&eacute;soudre cette erreur je suis preneur, merci d' avance.

BaBeuloula 1 Juillet 2016 à 00:00

Salut helloworld,

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

Bonne journ&eacute;e

helloworld 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 1 Juillet 2016 à 00:00

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

Electrodydy 18 Septembre 2017 à 03:50

Daccord, Super :)
probléme je suis un bricoleur est il se trouve que j'ai un Nas fais maison donc l'os que j'ai choisis est OpenMediaVault est je voudrais savoir si on pourrais faire pareil qu'avec les Nas Synology.

BaBeuloula 23 Septembre 2017 à 08:06

Salut,
Tu peux installer un OS de Synology sur un NAS fait maison. C'est justement ce que j'ai. Regarde du coté de XPEnology. Tu devrais trouver ton bonheur.

ServCompare 8 Février 2021 à 05:31

Pas bête d'hoster soi-même son propre serveur Terraria. Perso j'ai choisi d'en louer un, à force d'avoir des problèmes de coupures de serveur j'ai préféré payer quelques euros par mois et avoir l'esprit tranquille! :)

J'ai galéré pendant un moment pour trouver chez quel hébergeur aller, du coup j'ai fait un site qui récapitule la chose, vous pouvez y aller sur https://servcompare.fr/games/location-serveur-terraria