Mich hat ja aktuell auch das Valheim Fieber gepackt. Und weil ich solche Spiele lieber "zusammen" als alleine Spiele, hab ich gleich einen Dedicated Server aufgesetzt, um mit Freunden zusammen Vikinger spielen zu können.

Mein Setup:

Wie fangen wir an? Mit der SteamCMD. Dafür legen wir einen User an

useradd -m steam

Gehen in sein Homverzeichnis

cd /home/steam

Und installieren SteamCMD vom Repo

sudo apt install steamcmd

Dann noch die steamcmd verlinken

ln -s /usr/games/steamcmd steamcmd

Jetzt legen wir ein Verzeichnis für Valheim an:

cd /home/steam
mkdir Valheim

Und installieren den Dedicated Server:

/home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/steam/Valheim +app_update 896660 validate +exit

Sobald das abgeschlossen ist gehen wir in das Valheim Verzeichnis

cd Valheim

Und machen eine Kopie von der Startdatei. Dies wird Explizit empfohlen, damit bei Updates die eigenen Einstellungen nicht überbügelt werden.

cp start_server.sh start_valheimserver.sh

Die genannten Einstellungen passen wir jetzt auch an:

nano start_valheimserver.sh

Und finden dort die Konfig vor, die wir sogleich anpassen:

#!/bin/bash

export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970

# Tip: Make a local copy of this script to avoid it being overwritten by steam.
# NOTE: Minimum password length is 5 characters & Password cant be in the server name.
# NOTE: You need to make sure the ports 2456-2458 is being forwarded to your server through your local router & firewall.
/home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/daniel/.steam/steamapps/common/'Valheim dedicated server' +app_update 896660 +quit

./valheim_server.x86_64 -name "DEIN SERVERNAME" -port 2456 -world "Dedicated" -password "DEIN PASSWORT" -public 1 > /dev/null &

export LD_LIBRARY_PATH=$templdpath

echo "Server started"
echo ""
#read -p "Press RETURN to stop server"
#echo 1 > server_exit.drp

#echo "Server exit signal set"
#echo "You can now close this terminal"

while :
do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
echo "valheim.service: timestamp ${TIMESTAMP}"
sleep 60
done

Logischerweise "DEIN SERVERNAME" und "DEIN PASSWORT" selber ausdenken.
Falls du einen Publicserver erstellen willst, lass das Passwort weg. Falls du nicht willst, dass dein Server in der Serverübersicht gefunden werden kann, ändere -public auf 0.

Jetzt wollen wir noch, dass der Valheim Server als Service startet. Wenn zB mal rebootet wird.

nano valheim.service

Dort fügen wir ein:


[Unit]
Description=Valheim service
Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
Restart=on-failure
RestartSec=10
User=username
WorkingDirectory=/home/steam/Valheim
ExecStart=/home/steam/Valheim/start_valheimserver.sh

[Install]
WantedBy=multi-user.target

Und speichern das Ganze. Im näcshten Schritt registrieren wir den Service:

sudo cp valheim.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl start valheim

Dann können wir als nächstes den Status überprüfen:

sudo systemctl status valheim

Wenn das geklappt hat, richten wir noch den Autostart ein:

sudo systemctl enable valheim.service

Und Bäm fertig.

Ab und an kommt es vor, das ich mich nicht mehr connecten kann. Ist ja auch early access. Dann stoppe ich den Valheim service mit

sudo systemctl stop valheim

Warte kurz und starte dann wieder.

sudo systemctl start valheim

 

Als nächstes, wollen wir selbst ja Admin sein, also im Spiel. Dazu brauchen wir unsere SteamID.

Steam: Account Details -> Unter dem Steam Account Namen

Und wandeln die in eine steamID64 Dec um, mit: https://steamidfinder.com/

Jetzt fügen wir diese ID in folgende die adminlist ein:

nano /.config/unity3d/IronGate/Valheim/adminlist.txt

Jetzt können wir im Spiel selbst folgende Kommandos ausführen:

