8000 GitHub - panromir/docker-vrising: Container for V-Rising dedicated server
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

panromir/docker-vrising

 
 

Repository files navigation

Iroh

Dockerized V Rising dedicated server in an Debian 12 container with Wine.

Docker Pulls Docker Stars Docker Image Size Github stars Github forks Github open issues Github closed issues Github last-commit

Updates

image 2024-05-16 (trueosiris/vrising:2.1 or latest)

  • Merged with pull65 from Killerherts.
    Logs older than 30 days are cleaned up on server start.
  • Merged with pull52 from Diyagi.
    Previous container version can still be grabbed via trueosiris/vrising:2.0
    Main fixes are: clean shutdown & complete log to container log. Kudos!
  • Added date to the logfile name, so per server launch, a logfile will be created. For now, they will not be automatically cleaned up.
  • If you're experiencing this issue with "[476:488:20240511,134828.926:ERROR http_transport_win.cc:388] HTTP status 403" in the log, pull trueosiris/vrising:display which uses xvfb.
  • If you're experiencing this issue with "wine: Assertion failed at address 00007F79E2C9EA7C (thread 0094)" in the log, u might need the latest wine from winehq, therefore grab trueosiris/vrising:winehq

V-Rising 1.0 update

  • The game is working perfectly with a new run of the container (from scratch). I'm on it with several buddies and tested for 3 hours.
  • When the server is passworded, joining via Steam seems not possible. Use the ingame server list to join.
  • Make sure HOST_SETTINGS_LISTEN_ON_STEAM: "true" and HOST_SETTINGS_LISTEN_ON_EOS: "true" are set in your Environment
  • Launching the server can take up to 10 minutes, even on a fast system, certainly with an existing save. Below is a screenshot of the end of the docker log of a functioning server, at the time we are able to connect to it.

Environment variables

Variable Default V(alue) Description Mandatory
TZ Europe/Brussels timezone for ntpdate No
SERVER_DATA_PATH /home/steam/vrising/server Path inside the container to save server files to No
PERSISTENT_DATA_PATH /home/steam/vrising/persistentdata Path inside the container to save world/configs/logs/etc. to No
HOST_SETTINGS_NAME My Docker V-Rising Server The name of your server as visible in the server list No
HOST_SETTINGS_DESCRIPTION V Rising Server hosted by Docker Description of your server No
HOST_SETTINGS_PASSWORD "" Optional server password No
HOST_SETTINGS_MAX_CONNECTED_USERS 10 Maximum connected users No
HOST_SETTINGS_MAX_CONNECTED_ADMINS 4 Maximum connected admins No
HOST_SETTINGS_SERVER_ADMIN_LIST "" Comma separated list of Admin Steam ID64s (e.g. "123456789,0987654321") No
HOST_SETTINGS_SERVER_FPS 30 Server FPS No
HOST_SETTINGS_RCON_ENABLE "false" Whether to enable RCON No
HOST_SETTINGS_RCON_PASSWORD "Ch8ng3m3Pl3@s3!" RCON Password [Requires: HOST_SETTINGS_RCON_ENABLE=true] No
HOST_SETTINGS_RCON_PORT "9876" RCON TCP Port to listen on No
HOST_SETTINGS_AUTOSAVE_COUNT 40 How many autosaves to keep No
HOST_SETTINGS_AUTOSAVE_INTERVAL 120 Interval in seconds for the server to autosave No
HOST_SETTINGS_LISTEN_ON_STEAM "true" Whether to listen on steam No
HOST_SETTINGS_LISTEN_ON_EOS "true" Whether to listen on EOS No
GAME_SETTINGS_PRESET "StandardPvP" Game Settings preset to start the server with No
GAME_SETTINGS_DIFFICULTY "Normal" Server default difficulty setting No
LIST_ON_MASTER_SERVER "true" Whether to list the Server on Master Servers No
SERVER_IP "127.0.0.1" Public facing Server IP - You might have to experiment with this Maybe
SAVE_NAME "default_world" The name of your map No
GAME_PORT "9876" UDP Port for game connections No
QUERY_PORT "9877" UDP Port to query the server on No
DEBUG_ENV "true" Return all variables to the stdout on container start No
LOGDAYS 30 Number of days after which logs are deleted after their last modification No
OVERRIDE_CONFIG true Whether to generate new configs at the start of the container. No

A note on OVERRIDE_CONFIG

By default, this parameter is set to true. Any configuration should be done using the Environment Variables, changing your configs by going into your container or editing the files on your mounted file system path will be overwritten every time the container starts. If you set this to false, the following will happen:

  • When configs already exist, they are not overwritten
  • When no configs exist, a default config is written once with any Environment variables you set, otherwise the defaults are used.

