Installer un serveur Starbound sous GNU/Linux Debian 8 64bits

Starbound est un jeu d’aventure bac à sable en 2D. Il a été créé par le studio Chucklefish et la bêta test est sorti en 2013. Globalement, le joueur devra explorer univers et planètes afin d’accomplir des quêtes. Il lui sera possible d’obtenir des armes, armures et objets divers. Je vous invite à lire ce guide pour d’avantage d’informations.

Dans cet article, je vais vous expliquer comment installer un serveur dédié Starbound sous GNU/Linux Debian 8 64bits.

1- Préparation

Mise à jour et installation des packages :

apt-get update ; apt-get upgrade
apt-get install lib32gcc1 libvorbisfile3 screen

Création d’un utilisateur applicatif :

adduser steamsrv
su - steamsrv

Création des répertoires :

mkdir starbound
mkdir steamcmd ; cd steamcmd

 

2- Installation de steamcmd

Pour plus d’information sur steamcmd, je vous invite à lire cet article.

Téléchargez et installez le client steam console :

wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
./steamcmd.sh

 

3- Installation du serveur Starbound

Pour installer votre serveur Starbound, vous devez vous connecter avec votre compte Steam. En effet, pour certain jeu, il est possible d’utiliser le compte « anonymous » mais ce n’est pas le cas ici. De plus, après vous avoir authentifié, Vérifier vos e-mails afin de récupérer votre code d’accès Steam Guard et entrer-le dans l’invite (vous n’aurez qu’à le faire une fois par ordinateur/serveur).

Steam>login <username>
Logging in user '<username>' to Steam Public...

password:<password>

Login Failure: Account Logon Denied
This computer has not been authenticated for your account using Steam Guard.
Please check your email for the message from Steam, and enter the Steam Guard
code from that message.
You can also enter this code at any time using 'set_steam_guard_code'
at the console.

Steam Guard code:<Steam-Guard-Code>
Logged in OK
Waiting for license info...OK

Steam> force_install_dir /home/steamsrv/starbound
Steam> app_update 211820
Steam> quit

 

3- Premier lancement

Déplacez-vous dans le répertoire contenant le binaire et lancez-le :

cd /home/steamsrv/starbound/linux64
 ./starbound_server

CTRL+C pour stopper le serveur

 

Depuis votre PC, vous pouvez rejoindre dès maintenant votre serveur Starbound !

Afin que vos amis puissent vous rejoindre, vous devez ouvrir le port TCP 21025. De plus, le port TCP 21026 peut être ouvert afin d’administrer votre serveur à distance via le protocole RCON.

 

4- Configuration

Le fichier de configuration de votre serveur Starbound est dans le répertoire ci-dessous :

/home/steamsrv/starbound/giraffe_storage/starbound.config

 

Les paramètres sont expliqués sur cette page et pour ajouter un administrateur, vous devez suivre cet documentation.

 

5- Gestion de votre serveur via un script Bash

#!/bin/bash
# /etc/init.d/starbound-srv
# version 1.0 2015-11-05 (YYYY-MM-DD)

### BEGIN INIT INFO
# Provides:   starbound
# Required-Start: $local_fs $remote_fs
# Required-Stop:  $local_fs $remote_fs
# Should-Start:   $network
# Should-Stop:    $network
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description:    Starbound server
# Description:    Starts the starbound server
### END INIT INFO

#Settings
SERVICENAME='starbound-server'
SERVICE='./starbound_server'
OPTIONS=''
USERNAME='steamsrv'
SBPATH='/home/steamsrv/starbound'
CPU='linux64'								# computer architecture : linux64 or linux32
INVOCATION="$SERVICE $OPTIONS"
STEAMPATH='/home/steamsrv/steamcmd'
ME=`whoami`

# Function
as_user() {
  if [ "$ME" == "$USERNAME" ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}

sb_start() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "$SERVICENAME is already running!"
  else
    echo "Starting $SERVICENAME..."
    cd $SBPATH
    as_user "cd $SBPATH/$CPU && screen -dmS $SERVICENAME $INVOCATION"
    sleep 7
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICENAME is now running."
    else
      echo "Error! Could not start $SERVICENAME!"
    fi
  fi
}

sb_stop() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "Stopping $SERVICENAME"
    as_user "screen -p 0 -S $SERVICENAME -X quit"
    sleep 7
      else
    echo "$SERVICENAME was not running."
  fi
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "Error! $SERVICENAME could not be stopped."
  else
    echo "$SERVICENAME is stopped."
  fi
}

