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:
- 2 Cores
- 8GB Ram (die braucht Valheim auch)
- 1 GB freier Speicherplatz
- Debian
- VServer bei Bero-Host
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!
Deen
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
Leider ist der Server nicht online, auch nachdem ich sudo ufw allow 2456/tcp gemacht habe.
DerEchteDaniel
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
/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
● 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
DerEchteDaniel
ich mach das einfach aus Gewohnheit, um einen Server sauber zu halten
Element47
ein unmodifizierter server erfordert ein Passwort von mind. 5 Zeichen, welches nicht Teil des Worldname sein darf, oder er wird nicht starten.
CommanderSpielt
- /home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir
- /home/steam/Valheim +app_update 896660 validate +exit
mfg CommanderSpielt
DerEchteDaniel
ganz normal per SSH, Bash und dann in der SteamCMD