diff --git a/Dockerfile b/Dockerfile index 7c20bfa..ebd0a7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,9 +16,7 @@ FROM mono:latest as runtime COPY --from=downloader "./download/" "/game" # Defaults -ARG vs_data_path=/gamedata/vs - -COPY "./serverconfig.json" "${vs_data_path}/serverconfig.json" +ENV vs_data_path=/gamedata/vs # Expose ports EXPOSE 42420/tcp diff --git a/NOTE.md b/NOTE.md deleted file mode 100644 index 953c3cb..0000000 --- a/NOTE.md +++ /dev/null @@ -1,19 +0,0 @@ -# Contribution note -just some notes for myself in case i forgot how to upgrade the image - -```sh -#build -docker build -t devidian/vintagestory . -#push -docker push devidian/vintagestory -#run -docker run -pd 42420:42420 --name VintageStoryServer devidian/vintagestory -# -------------------------------------- -# --------- using composer ------------- -#start -docker-compose up -d -#rebuild -docker-compose up -d --build -#stop -docker-compose down -``` \ No newline at end of file diff --git a/README.md b/README.md index 36d0f36..5742c3c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ services: vsserver: image: devidian/vintagestory:latest container_name: vsserver - restart: always + restart: unless-stopped volumes: # • your world will be in /appdata/vintagestory/vs by default (/gamedata/vs on the container) # • if you run multiple servers just change the left part @@ -27,74 +27,17 @@ services: - 42420:42420 ``` -## Custom build - -You can either copy files from `https://github.com/Devidian/docker-vintagestory/tree/master/build-custom-example` or follow these steps: - -- create a `serverconfig.json` with your settings -- create a `Dockerfile` file with contents found below -- create a `docker-compose.yml` file with contents found below (adjust port/path if you need) -- run `docker-compose up -d` to start -- run `docker-compose up -d --build` to rebuild and restart -- run `docker-compose down` to stop - -We use `vs_data_path` as ARG because ENV did not get overridden in build phase and we use `VS_DATA_PATH` as ENV because ARG in CMD is empty. - -## Dockerfile for custom-build - -```docker -# ============== runtime stage ================== -FROM devidian/vintagestory:latest as runtime - -ARG vs_data_path=/gamedata/vs - -# update with your own serverconfig -COPY serverconfig.json ${vs_data_path}/serverconfig.json -# copy mods -#COPY Mods ${vs_data_path}/Mods/ -# copy default player data -#COPY Playerdata ${vs_data_path}/Playerdata/ - -WORKDIR /game - -CMD mono VintagestoryServer.exe --dataPath ${VS_DATA_PATH} - -``` - -### docker-compose.yml - -```yml -version: '3.8' - -services: - vsserver: - build: - context: . - args: - vs_data_path: /gamedata/vs-custom/ - container_name: vsserver - restart: always - volumes: - - gamedata:/gamedata - ports: - - 42420:42420 - environment: - VS_DATA_PATH: /gamedata/vs-custom -volumes: - gamedata: -``` - ### Using unstable versions -To use unstable versions just replace tag `latest` with `unstable` in `Dockerfile` +To use unstable versions just replace tag `latest` with `unstable`. See [docker-compose.yml]( docker-compose.yml ) for all versions. ### Updating container -To update to the latest version call `docker pull devidian/vintagestory` first, this will download the newest latest base image. Then execute `docker-compose up -d --build` if you have not changed any other files it should not override them (did not for me) +To update to the latest version call `docker compose pull` first, this will download the newest latest base image. Then execute `docker compose up -d`. ### Copy/Override files -To copy and override files use `docker exec vsserver cp [local path] [docker-path]` where `docker-path` is starting with `/gamedata/vs-custom/..` for the example composer file. This is useful to update white/blacklists manually or update `serversettings.json` +If you use a host volume, you can just edit files there. First stop the container, then make your changes and start the container again. ## Troubleshooting / Help / Issues diff --git a/build-custom-example/Dockerfile b/build-custom-example/Dockerfile deleted file mode 100644 index 7210622..0000000 --- a/build-custom-example/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# ============== runtime stage ================== -FROM devidian/vintagestory:latest as runtime - -ARG vs_data_path=/gamedata/vs-custom - -# update with your own serverconfig -COPY serverconfig.json ${vs_data_path}/serverconfig.json -# copy mods -COPY Mods ${vs_data_path}/Mods/ -# copy default player data -COPY Playerdata ${vs_data_path}/Playerdata/ - -WORKDIR /game - -CMD mono VintagestoryServer.exe --dataPath ${VS_DATA_PATH} diff --git a/build-custom-example/Mods/ExtendedDurability.zip b/build-custom-example/Mods/ExtendedDurability.zip deleted file mode 100644 index be597cf..0000000 Binary files a/build-custom-example/Mods/ExtendedDurability.zip and /dev/null differ diff --git a/build-custom-example/docker-compose.yml b/build-custom-example/docker-compose.yml deleted file mode 100644 index 322fd9b..0000000 --- a/build-custom-example/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3.8' - -services: - vsserver: - build: - context: . - args: - vs_data_path: /gamedata/vs-custom/ - container_name: vsserver - restart: always - volumes: - - gamedata:/gamedata - ports: - - target: 42420 - published: 42420 - protocol: tcp - # mode: host - environment: - VS_DATA_PATH: /gamedata/vs-custom -volumes: - gamedata: \ No newline at end of file diff --git a/build-custom-example/serverconfig.json b/build-custom-example/serverconfig.json deleted file mode 100644 index d6f3890..0000000 --- a/build-custom-example/serverconfig.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "ConfigVersion": "1.0", - "ServerMonitor": true, - "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/", - "ClientConnectionTimeout": 120, - "EntityDebugMode": false, - "MapSizeX": 1000000, - "MapSizeY": 256, - "MapSizeZ": 1000000, - "ServerLanguage": "en", - "SkipEveryChunkRow": 0, - "SkipEveryChunkRowWidth": 0, - "ModPaths": [ - "Mods", - "/gamedata/vs-custom/Mods" - ], - "WorldConfig": { - "Seed": null, - "SaveFileLocation": "/gamedata/vs-custom/Saves/default.vcdbs", - "WorldName": "VintageDockerCustomExample", - "AllowCreativeMode": true, - "PlayStyle": "surviveandbuild", - "PlayStyleLangCode": "surviveandbuild-bands", - "WorldType": "standard", - "WorldConfiguration": null, - "MapSizeY": null, - "CreatedByPlayerName": null, - "DisabledMods": null, - "RepairMode": false - }, - "NextPlayerGroupUid": 10, - "GroupChatHistorySize": 20, - "MaxOwnedGroupChannelsPerUser": 10, - "ServerName": "EN - Vintage Story Server - CustomBuild", - "ServerUrl": null, - "ServerDescription": "VintageServer running in Docker container", - "WelcomeMessage": "Welcome {0}, may you survive well and prosper", - "Ip": null, - "Port": 42420, - "Upnp": false, - "CompressPackets": true, - "AdvertiseServer": true, - "MaxClients": 16, - "Password": null, - "MaxChunkRadius": 12, - "TickTime": 33.3333321, - "BlockTickChunkRange": 4, - "MaxMainThreadBlockTicks": 10000, - "RandomBlockTicksPerChunk": 16, - "BlockTickInterval": 300, - "Roles": [ - { - "Code": "suvisitor", - "Name": "Survival Visitor", - "Description": "Can only visit this world and chat but not use/place/break anything", - "PrivilegeLevel": -1, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "chat" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 1, - "Color": "Green", - "LandClaimAllowance": 0, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 3, - "AutoGrant": false - }, - { - "Code": "crvisitor", - "Name": "Creative Visitor", - "Description": "Can only visit this world, chat and fly but not use/place/break anything", - "PrivilegeLevel": -1, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "chat" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 2, - "Color": "DarkGray", - "LandClaimAllowance": 0, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 3, - "AutoGrant": false - }, - { - "Code": "limitedsuplayer", - "Name": "Limited Survival Player", - "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat", - "PrivilegeLevel": -1, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "build", - "useblock", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 1, - "Color": "White", - "LandClaimAllowance": 0, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 3, - "AutoGrant": false - }, - { - "Code": "limitedcrplayer", - "Name": "Limited Creative Player", - "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)", - "PrivilegeLevel": -1, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "build", - "useblock", - "gamemode", - "freemove", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 2, - "Color": "LightGreen", - "LandClaimAllowance": 0, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 3, - "AutoGrant": false - }, - { - "Code": "suplayer", - "Name": "Survival Player", - "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.", - "PrivilegeLevel": 0, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "areamodify", - "build", - "useblock", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 1, - "Color": "White", - "LandClaimAllowance": 262144, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 3, - "AutoGrant": false - }, - { - "Code": "crplayer", - "Name": "Creative Player", - "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", - "PrivilegeLevel": 100, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "areamodify", - "build", - "useblock", - "gamemode", - "freemove", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 2, - "Color": "LightGreen", - "LandClaimAllowance": 1310720, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 6, - "AutoGrant": false - }, - { - "Code": "sumod", - "Name": "Survival Moderator", - "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.", - "PrivilegeLevel": 200, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "areamodify", - "build", - "useblock", - "buildblockseverywhere", - "useblockseverywhere", - "kick", - "ban", - "announce", - "readlists", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 1, - "Color": "Cyan", - "LandClaimAllowance": 1310720, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 60, - "AutoGrant": false - }, - { - "Code": "crmod", - "Name": "Creative Moderator", - "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", - "PrivilegeLevel": 500, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "controlplayergroups", - "manageplayergroups", - "chat", - "areamodify", - "build", - "useblock", - "buildblockseverywhere", - "useblockseverywhere", - "kick", - "ban", - "gamemode", - "freemove", - "commandplayer", - "announce", - "readlists", - "attackcreatures", - "attackplayers" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 2, - "Color": "Cyan", - "LandClaimAllowance": 1310720, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 60, - "AutoGrant": false - }, - { - "Code": "admin", - "Name": "Admin", - "Description": "Has all privileges, including giving other players admin status.", - "PrivilegeLevel": 99999, - "DefaultSpawn": null, - "ForcedSpawn": null, - "Privileges": [ - "build", - "useblock", - "buildblockseverywhere", - "useblockseverywhere", - "attackplayers", - "attackcreatures", - "freemove", - "gamemode", - "pickingrange", - "chat", - "kick", - "ban", - "whitelist", - "setwelcome", - "announce", - "readlists", - "give", - "areamodify", - "setspawn", - "controlserver", - "tp", - "time", - "grantrevoke", - "root", - "commandplayer", - "controlplayergroups", - "manageplayergroups" - ], - "RuntimePrivileges": [], - "DefaultGameMode": 1, - "Color": "LightBlue", - "LandClaimAllowance": 2147483647, - "LandClaimMinSize": { - "X": 5, - "Y": 5, - "Z": 5 - }, - "LandClaimMaxAreas": 99999, - "AutoGrant": true - } - ], - "DefaultRoleCode": "suplayer", - "AntiAbuse": 0, - "OnlyWhitelisted": false, - "VerifyPlayerAuth": true, - "DefaultSpawn": null, - "AllowPvP": false, - "AllowFireSpread": true, - "AllowFallingBlocks": true, - "StartupCommands": null, - "RepairMode": false, - "RegenerateCorruptChunks": false, - "ChatRateLimitMs": 1000, - "DieBelowDiskSpaceMb": 200 -} \ No newline at end of file diff --git a/build-custom-example/Playerdata/playerdata.json b/compose-default/Playerdata/playerdata.json similarity index 100% rename from build-custom-example/Playerdata/playerdata.json rename to compose-default/Playerdata/playerdata.json diff --git a/build-custom-example/Playerdata/playergroups.json b/compose-default/Playerdata/playergroups.json similarity index 100% rename from build-custom-example/Playerdata/playergroups.json rename to compose-default/Playerdata/playergroups.json diff --git a/build-custom-example/Playerdata/playersbanned.json b/compose-default/Playerdata/playersbanned.json similarity index 100% rename from build-custom-example/Playerdata/playersbanned.json rename to compose-default/Playerdata/playersbanned.json diff --git a/build-custom-example/Playerdata/playerswhitelisted.json b/compose-default/Playerdata/playerswhitelisted.json similarity index 100% rename from build-custom-example/Playerdata/playerswhitelisted.json rename to compose-default/Playerdata/playerswhitelisted.json diff --git a/serverconfig.json b/compose-default/serverconfig.json similarity index 93% rename from serverconfig.json rename to compose-default/serverconfig.json index cbed0b7..278e4ea 100644 --- a/serverconfig.json +++ b/compose-default/serverconfig.json @@ -1,36 +1,6 @@ { - "ConfigVersion": "1.0", - "ServerMonitor": true, - "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/", - "ClientConnectionTimeout": 120, "EntityDebugMode": false, - "MapSizeX": 1000000, - "MapSizeY": 256, - "MapSizeZ": 1000000, - "ServerLanguage": "en", - "SkipEveryChunkRow": 0, - "SkipEveryChunkRowWidth": 0, - "ModPaths": [ - "Mods", - "/gamedata/vs/Mods" - ], - "WorldConfig": { - "Seed": null, - "SaveFileLocation": "/gamedata/vs/Saves/default.vcdbs", - "WorldName": "VintageDockerExample", - "AllowCreativeMode": true, - "PlayStyle": "surviveandbuild", - "PlayStyleLangCode": "surviveandbuild-bands", - "WorldType": "standard", - "WorldConfiguration": null, - "MapSizeY": null, - "CreatedByPlayerName": null, - "DisabledMods": null, - "RepairMode": false - }, - "NextPlayerGroupUid": 10, - "GroupChatHistorySize": 20, - "MaxOwnedGroupChannelsPerUser": 10, + "ConfigVersion": "1.5", "ServerName": "EN - Vintage Story Server", "ServerUrl": null, "ServerDescription": "VintageServer running in Docker container", @@ -41,19 +11,30 @@ "CompressPackets": true, "AdvertiseServer": true, "MaxClients": 16, + "PassTimeWhenEmpty": false, + "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/", + "ModDbUrl": "https://mods.vintagestory.at/", + "ClientConnectionTimeout": 120, "Password": null, + "MapSizeX": 1000000, + "MapSizeY": 256, + "MapSizeZ": 1000000, + "ServerLanguage": "en", "MaxChunkRadius": 12, "TickTime": 33.3333321, + "SpawnCapPlayerScaling": 0.75, "BlockTickChunkRange": 4, "MaxMainThreadBlockTicks": 10000, "RandomBlockTicksPerChunk": 16, "BlockTickInterval": 300, + "SkipEveryChunkRow": 0, + "SkipEveryChunkRowWidth": 0, "Roles": [ { "Code": "suvisitor", + "PrivilegeLevel": -1, "Name": "Survival Visitor", "Description": "Can only visit this world and chat but not use/place/break anything", - "PrivilegeLevel": -1, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -73,9 +54,9 @@ }, { "Code": "crvisitor", + "PrivilegeLevel": -1, "Name": "Creative Visitor", "Description": "Can only visit this world, chat and fly but not use/place/break anything", - "PrivilegeLevel": -1, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -95,9 +76,9 @@ }, { "Code": "limitedsuplayer", + "PrivilegeLevel": -1, "Name": "Limited Survival Player", "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat", - "PrivilegeLevel": -1, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -107,7 +88,8 @@ "build", "useblock", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 1, @@ -123,9 +105,9 @@ }, { "Code": "limitedcrplayer", + "PrivilegeLevel": -1, "Name": "Limited Creative Player", "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)", - "PrivilegeLevel": -1, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -137,7 +119,8 @@ "gamemode", "freemove", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 2, @@ -153,9 +136,9 @@ }, { "Code": "suplayer", + "PrivilegeLevel": 0, "Name": "Survival Player", "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.", - "PrivilegeLevel": 0, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -166,7 +149,8 @@ "build", "useblock", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 1, @@ -182,9 +166,9 @@ }, { "Code": "crplayer", + "PrivilegeLevel": 100, "Name": "Creative Player", "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", - "PrivilegeLevel": 100, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -197,7 +181,8 @@ "gamemode", "freemove", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 2, @@ -213,9 +198,9 @@ }, { "Code": "sumod", + "PrivilegeLevel": 200, "Name": "Survival Moderator", "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.", - "PrivilegeLevel": 200, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -232,7 +217,8 @@ "announce", "readlists", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 1, @@ -248,9 +234,9 @@ }, { "Code": "crmod", + "PrivilegeLevel": 500, "Name": "Creative Moderator", "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", - "PrivilegeLevel": 500, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -270,7 +256,8 @@ "announce", "readlists", "attackcreatures", - "attackplayers" + "attackplayers", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 2, @@ -286,9 +273,9 @@ }, { "Code": "admin", + "PrivilegeLevel": 99999, "Name": "Admin", "Description": "Has all privileges, including giving other players admin status.", - "PrivilegeLevel": 99999, "DefaultSpawn": null, "ForcedSpawn": null, "Privileges": [ @@ -318,7 +305,8 @@ "root", "commandplayer", "controlplayergroups", - "manageplayergroups" + "manageplayergroups", + "selfkill" ], "RuntimePrivileges": [], "DefaultGameMode": 1, @@ -334,16 +322,41 @@ } ], "DefaultRoleCode": "suplayer", + "ModPaths": [ + "Mods", + "/gamedata/vs/Mods" + ], "AntiAbuse": 0, + "WorldConfig": { + "Seed": null, + "SaveFileLocation": "/gamedata/Saves/default.vcdbs", + "WorldName": "VintageDockerExample", + "AllowCreativeMode": true, + "PlayStyle": "surviveandbuild", + "PlayStyleLangCode": "surviveandbuild-bands", + "WorldType": "standard", + "WorldConfiguration": null, + "MapSizeY": null, + "CreatedByPlayerName": null, + "DisabledMods": null, + "RepairMode": false + }, + "NextPlayerGroupUid": 10, + "GroupChatHistorySize": 20, + "MaxOwnedGroupChannelsPerUser": 10, "OnlyWhitelisted": false, "VerifyPlayerAuth": true, "DefaultSpawn": null, "AllowPvP": false, "AllowFireSpread": true, "AllowFallingBlocks": true, + "HostedMode": false, "StartupCommands": null, "RepairMode": false, + "AnalyzeMode": false, + "CorruptionProtection": true, "RegenerateCorruptChunks": false, "ChatRateLimitMs": 1000, - "DieBelowDiskSpaceMb": 200 + "DieBelowDiskSpaceMb": 400, + "ModIdBlackList": null } \ No newline at end of file diff --git a/compose-default/servermagicnumbers.json b/compose-default/servermagicnumbers.json new file mode 100644 index 0000000..cdac108 --- /dev/null +++ b/compose-default/servermagicnumbers.json @@ -0,0 +1,25 @@ +{ + "Comment": "You can use this config to increase/lower the cpu and network load of the server. A Warning though: Changing these numbers might make your server run unstable or slow. Use at your own risk! Until there is an official documentation, feel free to ask in the forums what the numbers do.", + "DefaultEntityTrackingRange": 4, + "RequestChunkColumnsQueueSize": 2000, + "ReadyChunksQueueSize": 200, + "ChunksColumnsToRequestPerTick": 4, + "ChunksToSendPerTick": 192, + "ChunkRequestTickTime": 20, + "ChunkColumnsToGeneratePerThreadTick": 15, + "ServerAutoSave": 300, + "SpawnChunksWidth": 7, + "TrackedEntitiesPerClient": 3000, + "CalendarPacketSecondInterval": 60, + "ChunkUnloadInterval": 4000, + "UncompressedChunkTTL": 15000, + "CompressedChunkTTL": 45000, + "PlayerDesyncTolerance": 0.02, + "PlayerDesyncMaxIntervalls": 20.0, + "ChunkThreadTickTime": 5, + "AntiAbuseMaxWalkBlocksPer200ms": 3, + "AntiAbuseMaxFlySuspicions": 3, + "AntiAbuseMaxTeleSuspicions": 8, + "MaxPhysicsThreads": 4, + "ServerMagicNumVersion": "1.3" +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f9b1f73 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3.8' + +services: + # docker compose up -d vsserver-local + vsserver-local: + build: . + container_name: vsserver-local + restart: unless-stopped + volumes: + - ./compose-default:/gamedata + ports: + - 42420:42420 + environment: + VS_DATA_PATH: /gamedata + # docker compose up -d vsserver-stable + vsserver-stable: + image: devidian/vintagestory:latest + container_name: vsserver-stable + restart: unless-stopped + volumes: + - /appdata/vintagestory:/gamedata + ports: + - 42430:42420 + environment: + VS_DATA_PATH: /gamedata + # docker compose up -d vsserver-unstable + vsserver-unstable: + image: devidian/vintagestory:unstable + container_name: vsserver-unstable + restart: unless-stopped + volumes: + - /appdata/vintagestory-unstable:/gamedata + ports: + - 42440:42420 + environment: + VS_DATA_PATH: /gamedata + # docker compose up -d vsserver-pre + vsserver-pre: + image: devidian/vintagestory:pre + container_name: vsserver-pre + restart: unless-stopped + volumes: + - /appdata/vintagestory-pre:/gamedata + ports: + - 42435:42420 + environment: + VS_DATA_PATH: /gamedata \ No newline at end of file