Sign inSign up

ferment9348/v-rising

By ferment9348

•Updated 21 days ago

V Rising dedicated server for Unraid — SteamCMD + GE-Proton

Image
0

206

ferment9348/v-rising repository overview

⁠V Rising — dedicated server

A V Rising dedicated server. V Rising ships no Linux server binary, so this pulls the Windows depot with SteamCMD and runs it under GE-Proton, with a virtual display because the binary will not start without one.

First boot downloads about 2GB, then builds a Proton prefix, and settles at about 4GB on disk. It can sit quiet for a few minutes before the log shows anything. That is normal.

Built for Unraid, but it is an ordinary container and runs anywhere.

docker run -d --name v-rising \
  -p 27015:27015/udp \
  -p 27016:27016/udp \
  --stop-timeout 75 \
  -e SERVER_NAME="My Server" \
  -e MAX_PLAYERS=40 \
  -v /path/to/serverfiles:/serverdata/serverfiles \
  -v /path/to/steamcmd:/serverdata/steamcmd \
  ferment9348/v-rising:latest

Or with compose:

services:
  v-rising:
    image: ferment9348/v-rising:latest
    restart: unless-stopped
    stop_grace_period: 75s
    ports:
      - "27015:27015/udp"
      - "27016:27016/udp"
    environment:
      SERVER_NAME: "My Server"
      MAX_PLAYERS: "40"
    volumes:
      - ./data/serverfiles:/serverdata/serverfiles
      - ./data/steamcmd:/serverdata/steamcmd

⁠Ports

PortProtoPurpose
27015UDPGame traffic. Required, and the one to forward.
27016UDPSteam query. Without it the server runs and never appears in the browser.
25575TCPRCON. Only expose it if you administer from outside the host.

To move the game port, the container port, the host port and GAME_PORT must all be the same number. Docker cannot tell the server what its host port is, so if GAME_PORT differs from the container port nothing reaches the server, and if it differs from the host port the log reports a port players cannot use. Same for the query pair and QUERY_PORT.

On Unraid, the Container Port box of every port a template supplied is greyed out, so your number will not go in it. Remove the Game Port entry and add your own Port entry with both sides set to your number — an entry you create yourself stays editable. Do the same for the query port. The README has the steps.

⁠Common settings

VariableDefaultWhat it does
SERVER_NAMEV Rising ServerName in the server browser.
WORLD_NAMEworld1Save directory name. Changing it starts a new world; the old one stays on disk.
MAX_PLAYERS40Player slots, up to 128.
SRV_PWDemptyJoin password. Blank means open.
SRV_ADMIN_PWDemptyRCON password. Blank disables RCON entirely.
GAME_PORT27015Game port the server binds.
QUERY_PORT27016Steam query port.
STOP_TIMEOUT60Seconds to wait for a save-and-exit.
PROTON_VERSIONGE-Proton10-34The GE-Proton build to run under.
UID / GID99 / 100Unraid's nobody:users. Use 1000:1000 elsewhere.

⁠Every other setting works too

The server reads its own VR_-prefixed environment variables, and they override the config file. So -e VR_FPS=45 sets the server framerate, -e VR_LAN_MODE=true enables LAN mode, and anything in Stunlock's documentation⁠ works the same way, whether or not it has a named variable above.

⁠Worth knowing

  • Your config edits survive. On first boot the container seeds save-data/Settings/ from the defaults the server ships with, and then never writes those files again. ServerGameSettings.json — the gameplay balance knobs — it never touches at all. The settings above reach the server as launch options instead, so both can be right at once.
  • Stopping saves the world. Measured: the save lands about a second after the stop begins, and the container is down in about four. Still give it a stop timeout of at least 75 seconds (--stop-timeout 75, or stop_grace_period: 75s) so a busy server has room. RCON is not involved, so a server with no admin password stops just as cleanly.
  • RCON is an admin tool, not a requirement. With SRV_ADMIN_PWD set: docker exec v-rising /opt/scripts/rcon-cli.sh announce "Restarting in 5".
  • A CPU without AVX is handled. lib_burst_generated.dll aborts the server on one, so the container moves it aside and says so in the log.
  • amd64 only. It is a Windows binary under Proton; an arm64 image would build and not run.

Source, issues and the full guide: https://github.com/blckassassin/unraid-game-servers⁠

Tag summary

Content type

Image

Digest

sha256:50636e63c…

Size

172.6 MB

Last updated

21 days ago

docker pull ferment9348/v-rising