Gaming

From MalinWiKi
Jump to navigation Jump to search

VRising dedicated headless server on Debian11 bullseye with WINE

Prerequisites

Add non-free and contrib to /etc/apt/sources.list after main

so this line:

deb http://deb.debian.org/debian bullseye main

looks like this one

deb http://deb.debian.org/debian bullseye main non-free contrib

Add winehq repo for Debian

sudo echo "deb https://dl.winehq.org/wine-builds/debian/ bullseye main" >> /etc/apt/sources.list.d/winehq.list

Download apt key

wget -nc https://dl.winehq.org/wine-builds/winehq.key

Add key

sudo apt-key add winehq.key

Add 32-bit architecture support

sudo dpkg --add-architecture i386

Update apt and install packages

sudo apt update

sudo apt install winehq-stable winetricks steamcmd:i386

create user steam

useradd steam -m -s /bin/bash

Make WINE headless

For this server to run, we need to make wine headless

source: https://superuser.com/questions/902175/run-wine-totally-headless

source: https://serverdiary.com/linux/how-to-install-xvfb-and-create-systemd-xvfb-service-on-centos-7-8-or-rhel-7-8/

Install Xvfb a fake X11 server

sudo apt install xvfb

Create a systemd script to run it with in /etc/systemd/system/xvfb.service:

[Unit]                                            
Description=Xvfb headless fake X server           
After=network.target                              
                                                  
[Service]                                         
User=root                                         
ExecStart=/usr/bin/Xvfb :0 -screen 0 1024x768x16  
                                                  
[Install]                                         
WantedBy=multi=user.target                        
Alias=Xvfb.service                                                               

To enable and start the script:

sudo systemctl enable xvfb.service
sudo systemctl start xvfb.service


Install the allfonts winepackage as user steam with winetricks

login as user steam

su - steam
winetricks allfonts

Install VRising dedicated server

Run steamcmd to install the server software

steamcmd

you will now get a Steam> prompt In the Steam> prompt login as anonymous

login anonymous

First, tell SteamCMD to use windows as the platform, as there's currently a Windows version of VRising Server currently:

@sSteamCmdForcePlatformType windows

Optional: If you want to install the server to a specific directory in the /home/steam folder:

force_install_dir ./<name of folder>

Proceed with the installation app_update and steamID

app_update 1829350

When the server software is finished with the installation, exit steamcmd with pressing ctrl + c

To logout from steam user, press ctrl + d

Run the server with systemd

Make a systemd script to run the server from.

Add this snippet to /etc/systemd/system/vrising.service

[Unit]                                                                                                                   
Description=VRising server service                                                                                       
Wants=network-online.target                                                                                              
Requires=xvfb.service                                                                                                    
                                                                                                                         
[Service]                                                                                                                
Environment=DISPLAY=:0.0                                                                                                 
ExecStart=wine VRisingServer.exe -persistentDataPath .\save-data -serverName "Malinux V Rising Server" -saveName "MyWorld
-1" -logFile ".\logs\VRisingServer.log"                                                                                  
WorkingDirectory=/home/steam/Steam/steamapps/common/VRisingDedicatedServer/                                              
user=steam                                                                                                               
group=steam                                                                                                              
                                                                                                                         
[Install]                                                                                                                
WantedBy=multi-user.target                                                                                               

Set the WorkingDirectory to where your VRisingServer.exe is located if you put it in a custom location

Forward ports

enable and open ports in ufw

ufw allow 9876 comment 'Comment that describes this ufw rule game-traffic and rcon'
ufw allow 9877 comment 'Comment that describe this ufw rule query-port' 

configure the server

I'll add more later