# Main script
case "$1" in
  start)
    sb_start
    ;;
  stop)
    sb_stop
    ;;
  restart)
    sb_stop
    sb_start
    ;;
  status)
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICENAME is running."
    else
      echo "$SERVICENAME is not running."
    fi
    ;;
  *)
  echo "Usage: starbound.sh {start|stop|status|restart}"
  exit 1
  ;;
esac

exit 0
starbound-srv

En root, télécharger le script dans le répertoire /etc/init.d et effectuer les actions suivantes :

chown steamsrv:steamsrv /etc/init.d/starbound-srv
chmod a+x /etc/init.d/starbound-srv
cd /home/steamsrv ; ln -s /etc/init.d/starbound-srv

 

6- Lancez votre nouveau serveur dédié Starbound

su - steamsrv
./starbound-srv start

 

Il vous est également possible de :

./starbound-srv stop                 # Arrêter le serveur
./starbound-srv status               # Afficher l'état du serveur
./starbound-srv restart              # Redémarrer le serveur

 

7- Mettre à jour son serveur Starbound

Je vous conseille d’exécuter régulièrement le script ci-dessous afin de mettre à jour votre serveur Starbound :

#/!bin/bash
# version 1.0 2015-11-05 (YYYY-MM-DD)
#
# Script for steam server update
#

# Variables
USERSTEAM="mon@email.com"
STEAMGUARD="mon-password-steam-guard"
SERVICENAME='starbound-server'
SERVICE='./starbound_server'
USERNAME='steamsrv'
SBPATH='/home/steamsrv/starbound'
STEAMPATH='/home/steamsrv/steamcmd'
ME=`whoami`
APPLI='211820'
SB_START='/etc/init.d/starbound-srv start'
SB_STOP='/etc/init.d/starbound-srv stop'

# If you need your password
#read -s -p "Enter your password: " password
# Modify the commande bellow
# as_user "$STEAMPATH/steamcmd.sh +login $USERSTEAM +force_install_dir $SBPATH +app_update $APPLI +set_steam_guard_code $STEAMGUARD +exit" << ENTERPASSWORD
#$password
#ENTERPASSWORD

# Function
as_user() {
  if [ "$ME" == "$USERNAME" ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}


# Main script
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "$SERVICENAME is running!"
	as_user "$SB_STOP"
	sleep 7
	if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
	then
		echo "Error, $SERVICENAME is running!"
		exit 1
	else
		echo "$SERVICENAME was not running."
	fi
	# Starting Update
	echo "Starting update..."
	as_user "$STEAMPATH/steamcmd.sh +login $USERSTEAM +force_install_dir $SBPATH +app_update $APPLI +set_steam_guard_code $STEAMGUARD +exit"
	echo "Update was finish !"
	# Starting Server
	echo "Starting $SERVICENAME..."
	as_user "$SB_START"
	sleep 7
	if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
	then
	  echo "$SERVICENAME is now running."
	else
	  echo "Error! Could not start $SERVICENAME!"
	fi
  else
	as_user "$STEAMPATH/steamcmd.sh +login $USERSTEAM +force_install_dir $SBPATH +app_update $APPLI +set_steam_guard_code $STEAMGUARD +exit"
	echo "Update was finish !"
fi

exit 0
update_starbound.sh

Le script ci-dessus est en phase de bêta alors n’hésitez surtout pas à remonter vos bugs et vos suggestions dans les commentaires! Merci.

steamsrv@zelda:~$ ./update_starbound.sh
starbound-server is running!
Stopping starbound-server
starbound-server is stopped.
starbound-server was not running.
Starting update...
Redirecting stderr to '/home/steamsrv/steamcmd/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
Logging in user '<username>' to Steam Public...
Using cached credentials. . .
Logged in OK
Waiting for license info...OK
Success! App '211820' already up to date.
Update was finish !
Starting starbound-server...
starbound-server is now running

 

Source et Image.

  • Salut, très cool ton tuto, il m’a bien aidé 2-3 fois.

    J’ai fait une clean install pour la mise à jour 1.0, et il y a eu des modif :
    Il n’y a plus le dossier « linux64 », juste le dossier « linux ». De même que le dossier « giraffe_storage » est devenu simplement « storage ». Et « starbound.config » devenu « starbound_server.config ».

    Il y a peut-être d’autres modif, mais je ne suis pas allé plus loin que l’étape 4 dans le tuto 🙂

    • pazpop

      Salut Ash’,

      Merci pour ton commentaire 🙂
      Je n’administre plus de serveur Starbound mais j’ai vu la mise à jour passé sur Steam et elle ajoute tellement de truc!

      Si j’ai le temps, je mettrai à jour mon tutoriel.

      A bientôt,
      ++