Jump to content

Don't Starve Together Dedicated Server Quick Setup Guide - Linux (Italian language)


Recommended Posts

Premessa: questa procedura è stata fatta su macchina linux a 64bit con OS Centos 7.

-----------------------------------------------------

Punto 0  app e librerie

Installiamo le app che non sono presenti di default nel OS e carichiamo le librerie che ci serviranno.
Se usi altro OS devi modificare i comando yum con quello previsto dal tuo OS.

Per info puoi vedere qui:  dontstarve.fandom.com

yum update
yum install nano
yum install wget
yum install tmux screen -y
yum install glibc libstdc++

yum -y install glibc.i686

yum install libcurl.so.4

yum install libstdc++.so.6
yum install glibc.i686 libstdc++.i686

-----------------------------------------------------

Punto 1  pre fase di installazione server

Crea un utente e passiamo ad esso, questo utente ti serve per far eseguire steamcmd  e dedicate server in modo sicuro.
 

sudo useradd -m DSTs001 && sudo passwd DSTs001

su - DSTs001

le procedure che seguono le devi fare con l’utente creato DSTs001

Creiamo 2 file per l'esecuzione degli aggiornamenti e per la prima esecuzione ed avvio del dedicate server.

Molte guide fanno fare la ricerca degli aggiornamenti ad ogni avvio del dedicate server, io ti consiglio di eseguire gli aggiornamenti in modo mirato e controllato, facendo prima un bkup dell'immagine attuale.

touch dst_updata.sh && touch dst_start.sh
chmod +x dst_updata.sh && chmod +x dst_start.sh

sed -i -e 's/\r$//' dst_updata.sh && sed -i -e 's/\r$//' dst_start.sh

apri i due file (comando nano nome-file) e copia:

file dst_updata.sh  questo file farà aggiornare steamcmd e il dedicate server

#!/bin/sh

steamcmd_dir=$HOME/steamcmd
dst_server_dir=$HOME/DSTserver
storage_name="DSTstorage"
config_name="DSTconfig"
storage_dir="$dst_server_dir/$storage_name"

function fail()
{
echo Error: "$@" >&2
exit 1
}

function check_for_file()
{
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}

check_for_file "$steamcmd_dir/steamcmd.sh"

cd "$dst_server_dir" || fail "Missing $dst_server_dir directory!"
cd "$dst_server_dir/$storage_name" || fail "Missing $dst_server_dir/$storage_name directory!"
cd "$dst_server_dir/$storage_name/$config_name" || fail "Missing $dst_server_dir/$storage_name directory!"
cd ~

$steamcmd_dir/steamcmd.sh +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +force_install_dir $dst_server_dir +login +app_update 343050 validate +quit
$dst_server_dir/bin64/dontstarve_dedicated_server_nullrenderer_x64 -only_update_server_mods -persistent_storage_root $storage_dir -conf_dir $config_name
#$dst_server_dir/bin64/dontstarve_dedicated_server_nullrenderer_x64 -only_update_server_mods


file dst_start.sh farà avviare il dedicate server

#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
dst_server_dir="$HOME/DSTserver"
cluster_name="Cluster_1"
storage_name="DSTstorage"
config_name="DSTconfig"
storage_dir="$dst_server_dir/$storage_name"
config_dir="$storage_dir/$config_name"
#config_dir="$HOME/.klei/DoNotStarveTogether"

function fail()
{
echo Error: "$@" >&2
exit 1
}

function check_for_file()
{
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}

check_for_file "$steamcmd_dir/steamcmd.sh"
check_for_file "$config_dir/$cluster_name/cluster.ini"
check_for_file "$config_dir/$cluster_name/cluster_token.txt"
check_for_file "$config_dir/$cluster_name/Master/server.ini"
check_for_file "$config_dir/$cluster_name/Caves/server.ini"
check_for_file "$dst_server_dir/bin64"

cd "$config_dir" || fail "Missing $config_dir directory!"
cd "$dst_server_dir/bin64" || fail "Missing $dst_server_dir/bin64 directory!"

run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-persistent_storage_root "$storage_dir")
run_shared+=(-conf_dir "$config_name" )
run_shared+=(-monitor_parent_process $$)

"${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'


-----------------------------------------------------

Punto 2 installazione dei server

Crea due cartelle per steamcmd  e per dedicate server

mkdir ~/steamcmd && mkdir ~/DSTserver

Crea due cartelle cartelle annidate per le impostazione e salvataggio dati del dedicate server

mkdir ~/DSTserver/DSTstorage && mkdir ~/DSTserver/DSTstorage/DSTconfig

Passiamo alla cartella steamcmd per preinstallare steamcmd

cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xvzf -
cd ~


Installato steamcmd nella cartella steamcmd non sarà necessario avviarlo singolarmente ma lo avviamo con dst_updata.sh che ci scaricherà anche il dedicate server

./dst_updata.sh

Se da errore error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory 

Spoiler

devi usare usare il comando: 

ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4

oppure puoi modificare /bin/ invece di /bin64/ e dontstarve_dedicated_server_nullrenderer invece di dontstarve_dedicated_server_nullrenderer_x64 e rifare ./dst_updata.sh


 

-----------------------------------------------------

Punto 3 (caricamento e/o generazione dei mondi)

 

