From 7b643d2390e1af0775ca2ede9d74e8900e964f7e Mon Sep 17 00:00:00 2001 From: Pete Navarra Date: Fri, 26 Jan 2024 13:11:17 -0500 Subject: [PATCH] Updating Enshrouded Egg - Using Proton instead of Wine (#2693) * Replacing WINE in favor of PROTON which saw a gigantic performance improvement with Enshrouded Dedicated server. * Updating Egg to Proton, Take 2 * make this come from an internal repo * Use our images * Adding in Settings File Initialization. * Fix server password --- .../steamcmd_servers/enshrouded/README.md | 1 + .../enshrouded/egg-enshrouded.json | 126 ++++++++---------- .../enshrouded/enshrouded_server.json | 10 ++ 3 files changed, 64 insertions(+), 73 deletions(-) create mode 100644 game_eggs/steamcmd_servers/enshrouded/enshrouded_server.json diff --git a/game_eggs/steamcmd_servers/enshrouded/README.md b/game_eggs/steamcmd_servers/enshrouded/README.md index 929dc7a6..77030fac 100644 --- a/game_eggs/steamcmd_servers/enshrouded/README.md +++ b/game_eggs/steamcmd_servers/enshrouded/README.md @@ -18,6 +18,7 @@ Discord: https://discord.gg/enshrouded | ------------- |-------------|-------------| | Vapok | https://github.com/Vapok | https://www.buymeacoffee.com/vapok | | QuintenQVD0 | https://github.com/QuintenQVD0 | | +| gOOvER | https://github.com/gOOvER | | diff --git a/game_eggs/steamcmd_servers/enshrouded/egg-enshrouded.json b/game_eggs/steamcmd_servers/enshrouded/egg-enshrouded.json index 5071ffb7..36fd82f5 100644 --- a/game_eggs/steamcmd_servers/enshrouded/egg-enshrouded.json +++ b/game_eggs/steamcmd_servers/enshrouded/egg-enshrouded.json @@ -4,65 +4,45 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2024-01-24T16:49:35+01:00", + "exported_at": "2024-01-26T17:20:16+01:00", "name": "Enshrouded", "author": "vapokrocks@gmail.com", - "description": "Enshrouded is a survival game currently in beta", + "description": "Enshrouded is a game of survival, crafting, and Action RPG combat, set within a sprawling voxel-based continent. As you journey across the mountains and deserts of an open world, you are free to choose your path and shape your destiny. Credit to gOOvER for the help with the proton image which seems to be performing better over the wine egg.", "features": [ "steam_disk_space" ], "docker_images": { - "Wine Latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "wine .\/enshrouded_server.exe", + "startup": "proton run .\/enshrouded_server.exe", "config": { - "files": "{\r\n \"enshrouded_server.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"slotCount\": \"{{server.build.env.SLOT_COUNT}}\",\r\n \"gamePort\": \"{{server.build.default.port}}\",\r\n \"password\": \"{{server.build.env.SERVER_PASSWORD}}\",\r\n \"queryPort\": \"{{server.build.env.QUERY_PORT}}\",\r\n \"ip\": \"0.0.0.0\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"HostOnline\"\r\n}", + "files": "{\r\n \"enshrouded_server.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SRV_NAME}}\",\r\n \"password\": \"{{server.build.env.SRV_PW}}\",\r\n \"slotCount\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"gamePort\": \"{{server.build.default.port}}\",\r\n \"queryPort\": \"{{server.build.env.QUERY_PORT}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"[Session] 'HostOnline' (up)!\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\nFILE=\/mnt\/server\/enshrouded_server.json\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config already exist skipping\"\r\nelse \r\n echo \"Config does not yet exist, making one\"\r\n cd \/mnt\/server\r\n touch enshrouded_server.json\r\n echo \"{\" >> enshrouded_server.json\r\n echo '\t\"name\": \"Enshrouded Server\",' >> enshrouded_server.json\r\n echo '\t\"password\": \"\",' >> enshrouded_server.json\r\n echo '\t\"saveDirectory\": \".\/savegame\",' >> enshrouded_server.json\r\n echo '\t\"logDirectory\": \".\/logs\",' >> enshrouded_server.json\r\n echo '\t\"ip\": \"0.0.0.0\",' >> enshrouded_server.json\r\n echo '\t\"gamePort\": 15636,' >> enshrouded_server.json\r\n echo '\t\"queryPort\": 15637,' >> enshrouded_server.json\r\n echo '\t\"slotCount\": 16' >> enshrouded_server.json\r\n echo '}' >> enshrouded_server.json\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Enshrouded Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) $( [[ \"${STEAM_SDK}\" == \"1\" ]] && printf %s '+app_update 1007' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n# add below your custom commands if needed\r\n\r\nFILE=\/mnt\/server\/enshrouded_server.json\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config already exist skipping\"\r\nelse \r\n echo \"Config does not yet exist, making one\"\r\n cd \/mnt\/server\r\n touch enshrouded_server.json\r\n echo \"{\" >> enshrouded_server.json\r\n echo '\t\"name\": \"Enshrouded Server\",' >> enshrouded_server.json\r\n echo '\t\"password\": \"\",' >> enshrouded_server.json\r\n echo '\t\"saveDirectory\": \".\/savegame\",' >> enshrouded_server.json\r\n echo '\t\"logDirectory\": \".\/logs\",' >> enshrouded_server.json\r\n echo '\t\"ip\": \"0.0.0.0\",' >> enshrouded_server.json\r\n echo '\t\"gamePort\": 15636,' >> enshrouded_server.json\r\n echo '\t\"queryPort\": 15637,' >> enshrouded_server.json\r\n echo '\t\"slotCount\": 16' >> enshrouded_server.json\r\n echo '}' >> enshrouded_server.json\r\nfi\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "\/bin\/bash" + "entrypoint": "bash" } }, "variables": [ { - "name": "[REQUIRED] Server Query Port", - "description": "UDP port for Steam server list features.", + "name": "[SERVER] Steam Query Port", + "description": "Steam Query Port", "env_variable": "QUERY_PORT", - "default_value": "15637", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|between:1024,65536", + "rules": "required|numeric", "field_type": "text" }, { - "name": "[REQUIRED] Slot Count", - "description": "Number of Slots for Players.", - "env_variable": "SLOT_COUNT", - "default_value": "16", - "user_viewable": true, - "user_editable": true, - "rules": "required|numeric|between:1,16", - "field_type": "text" - }, - { - "name": "Server Name", + "name": "WINDOWS_INSTALL", "description": "", - "env_variable": "SERVER_NAME", - "default_value": "Enshrouded Server", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:32", - "field_type": "text" - }, - { - "name": "Windows Install Flag", - "description": "Required for windows game server installs", "env_variable": "WINDOWS_INSTALL", "default_value": "1", "user_viewable": false, @@ -71,18 +51,8 @@ "field_type": "text" }, { - "name": "WINETRICKS_RUN", - "description": "Run installs on software that is required by the server", - "env_variable": "WINETRICKS_RUN", - "default_value": "vcrun2022", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|in:vcrun2022", - "field_type": "text" - }, - { - "name": "SRCDS_APPID", - "description": "steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List", + "name": "[STEAM] Steam App ID", + "description": "Steam App ID", "env_variable": "SRCDS_APPID", "default_value": "2278520", "user_viewable": false, @@ -91,43 +61,53 @@ "field_type": "text" }, { - "name": "WINEDEBUG", - "description": "", - "env_variable": "WINEDEBUG", - "default_value": "-all", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:20", + "name": "[SERVER] Auto Update", + "description": "Enable automatic updates on boot", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", "field_type": "text" }, { - "name": "WINEPATH", - "description": "", - "env_variable": "WINEPATH", - "default_value": "\/home\/container", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:20", + "name": "[SERVER] Server Name", + "description": "Name of the server", + "env_variable": "SRV_NAME", + "default_value": "My Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", "field_type": "text" }, { - "name": "WINEARCH", - "description": "", - "env_variable": "WINEARCH", - "default_value": "win64", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|in:win64", - "field_type": "text" - }, - { - "name": "Server Password", - "description": "Password for Server Access", - "env_variable": "SERVER_PASSWORD", + "name": "[SERVER] Server Password", + "description": "Server password", + "env_variable": "SRV_PW", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:64", + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "[SERVER] Max Players", + "description": "Maximum number of players allowed", + "env_variable": "MAX_PLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "[SYSTEM] Validate", + "description": "Validate the serverfiles through Steam", + "env_variable": "VALIDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", "field_type": "text" } ] diff --git a/game_eggs/steamcmd_servers/enshrouded/enshrouded_server.json b/game_eggs/steamcmd_servers/enshrouded/enshrouded_server.json new file mode 100644 index 00000000..49e6b957 --- /dev/null +++ b/game_eggs/steamcmd_servers/enshrouded/enshrouded_server.json @@ -0,0 +1,10 @@ +{ + "gamePort": 27015, + "ip": "0.0.0.0", + "logDirectory": "./logs", + "name": "My Server", + "password": "", + "queryPort": 27016, + "saveDirectory": "./savegame", + "slotCount": 10 +} \ No newline at end of file