Changing the running UID/GID

If you want to change the UID/GID of the User that's running the container for any reason, you can change the Build ARGs. The Image uses UID/GID 1000/1000 by default as defined in cm2network/steamcmd:root-bookworm. Please note that changing this also means that you might have to adjust your volume permissions on the host when using docker. When using Kubernetes, you should verify the securityContext.

Variable Default V(alue) Description Mandatory
STEAM_USER_UID 1000 The user ID the server will run on No
STEAM_USER_GID 1000 The group ID the server will run on No

Ports

Exposed Container port Type Default
9876 UDP ✔️
9876 TCP
9877 UDP ✔️

Volumes

Volume Container path Description
steam install path /home/steam/vrising/server path to hold the dedicated server files
world /home/steam/vrising/persistentdata path that holds the world files

Docker cli

docker run -d --name='vrising' \
--net='bridge' \
--restart=unless-stopped \
-e TZ="Europe/Paris" \
-e HOST_SETTINGS_NAME="trueosiris-V" \
-v '/path/on/host/server':'/home/steam/vrising/server':'rw' \
-v '/path/on/host/persistentdata':'/home/steam/vrising/persistentdata':'rw' \
-p 9876:9876/udp \
-p 9877:9877/udp \
'trueosiris/vrising'

docker-compose.yml

See the example docker-compose.yml in this repository. Do not put any of your env variables in the "environment:" section in quotes.

IMPORTANT: The compose file will create the path you define in source if it does not exist. Ensure you're either running with UID/GID 1000 (the default steam user in the container), change owners of these folders accordingly, or setup the STEAM_USER_UID and STEAM_USER_GID arguments correctly and rebuild the image. Otherwise you will get the following error:

mkdir: cannot create directory '/home/steam/vrising/persistentdata/Settings': Permission denied

Kubernetes

You can use the provided example in kubernetes/kustomize/overlays/exampleorg to see the ways the base template could be adjusted to your requirements. It's important to at least change the following:

  • secret.yaml - Your RCON Secret, if you need one
  • pvc.yaml - Adjust storageClassname and requsted storage according to your needs
  • deployment.yaml - Set Image path to your registry. This image is not pushed to dockerhub by default

To update your Pod, just delete it and wait for it to restart.

Links

RCON - Optional

To enable RCON set the HOST_SETTINGS_RCON_ENABLE, HOST_SETTINGS_RCON_PASSWORD, HOST_SETTINGS_RCON_PORT variables. To communicate using RCON protocal use the RCON CLI by gorcon.

Remarks

  • Server config files are in /path/on/host/persistentdata/Settings. Files in /path/on/host/server/ are overwritten on Steam update.
    Priority of settings is

    • container variab 5F90 les
    • files in /server. (and these are reset to defaults each new patch)

    Please note that you cannot edit your config files in $PERSISTENT_DATA_PATH/Settings/ServerGameSettings.json or $PERSISTENT_DATA_PATH/Settings/ServerHostSettings.json, these will be overwritten by your ENV every time the container is restarted by default. In case you want to adjust any setting that isn't covered by the current config options, please create an issue or a PR. If you want to manually adjust your configs and keep your changes, move your config files (with proper access rights) to your mounted folder and set OVERRIDE_CONFIG="false"

  • If you use different internal & external ports, you can only use direct connect. For example -p 12345:6789/udp container port 6789 as defined in ServerHostSettings.json, and exposed as 12345 will make your server invisible , even if "ListOnMasterServer=true"

  • If you want to see the server in the server list and want to use 27015-27016/UDP, you'll need to change the ports to 27015 and 27016. Then expose these ports (below). Of course, forward these udp ports on your firewall from incoming wan to the ports on the internal ip of your dockerhost.

    • Start the container & let the server install.
    • Stop the container.
    • Alter the ports to
       GAME_PORT: "27015"
       QUERY_PORT: "27016"
      
    • On your firewall, port forward incoming wan udp ports 27015 and 27016 to the same udp ports on your dockerhost ip.
    • Restart the container with these ports:
       -p 27015:27015/udp
       -p 27016:27016/udp
      
  • If you want to continue from your local game, stop the container, overwrite the persistentdata contents with your local data, and relaunch the server.

Docker log

The log of a functional server in 1.0 should look like this:

docker-log

Credits

  • All credits go to the awesome designers of V-Rising!

About

Container for V-Rising dedicated server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 65.2%
  • Dockerfile 34.8%
0