Docker Container to run V-Rising Dedicated Server on Ubuntu 24.04 using Wine 9
50K+
A Docker container for hosting your own dedicated server using Ubuntu 24.04 and WineHQ 9.
This image features gracefully server shutdown, meaning you should not experience rollbacks after an shutdown/restart.
Base image from CM2Walki/steamcmd
Code from palworld-server-docker
Follow this docker-compose-yml example and check environment variables below for more information.
services:
vrising:
image: diyagi/vrising-server-docker:latest
restart: unless-stopped # Required for the restarts to work
stop_grace_period: 15s # Might need to increase with longer saves
ports:
- 9876:9876/udp
- 9877:9877/udp
environment:
TZ: "America/Los_Angeles"
PUID: 1001
PGID: 1001
VR_NAME: "V Rising Docker Server"
VR_DESCRIPTION: "V Rising server hosted on Docker"
VR_GAME_PORT: 9876
VR_QUERY_PORT: 9877
VR_LIST_ON_EOS: true
VR_LIST_ON_STEAM: true
VR_SAVE_NAME: "dockerWorld"
volumes:
- ./awesome-vrising-server/server:/vrising/server
- ./awesome-vrising-server/data:/vrising/data
To manually change the
ServerGameSettings.jsonand/orServerHostSettings.jsonyou need to setCOMPILE_GAME_SETTINGSand/orCOMPILE_HOST_SETTINGStofalse.
When settingCOMPILE_GAME_SETTINGSorCOMPILE_HOST_SETTINGStotrueyou are expected to use env vars to configure the server without touchingServerGameSettings.jsonand/orServerHostSettings.json
| Variable | Type/Default | Description |
|---|---|---|
PUID | 1000 | UID used by the container to run the server as |
PGID | 1000 | GID used by the container to run the server as |
TZ | Europe/Brussels | timezone for ntpdate |
UPDATE_ON_BOOT | true | Checks for updates on start and updates it if needed |
COMPILE_HOST_SETTINGS | false | Disable the generation of ServerHostSettings.json using the env vars below. It does not affect the env vars starting with VR_, these env vars are used by the gameserver itself |
COMPILE_GAME_SETTINGS | false | Disable the generation of ServerGameSettings.json using the env vars. |
AUTO_UPDATE_ENABLED | false | Enable/Disables Auto Update. If docker restart is not set to policy always or unless-stopped then the server will shutdown and will need to be manually restarted. |
AUTO_UPDATE_CRON_EXPRESSION | 0 * * * * | Cron expression to when to run the update check. |
AUTO_UPDATE_WARN_MINUTES | 30,15,10,5,3,2,1 | How many minutes until restart and announce intervals. Example: 30,15,10,5,3,2,1 will shutdown the server in 30 minutes and announce the shut down at 30,15,10,5,3,2 and 1 minute mark. |
AUTO_UPDATE_WARN_MESSAGE | Server will restart in ~{t} min. Reason: Scheduled Update | Message used to announce the restart.~{t} will be replaced in the message by the remaining time until shutdown. |
AUTO_REBOOT_ENABLED | false | Enable/Disable Auto Reboot. If docker restart is not set to policy always or unless-stopped then the server will shutdown and will need to be manually restarted. |
AUTO_REBOOT_CRON_EXPRESSION | 0 0 * * * | Cron expression to when to run the reboot. |
AUTO_REBOOT_WARN_MINUTES | 15,10,5,3,2,1 | How many minutes until restart and announce intervals. Example: 30,15,10,5,3,2,1 will shutdown the server in 30 minutes and announce the shut down at 30,15,10,5,3,2 and 1 minute mark. |
AUTO_REBOOT_WARN_MESSAGE | Server will restart in ~{t} min. Reason: Scheduled Restart | Message used to announce the restart.~{t} will be replaced in the message by the remaining time until shutdown |
VR_prefixed environment variables are used by the game server itself, not added by the container.
Because these env vars are read by the game server itself, settingCOMPILE_HOST_SETTINGStofalsewont affect how these env vars work. (Official Doc)
These env vars will override their respective values inServerHostSettings.json.
| Variable | Type/Default | Description |
|---|---|---|
VR_NAME | text | Name of the server. The name that shows up in server list. |
VR_DESCRIPTION | text | Short server description. Shows up in details panel of server list when entry is selected. Also printed in chat when connecting to server. |
VR_GAME_PORT | 9876 | UDP port for game traffic. |
VR_QUERY_PORT | 9877 | UDP port for Steam server list features. |
VR_ADDRESS | text | Bind to a specific IP address. |
VR_HIDEIPADDRESS | false | When listing server on EOS server list, the IP address will not be shown/advertised. Players will connect via relay servers. |
VR_MAX_USERS | 40 | Max number of concurrent players on server. The maximum number technically supported is 128. |
VR_MAX_ADMINS | 4 | Max number of admins to allow connect even when server is full. |
VR_FPS | 30 | Target FPS for server. |
VR_LOWER_FPS_WHEN_EMPTY | false | Run the server at a lower framerate target when no players are logged in. |
VR_LOWER_FPS_WHEN_EMPTY_VALUE | 1 | Set the framerate target for when LowerFPSWhenEmpty is active. |
VR_PASSWORD | text | Set a password or leave empty. |
VR_SECURE | true | Enable VAC protection on server. VAC banned clients will not be able to connect. |
VR_LIST_ON_EOS | false | Register on EOS list server or not. The client looks for servers here by default, due to additional features available. |
VR_LIST_ON_STEAM | false | Register on Steam list server or not. |
VR_PRESET | text | Load a ServerGameSettings preset. |
VR_DIFFICULTY_PRESET | text | Load a GameDifficulty preset. |
VR_SAVE_NAME | world1 | Name of save file/directory. Must be a valid directory name. |
VR_SAVE_COUNT | 20 | Number of autosaves to keep. |
VR_SAVE_INTERVAL | 120 | Interval in seconds between each auto save. |
VR_AUTOSAVESMARTKEEP | 10:1:1 30:0:160:0:1 120:0:1180:0:1 240:0:1360:0:1 720:0:1 1440:0:1 2880:0:143200:99:0 | . |
VR_LAN_MODE | false | Enable LAN mode. |
VR_RESET_DAYS_INTERVAL | 0 | Days between scheduled resets/wipes. When the server starts, and is about to load a save file, it checks if it is time to reset and start a new save file. The previous save file is backed up. Defaults to 0, which means the feature is disabled. |
VR_DAY_OF_RESET | enum | If you want the server to reset on Saturdays, every two weeks, but it is not Saturday when you initially set up you server then you can set ResetDaysInterval to 14 and then set this to Saturday. It will check that at least ResetDaysInterval days has passed and that it is the day of DayOfReset. If you do not want to restrict reset to a specific day, but just rely on the value of ResetDaysInterval, then set this to Any, which is also the default.Possible values: Any, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday |
VR_RCON_ENABLED | false | Enable or disable Rcon functionality. |
VR_RCON_PORT | 25575 | Rcon TCP port. |
VR_RCON_PASSWORD | text | Password to access RCON. |
VR_RCON_BIND_ADDRESS | text | Binds RCON socket to specified address. Will override the "global" Address setting, if you want to bind to a separate internal interface for instance. |
The env vars below are added by the container, when using any of these they will overwrite whats in the
ServerHostSettings.jsonfile.
When using these env vars any configuration manually made toServerHostSettings.jsonwill be overwritten, meaning you should only use env vars to configureServerHostSettings.json.
If you want to manually change theServerHostSettings.jsonfile set the env varCOMPILE_HOST_SETTINGStofalse, this will disable all env vars below.
| Variable | Type/Default | Description |
|---|---|---|
FALLBACK_PORT | 9878 | Unknown |
MIN_FREE_SLOTS_FOR_NEW_USERS | 0 | Unknown |
AI_UPDATES_PER_FRAME | 200 | Unknown |
SERVER_BRANCH | text | Unknown |
COMPRESS_SAVE_FILES | true | Unknown |
RUN_PERSISTENCE_TESTS_ON_SAVE | false | Unknown |
DUMP_PERSISTENCE_SUMMARY_ON_SAVE | false | Unknown |
STORE_PERSISTENCE_DEBUG_DATA | false | Unknown |
GIVE_STARTER_ITEMS | false | Unknown |
LOG_ALL_NETWORK_EVENTS | false | Unknown |
LOG_ADMIN_EVENTS | true | Unknown |
LOG_DEBUG_EVENTS | true | Unknown |
ADMIN_ONLY_DEBUG_EVENTS | true | Unknown |
EVERYONE_IS_ADMIN | false | Unknown |
DISABLE_DEBUG_EVENTS | false | Unknown |
ENABLE_DANGEROUS_DEBUG_EVENTS | false | Unknown |
TRACK_ARCHETYPE_CREATIONS_ON_STARTUP | false | Unknown |
SERVER_START_TIME_OFFSET | 0.0 | Unknown |
PERSISTENCE_VERSION_OVERRIDE | -1 | Unknown |
USE_TELEPORT_PLAYERS_OUT_OF_COLLISION_FIX | true | Unknown |
REMOTE_BANS_URL | text | Unknown |
REMOTE_ADMINS_URL | text | Unknown |
AFK_KICK_TYPE | 0 | Unknown |
AFK_KICK_DURATION | 1 | Unknown |
AFK_KICK_WARNING_DURATION | 14 | Unknown |
AFK_KICK_PLAYER_RATIO | 0.5 | Unknown |
ENABLE_BACKTRACE_ANR | false | Unknown |
ANALYTICS_ENABLED | true | Unknown |
ANALYTICS_ENVIRONMENT | "prod" | Unknown |
ANALYTICS_DEBUG | false | Unknown |
USE_DOUBLE_TRANSPORT_LAYER | true | Unknown |
PRIVATE_GAME | false | Unknown |
API_ENABLED | false | Unknown |
API_ADDRESS | "*" | Unknown |
API_PORT | 9090 | Unknown |
API_BASE_PATH | "/" | Unknown |
API_ACCESS_LIST | text | Unknown |
API_PROMETHEUS_DELAY | 30 | Unknown |
RCON_TIMEOUT_SECONDS | 300 | Unknown |
RCON_MAX_PASSWORD_TRIES | 99 | Unknown |
RCON_BAN_MINUTES | 0 | Unknown |
RCON_SEND_AUTH_IMMEDIATELY | true | Unknown |
RCON_MAX_CONNECTIONS_PER_IP | 20 | Unknown |
RCON_MAX_CONNECTIONS | 20 | Unknown |
RCON_EXPERIMENTAL_COMMANDS_ENABLED | true | Unknown |
The env vars below are added by the container, when using any of these they will overwrite whats in the
ServerGameSettings.jsonfile.
When using these env vars any configuration manually made toServerGameSettings.jsonwill be overwritten, meaning you should only use env vars to configureServerGameSettings.json.
If you want to manually change theServerGameSettings.jsonfile set the env varCOMPILE_GAME_SETTINGStofalse, this will disable all env vars below.
Not everything inServerGameSettings.jsoncan be configured using env vars, if you need anything thats not covered feel free to open an Issue or PR
| Variable | Type/Default | Description |
|---|---|---|
GAME_DIFFICULTY | Normal | Changes the game difficulty. |
GAMEMODE_TYPE | PvP | Changes between PvP and PvE. |
CLAN_SIZE | 4 | Max amount players that can join the same Clan. |
RCON will only work if its properly configured, either by setting its env vars (
VR_RCON_ENABLED,VR_RCON_PORTandVR_RCON_PASSWORD) or by manually configuring it in theServerHostSettings.jsonfile.
To use RCON you can use docker exec:
docker exec -it container-name rcon-cli "<command> <value>"
If you need external RCON access, remember to expose its port in the container.
| Command | Parameters | Description |
|---|---|---|
help | [command] | List all commands, or additional information about a specific command. |
announce | <message> | Sends a message to all players connected to the server. |
announcerestart | <number> | Sends a pre-configured message that announces server restart in x minutes to all players connected to the server. Less flexible than announce but has the benefit of being localized to each users language. |
shutdown | <message times> <message> | Schedule shutdown of the server. |
cancelshutdown | [message] | Cancel an active shutdown, with optional message. |
name | <name> | Set/change the server name during runtime. |
description | <description> | Set/change the server description during runtime. |
password | [password] | --clear | Set/change/clear the server password during runtime. |
version | - | Show server version. |
time | - | Show server time. |
Content type
Image
Digest
sha256:c741bd62b…
Size
977.2 MB
Last updated
over 2 years ago
docker pull diyagi/vrising-server-docker