├── settings ├── adminlist.txt ├── banlist.txt ├── ServerHostSettings.json └── ServerGameSettings.json ├── .gitattributes ├── root └── scripts │ └── run.sh ├── docker-compose.yml ├── dockerfile └── readme.md /settings/adminlist.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /settings/banlist.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /root/scripts/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd /root/.wine/drive_c/steamcmd 3 | if [ ! -e "./steaminstalled.txt" ]; then 4 | wincfg 5 | wine steamcmd.exe +force_install_dir "C:\VRisingServer" +login anonymous +app_update 1829350 validate +quit 6 | touch ./steaminstalled.txt 7 | fi 8 | 9 | rm -r /tmp/.X0-lock 10 | cd /root/.wine/drive_c/VRisingServer/ 11 | Xvfb :0 -screen 0 1024x768x16 & \ 12 | DISPLAY=:0.0 wine VRisingServer.exe -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2.1" 2 | services: 3 | vrising: 4 | container_name: vrising-server 5 | image: vrising:latest 6 | volumes: 7 | - /home/googlrr/VRisingServer:/root/.wine/drive_c/users/root/AppData/LocalLow/Stunlock Studios/VRisingServer/Saves 8 | - /home/googlrr/VRisingSettings:/root/.wine/drive_c/users/root/AppData/LocalLow/Stunlock Studios/VRisingServer/Settings/ 9 | ports: 10 | - "27015:27015/udp" 11 | - "27016:27016/udp" 12 | restart: unless-stopped 13 | tty: true -------------------------------------------------------------------------------- /settings/ServerHostSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "SERVER NAME HERE", 3 | "Description": "Enter a description", 4 | "Port": 27015, 5 | "QueryPort": 27016, 6 | "MaxConnectedUsers": 40, 7 | "MaxConnectedAdmins": 4, 8 | "ServerFps": 30, 9 | "SaveName": "world1", 10 | "Password": "SVRPASSWD-HERE", 11 | "Secure": true, 12 | "ListOnMasterServer": true, 13 | "AutoSaveCount": 50, 14 | "AutoSaveInterval": 300, 15 | "GameSettingsPreset": "", 16 | "AdminOnlyDebugEvents": true, 17 | "DisableDebugEvents": false 18 | } -------------------------------------------------------------------------------- /dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu 2 | 3 | RUN dpkg --add-architecture i386 \ 4 | && apt update \ 5 | && apt install -y wine64 wine32 wget unzip xvfb \ 6 | && mkdir -p /root/.wine/drive_c/steamcmd \ 7 | && mkdir -p /root/.wine/drive_c/users/root/AppData/LocalLow/'Stunlock Studios'/VRisingServer/Settings \ 8 | && wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip -P /root/.wine/drive_c/steamcmd/ \ 9 | && cd /root/.wine/drive_c/steamcmd/ \ 10 | && unzip steamcmd.zip \ 11 | && mkdir -p /root/.wine/drive_c/VRisingServer/ \ 12 | && cd /root/.wine/drive_c/steamcmd 13 | 14 | COPY root . 15 | 16 | WORKDIR /scripts 17 | 18 | RUN chmod +x ./run.sh 19 | 20 | EXPOSE 27015/udp 21 | EXPOSE 27016/udp 22 | 23 | CMD ./run.sh -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Docker container for linux vrising server 2 | 3 | using Wine in an ubuntu container 4 | 5 | This isn't really meant to be a guide, just publishing because at the moment not much info on setting this up out there. I'm no docker expert so there's probably a better way to go about this. Sorry if these steps aren't 100% accurate: 6 | 7 | 1. Clone the repo 8 | git clone https://github.com/Googlrr/V-Rising-Docker-Linux 9 | 10 | 2. CD to the directory 11 | cd V-Rising-Docker-Linux 12 | 13 | 3. Modify the ServerGameSettings.json and ServerHostSettings.json for whatever you want. 14 | 15 | 4. Move all the files in /settings/ to some location. 16 | 17 | 4. Build the image 18 | sudo docker build . -t vrising:latest 19 | 20 | 5. Modify docker compose, set a path for where you want your saves. Set the save and settings directories 21 | 22 | 6. compose 23 | sudo docker-compose up -d 24 | 25 | Really messy setup but this was the only way I could figure out how to work it lol. Never used Wine before. Hope for a native linux server soon! 26 | 27 | -------------------------------------------------------------------------------- /settings/ServerGameSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "GameModeType": "PvP", 3 | "CastleDamageMode": "Always", 4 | "SiegeWeaponHealth": "Normal", 5 | "PlayerDamageMode": "Always", 6 | "CastleHeartDamageMode": "CanBeDestroyedByPlayers", 7 | "PvPProtectionMode": "Medium", 8 | "DeathContainerPermission": "Anyone", 9 | "RelicSpawnType": "Unique", 10 | "CanLootEnemyContainers": true, 11 | "BloodBoundEquipment": true, 12 | "TeleportBoundItems": true, 13 | "AllowGlobalChat": true, 14 | "AllWaypointsUnlocked": false, 15 | "FreeCastleClaim": false, 16 | "FreeCastleDestroy": false, 17 | "InactivityKillEnabled": true, 18 | "InactivityKillTimeMin": 3600, 19 | "InactivityKillTimeMax": 604800, 20 | "InactivityKillSafeTimeAddition": 172800, 21 | "InactivityKillTimerMaxItemLevel": 84, 22 | "DisableDisconnectedDeadEnabled": true, 23 | "DisableDisconnectedDeadTimer": 60, 24 | "InventoryStacksModifier": 1.0, 25 | "DropTableModifier_General": 1.0, 26 | "DropTableModifier_Missions": 1.0, 27 | "MaterialYieldModifier_Global": 1.0, 28 | "BloodEssenceYieldModifier": 1.0, 29 | "JournalVBloodSourceUnitMaxDistance": 25.0, 30 | "PvPVampireRespawnModifier": 1.0, 31 | "CastleMinimumDistanceInFloors": 2, 32 | "ClanSize": 4, 33 | "BloodDrainModifier": 1.0, 34 | "DurabilityDrainModifier": 1.0, 35 | "GarlicAreaStrengthModifier": 1.0, 36 | "HolyAreaStrengthModifier": 1.0, 37 | "SilverStrengthModifier": 1.0, 38 | "SunDamageModifier": 1.0, 39 | "CastleDecayRateModifier": 1.0, 40 | "CastleBloodEssenceDrainModifier": 1.0, 41 | "CastleSiegeTimer": 420.0, 42 | "CastleUnderAttackTimer": 60.0, 43 | "AnnounceSiegeWeaponSpawn": true, 44 | "ShowSiegeWeaponMapIcon": true, 45 | "BuildCostModifier": 1.0, 46 | "RecipeCostModifier": 1.0, 47 | "CraftRateModifier": 1.0, 48 | "ResearchCostModifier": 1.0, 49 | "RefinementCostModifier": 1.0, 50 | "RefinementRateModifier": 1.0, 51 | "ResearchTimeModifier": 1.0, 52 | "DismantleResourceModifier": 0.75, 53 | "ServantConvertRateModifier": 1.0, 54 | "RepairCostModifier": 1.0, 55 | "Death_DurabilityFactorLoss": 0.25, 56 | "Death_DurabilityLossFactorAsResources": 1.0, 57 | "StarterEquipmentId": 0, 58 | "StarterResourcesId": 0, 59 | "VBloodUnitSettings": [], 60 | "UnlockedAchievements": [], 61 | "UnlockedResearchs": [], 62 | "GameTimeModifiers": { 63 | "DayDurationInSeconds": 1080.0, 64 | "DayStartHour": 9, 65 | "DayStartMinute": 0, 66 | "DayEndHour": 17, 67 | "DayEndMinute": 0, 68 | "BloodMoonFrequency_Min": 10, 69 | "BloodMoonFrequency_Max": 18, 70 | "BloodMoonBuff": 0.2 71 | }, 72 | "VampireStatModifiers": { 73 | "MaxHealthModifier": 1.0, 74 | "MaxEnergyModifier": 1.0, 75 | "PhysicalPowerModifier": 1.0, 76 | "SpellPowerModifier": 1.0, 77 | "ResourcePowerModifier": 1.0, 78 | "SiegePowerModifier": 1.0, 79 | "DamageReceivedModifier": 1.0, 80 | "ReviveCancelDelay": 5.0 81 | }, 82 | "UnitStatModifiers_Global": { 83 | "MaxHealthModifier": 1.0, 84 | "PowerModifier": 1.0 85 | }, 86 | "UnitStatModifiers_VBlood": { 87 | "MaxHealthModifier": 1.0, 88 | "PowerModifier": 1.0 89 | }, 90 | "EquipmentStatModifiers_Global": { 91 | "MaxEnergyModifier": 1.0, 92 | "MaxHealthModifier": 1.0, 93 | "ResourceYieldModifier": 1.0, 94 | "PhysicalPowerModifier": 1.0, 95 | "SpellPowerModifier": 1.0, 96 | "SiegePowerModifier": 1.0, 97 | "MovementSpeedModifier": 1.0 98 | }, 99 | "CastleStatModifiers_Global": { 100 | "TickPeriod": 5.0, 101 | "DamageResistance": 0.0, 102 | "SafetyBoxLimit": 1, 103 | "TombLimit": 12, 104 | "VerminNestLimit": 4, 105 | "PylonPenalties": { 106 | "Range1": { 107 | "Percentage": 0.0, 108 | "Lower": 0, 109 | "Higher": 2 110 | }, 111 | "Range2": { 112 | "Percentage": 0.0, 113 | "Lower": 3, 114 | "Higher": 3 115 | }, 116 | "Range3": { 117 | "Percentage": 0.0, 118 | "Lower": 4, 119 | "Higher": 4 120 | }, 121 | "Range4": { 122 | "Percentage": 0.0, 123 | "Lower": 5, 124 | "Higher": 5 125 | }, 126 | "Range5": { 127 | "Percentage": 0.0, 128 | "Lower": 6, 129 | "Higher": 254 130 | } 131 | }, 132 | "FloorPenalties": { 133 | "Range1": { 134 | "Percentage": 0.0, 135 | "Lower": 0, 136 | "Higher": 20 137 | }, 138 | "Range2": { 139 | "Percentage": 0.0, 140 | "Lower": 21, 141 | "Higher": 50 142 | }, 143 | "Range3": { 144 | "Percentage": 0.0, 145 | "Lower": 51, 146 | "Higher": 80 147 | }, 148 | "Range4": { 149 | "Percentage": 0.0, 150 | "Lower": 81, 151 | "Higher": 160 152 | }, 153 | "Range5": { 154 | "Percentage": 0.0, 155 | "Lower": 161, 156 | "Higher": 254 157 | } 158 | }, 159 | "HeartLimits": { 160 | "Level1": { 161 | "Level": 1, 162 | "FloorLimit": 30, 163 | "ServantLimit": 3 164 | }, 165 | "Level2": { 166 | "Level": 2, 167 | "FloorLimit": 80, 168 | "ServantLimit": 5 169 | }, 170 | "Level3": { 171 | "Level": 3, 172 | "FloorLimit": 150, 173 | "ServantLimit": 7 174 | }, 175 | "Level4": { 176 | "Level": 4, 177 | "FloorLimit": 250, 178 | "ServantLimit": 9 179 | } 180 | }, 181 | "CastleLimit": 2 182 | }, 183 | "PlayerInteractionSettings": { 184 | "TimeZone": "Local", 185 | "VSPlayerWeekdayTime": { 186 | "StartHour": 17, 187 | "StartMinute": 0, 188 | "EndHour": 23, 189 | "EndMinute": 0 190 | }, 191 | "VSPlayerWeekendTime": { 192 | "StartHour": 17, 193 | "StartMinute": 0, 194 | "EndHour": 23, 195 | "EndMinute": 0 196 | }, 197 | "VSCastleWeekdayTime": { 198 | "StartHour": 17, 199 | "StartMinute": 0, 200 | "EndHour": 23, 201 | "EndMinute": 0 202 | }, 203 | "VSCastleWeekendTime": { 204 | "StartHour": 17, 205 | "StartMinute": 0, 206 | "EndHour": 23, 207 | "EndMinute": 0 208 | } 209 | } 210 | } --------------------------------------------------------------------------------