caso 3.1  (se stai generando un mondo nuovo)

Punto 3.1.1

fai la procedura che trovi nel sito forums.kleientertainment.com
spacchettiamo MyDediServer e il contenuto lo copi in ~/DSTserver/storage/config/Cluster_1

All'interno della carella, oltre alle  cartelle Master e Cave, ci deve essere i file:

  • cluster.ini
  • cluster_token.txt [questo in caso di trasferimento può essere uguale ad altri server]

Esempio del contenuto di cluster.ini

Quote

 

[GAMEPLAY]

game_mode =

max_players =

pvp =

pause_when_empty = 

 

[NETWORK]

cluster_description = 

cluster_name =

cluster_password =

enable_vote_kick =

enable_autosaver =

tick_rate =

connection_timeout =

server_save_slot =

cluster_intention =

 

[ACCOUNT]

token =

 

[MISC]

console_enabled =

 

[STEAM]

steam_group_id =

steam_group_admins =

steam_group_only =

 

[SHARD]

shard_enabled =

bind_ip = 127.0.0.1

master_ip = 127.0.0.1

master_port = 10889

cluster_key = supersecretkey

 


Punto 3.1.2

Nelle cartelle Master e Cave ci devono essere anche:

  • leveldataoverride.lua [caratteristiche del mondo]
  • modoverrides.lua [settaggi delle mod]
  • worldgenoverride.lua [settaggi per la generazione del mod]
  • server.ini [impostazioni per le impostazioni del server per Master e Cave]

Esempio del contenuto di server.ini del Master
 

Quote

[ACCOUNT]
encode_user_path = true


[NETWORK]
server_port = 11000


[SHARD]
is_master = true


[STEAM]
master_server_port = 27018
authentication_port = 8768

[NETWORK]
server_port = 11001
 

Esempio del contenuto di server.ini del Cave

Quote

[NETWORK]
server_port = 11001


[SHARD]
is_master = false
name = Caves
id =

##########


[STEAM]
master_server_port = 27019
authentication_port = 8769

 

 Punto 3.1.3

per generare i file: 

  • leveldataoverride.lua [caratteristiche del mondo]
  • modoverrides.lua [settaggi delle mod]
  • worldgenoverride.lua [settaggi delle mod]

sia per Master e Cave devi avviare il gioco in locale e creare una nuova istanza ed avviarla almeno una volta.

Vai nella cartella di salvataggio dell’istanza direttamente dal gioco

gestione mondo > apri la cartella dei mondi e copiali nelle rispettive cartelle del dedicate server in ~/DSTserver/storage/config/Cluster_1


caso 3.2 (se stai importando un modo già avviato)

 

Punto 3.2.1 (Se vuoi esportare il mondo da un server esistente)

Copia direttamente la cartella del cluster del server vecchio ad esempio:  cluster_2.
ricordati che nel file cached_userid si trova parte del token: questo parametro server per la codifica delle sessioni dei giocatori.

Quindi puoi tranquillamente copiare il file cluster_token.txt, senza generare uno nuovo, insieme al resto della cartella cluster, puoi effettuare eventuali modifiche del file cluster.ini per riconoscere il nuovo server rispetto al vecchio.
Se cambi token bisogna che tu proceda come al punto Punto 3.1.2

 

Punto 3.2.1 (se vuoi importando il mondo che stavi hostando)

Devi generare un token secondo la guida dontstarve.fandom.com o forums.kleientertainment.com

Se generiamo un token da un altro utente dovremmo far loggare uno ad uno i player e modificare i file nella cartelle per ogni giocatore
.klei/DoNotStarveTogether/Cluster_1/Master/save/session/xxxxxxxxxxxx/
.klei/DoNotStarveTogether/Cluster_1/Cave/save/session/xxxxxxxxxxxx/
vedi qui: steamcommunity.com

 

-----------------------------------------------------

Punto 4 aggiungere le mod 

Vai nella cartella DSTserver/mods modifica i file dedicated_server_mods_setup.lua e modsettings.lua

dedicated_server_mods_setup.lua questo file server per far collegare il dedicate server al workshop di steam e scaricare le mod. Dopo il primo avvio ti consiglio di commentare i comandi: aggiungere  -- davanti ai ServerModSetup

modsettings.lua questo file forza l’uso delle mod al dedicate server
Attenzione alcune mod potrebbero dare errori di ForceEnableMod se le mod non sono compatibili nelle versioni linux o non sono settati i file modoverrides.lua nelle cartelle [/i]Master[/i] e Cave; vedi anche forums.kleientertainment.com.

Puoi fare uploading delle mod e vedere quali vanno e quali non vanno.

Puoi guardare questa collezione se stai settando nitrado : don't starve nitrado mods
 

-----------------------------------------------------

Punto 5 avvio e update

ORA PUOI AVVIARE IL SERVER E DIVERTIRTI o morire male, chi lo sa…

ricorda di avviare il server dall’utente DSTs001

su - DSTs001

./dst_start.sh

per fermare il server usa il comando

c_shutdown()

come detto prima puoi controllare quando avviare gli aggiornamenti usando il dst_update.sh sempre loggato dall’utente DSTs001

su - DSTs001

./dst_update.sh

 


 

Edited by Ulti85
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...