Befehl Beschreibung
help Auflistung alles Commands
kick [name/ip/userID] Kickt den Spieler
ban [name/ip/userID] Bant den Spieler
unban [ip/userID] Unbant den Spieler
banned Zeigt die Liste aller gebannten Spieler
ping Pingt den Server
lodbias [number] Setzt den "lod bias", die Entfernung ab welcher hoch aufgelöst gerendert wird. Der default ist "1.5"
(wir haben da aber keine riesen Utnerschiede bemerkt)
info Zeigt die system info
save Macht ein world save

 

Apropos Save: Das Savegame befindet sich unter:

/home/steam/.config/unity3d/IronGate/Valheim/worlds/

Falls du Sicherheitskopien erzeugen willst, oder gegen deinen Lokalen Spielstand tauschen willst.

Also legt los und viel Spaß!

Falls dir diese Anleitung etwas gebracht hat und du danke sagen willst, kannst du gern für meinen Valheim Server spenden:
https://bero-host.de/spenden/qstleikmalhp

 

Vielen Dank!

10 Kommentare

Linear

  • Deen  
    Hey, vielleicht kannst du mir helfen, ich komme leider nicht weiter.

    Ich habe damals einen Minecraftserver auf meinem Debian10 vServer installiert und auch hierfür einen User angelegt. Homedir habe ich nach /opt/ verlegt.

    So habe ich es auch hier gemacht, anstatt "steam" heißt mein User "valhalla".
    ---
    sudo useradd -r -m -U -d /opt/valhalla -s /bin/bash valhalla
    sudo su - valhalla
    mkdir -p ~/{backups,tools,server}
    ---
    unter /usr/games/ liegt jetzt steamcmd...

    Hänge jetzt am verknüpfen und installieren...
    ---
    ln -s /usr/games/steamcmd steamcmd

    /opt/valhalla/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir
    ---

    Danke dir.
  • Deen  
    Habs jetzt hinbekommen...

    Leider ist der Server nicht online, auch nachdem ich sudo ufw allow 2456/tcp gemacht habe.
    • DerEchteDaniel  
      Hey,
      läuft der Service?
      Im htop valheim_server.x86_64

      Und ganz doof: hast du mal rebootet? HAtte ich auch mal das sich irgendwas verkantet hatte ;-)
      • Deen  
        Muss in der start_valheimserver.sh folgende Zeilen drin sein?

        /home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/daniel/.steam/steamapps/common/'Valheim dedicated server' +app_update 896660 +quit

        Das würde doch bedeuten, dass er jedes Mal "installiert", wenn der Server startet, oder sehe ich den Vorteil hier noch nicht?

        Ich frage, weil ich sonst immer nur "abgespeckte" Varianten von der .sh-Datei sehe

        #!/bin/sh
        export templdpath=$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
        export SteamAppID=892970

        echo "Starting server PRESS CTRL-C to exit"
        ./valheim_server.x86_64 -name "" -port 2456 -world "" -password "
      • Deen  
        Okay... da scheint noch was nicht zu stimmen...
        ● valheim.service - Valheim service
        Loaded: loaded (/etc/systemd/system/valheim.service; enabled; vendor preset: enabled)
        Active: activating (auto-restart) (Result: exit-code) since Sat 2021-09-04 11:14:54 CEST; 4s ago
        Process: 7944 ExecStart=/opt/valhalla/server/start_valheimserver.sh (code=exited, status=217/USER)
        Main PID: 7944 (code=exited, status=217/USER)
  • bisib  
    Hallo. Wofür der User? Kann Steamers nicht unter einem acc laufen der vorhanden ist?
    • DerEchteDaniel  
      Hey,
      ich mach das einfach aus Gewohnheit, um einen Server sauber zu halten :-D
  • Element47  
    "Falls du einen Publicserver erstellen willst, lass das Passwort weg. "

    ein unmodifizierter server erfordert ein Passwort von mind. 5 Zeichen, welches nicht Teil des Worldname sein darf, oder er wird nicht starten.
  • CommanderSpielt  
    Habe eine Frage wie wende ich folgen Befehle an?

    - /home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir

    - /home/steam/Valheim +app_update 896660 validate +exit

    mfg CommanderSpielt
    • DerEchteDaniel  
      Hey Commander.
      ganz normal per SSH, Bash und dann in der SteamCMD

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Um einen Kommentar hinterlassen zu können, erhalten Sie nach dem Kommentieren eine E-Mail mit Aktivierungslink an ihre angegebene Adresse.