Compare commits

...

7 Commits

Author SHA1 Message Date
Quinten
e715af2ae0
Merge 5a0b03989f into 7d580cedb8 2024-04-15 08:04:27 +08:00
Michael (Parker) Parker
7d580cedb8
Merge pull request #2888 from Limmek/astro-colony
Update Astro Colony
2024-04-12 08:28:19 -04:00
Limmek
c2b2ea7a71 Updated Astro Colony egg's 2024-04-12 14:09:22 +02:00
Michael (Parker) Parker
26cf99b6d7
Merge pull request #2884 from ImKringle/fix-theforest
Fix - The Forest
2024-04-11 01:27:19 -04:00
Dylan
2944354a25
Edit Install/Startup/Config 2024-04-09 22:17:02 -04:00
Quinten
5a0b03989f
Update README.md 2023-12-17 20:06:33 +01:00
Quinten
2f9a79ed97
add Sonic Robo Blast 2 2023-12-17 20:04:59 +01:00
7 changed files with 376 additions and 53 deletions

View File

@ -234,6 +234,8 @@ If you are reading this it looks like you are looking to add an egg to your serv
[Spacestation 14](game_eggs/spacestation_14)
[Sonic Robo Blast 2](srb2)
[Rimworld](game_eggs/rimworld)
* [Open World](game_eggs/rimworld/open_world)

View File

@ -128,6 +128,8 @@
[Spacestation 14](spacestation_14)
[Sonic Robo Blast 2](srb2)
[Rimworld](rimworld)
* [Open World](rimworld/open_world)

25
game_eggs/srb2/README.md Normal file
View File

@ -0,0 +1,25 @@
# Sonic Robo Blast 2
## From their [Github](https://github.com/STJr/SRB2)
## [Documentation](https://wiki.srb2.org/wiki/Dedicated_server)
## Wine
Known limitations:
- The console input can not be used
- Log files do not get saved in the logs folder
## Server Ports
Ports required to run the server
| Port | default |
|---------|---------|
| Game | 5029 |
| client | 5030 |
## Connecting to the server
You can connect to the server with launching the client with the `-console` argument. When the client is started type in the console `connect <ip>:<gameport>`

View File

@ -0,0 +1,92 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-12-17T19:58:12+01:00",
"name": "Sonic Robo Blast 2",
"author": "josdekurk@gmail.com",
"description": "Sonic Robo Blast 2 is a 3D open-source Sonic the Hedgehog fangame built using a modified version of the Doom Legacy port of Doom. SRB2 is closely inspired by the original Sonic games from the Sega Genesis, and attempts to recreate the design in 3D. While SRB2 isn't fully completed, it already features tons of levels, enemies, speed, and quite a lot of the fun that the original Sonic games provided.",
"features": null,
"docker_images": {
"Wine_Latest": "ghcr.io\/parkervcp\/yolks:wine_latest"
},
"file_denylist": [],
"startup": "xvfb-run --auto-servernum wine srb2win.exe -dedicated -room {{ROOM_ID}} -password {{SERVER_PASSWORD}} -serverport {{SERVER_PORT}} -clientport {{CLIENT_PORT}} -bindaddr 0.0.0.0 {{SERVER_IP}} -home \/home\/container {{EXTRA_FLAGS}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Entering main game loop\"\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/STJr\/SRB2\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/STJr\/SRB2\/releases\")\r\nMATCH=Full.zip\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i \"${MATCH}\")\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i \"${MATCH}\")\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\ncurl -sSL -o SRB2-Full.zip ${DOWNLOAD_URL}\r\nunzip -o SRB2-Full.zip\r\nrm SRB2-Full.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Admin password",
"description": "Sets the server password, which players can use to log in as netgame administrators.",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64|min:10",
"field_type": "text"
},
{
"name": "Client Port",
"description": "Specifies the UDP port to use when joining a server.",
"env_variable": "CLIENT_PORT",
"default_value": "",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer",
"field_type": "text"
},
{
"name": "Room ID",
"description": "Advertises the server on the Master Server. ID specifies the room in which the server is hosted: 33 is the Standard room, while 28 is the Casual room.",
"env_variable": "ROOM_ID",
"default_value": "33",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|in:28,33",
"field_type": "text"
},
{
"name": "WINEDEBUG",
"description": "",
"env_variable": "WINEDEBUG",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string|max:60",
"field_type": "text"
},
{
"name": "WINEPATH",
"description": "",
"env_variable": "WINEPATH",
"default_value": "\/home\/container",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|",
"field_type": "text"
},
{
"name": "Aditional flags",
"description": "Here you can specify extra flags like -ultimatemode",
"env_variable": "EXTRA_FLAGS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:128",
"field_type": "text"
}
]
}

View File

@ -0,0 +1,194 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2024-04-12T14:03:30+02:00",
"name": "Astro Colony [wine]",
"author": "limmek@swedon.se",
"description": "Explore endless Universe and create the most efficient constellation of colonies. Build conveyor systems to automate production. Take care of Astronauts and their needs! Establish new colonies as part of intergalactic simulation.",
"features": [
"steam_disk_space"
],
"docker_images": {
"wine": "ghcr.io\/parkervcp\/yolks:wine_latest"
},
"file_denylist": [],
"startup": "wine .\/AstroColony\/Binaries\/Win64\/AstroColonyServer.exe -log -QueryPort={{SERVER_QUERY_PORT}} -SteamServerName=\"{{SERVER_NAME}}\"",
"config": {
"files": "{\r\n \"AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ServerPassword\": \"{{env.SERVER_PASSWORD}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].Seed\": \"{{env.SERVER_MAPSEED}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MapName\": \"{{env.SERVER_MAPNAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MaxPlayers\": \"{{env.SERVER_MAXPLAYERS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ShouldLoadLatestSavegame\": \"{{env.SERVER_LOADLATESTSAVEGAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AdminList\": \"{{env.SERVER_ADMINS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SharedTechnologies\": \"{{env.SERVER_SHAREDTECHNOLOGIES}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].OxygenConsumption\": \"{{env.SERVER_OXYGENCONSUMPTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].FreeConstruction\": \"{{env.SERVER_FREECONSTRUCTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AutosaveInterval\": \"{{env.SERVER_AUTOSAVEINTERVAL}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AutosavesCount\": \"{{env.SERVER_AUTOSAVESCOUNT}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"server create success\"\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\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\/AstroColony\/Binaries\/Win64 +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\n# set up settings\r\ncreate_server_settings_ini() {\r\n cat > ServerSettings.ini <<EOF\r\n[\/Script\/AstroColony.EHServerSubsystem]\r\nServerPassword=${SERVER_PASSWORD}\r\nSeed=${SERVER_MAPSEED}\r\nMapName=${SERVER_MAPNAME}\r\nMaxPlayers=${SERVER_MAXPLAYERS}\r\nShouldLoadLatestSavegame=${SERVER_LOADLATESTSAVEGAME}\r\nAdminList=${SERVER_ADMINS} \r\nSharedTechnologies=${SERVER_SHAREDTECHNOLOGIES}\r\nOxygenConsumption=${SERVER_OXYGENCONSUMPTION}\r\nFreeConstruction=${SERVER_FREECONSTRUCTION}\r\nAutosaveInterval=${SERVER_AUTOSAVEINTERVAL}\r\nAutosavesCount=${SERVER_AUTOSAVESCOUNT}\r\nEOF\r\n}\r\n\r\nFILE=\/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config already exists, skipping\"\r\nelse \r\n echo \"Config does not yet exist, making one\"\r\n mkdir -p \/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/\r\n cd \/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/\r\n create_server_settings_ini\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "[Advanced] Steam App ID",
"description": "steam app id found here - https:\\\/\\\/developer.valvesoftware.com\\\/wiki\\\/Dedicated_Servers_List.",
"env_variable": "SRCDS_APPID",
"default_value": "2662210",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:2662210",
"field_type": "text"
},
{
"name": "[Advanced] Windows Install Flag",
"description": "Required for windows game server installs",
"env_variable": "WINDOWS_INSTALL",
"default_value": "1",
"user_viewable": false,
"user_editable": false,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Server Query Port",
"description": "UDP port for Steam server list features.",
"env_variable": "SERVER_QUERY_PORT",
"default_value": "27015",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer",
"field_type": "text"
},
{
"name": "Server Name",
"description": "Change the server name.",
"env_variable": "SERVER_NAME",
"default_value": "Astro Colony Dedicated Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30",
"field_type": "text"
},
{
"name": "Server Password",
"description": "Set the game password. Leave empty to make server public.",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20",
"field_type": "text"
},
{
"name": "Max Players",
"description": "Amount of max allowed players.",
"env_variable": "SERVER_MAXPLAYERS",
"default_value": "5",
"user_viewable": true,
"user_editable": true,
"rules": "required|between:1,10",
"field_type": "text"
},
{
"name": "Map Seed",
"description": "Set the map seed.",
"env_variable": "SERVER_MAPSEED",
"default_value": "1337",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|digits_between:1,10",
"field_type": "text"
},
{
"name": "Map Name",
"description": "Set the name of the save file.",
"env_variable": "SERVER_MAPNAME",
"default_value": "YourMapName",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30",
"field_type": "text"
},
{
"name": "Autosave Interval",
"description": "",
"env_variable": "SERVER_AUTOSAVEINTERVAL",
"default_value": "5.0",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric",
"field_type": "text"
},
{
"name": "Autosaves Count",
"description": "",
"env_variable": "SERVER_AUTOSAVESCOUNT",
"default_value": "10",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer",
"field_type": "text"
},
{
"name": "Admin List",
"description": "List of server administrators only (steamID64s) allowed, separatet by comma.",
"env_variable": "SERVER_ADMINS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Should Load Latest Savegame",
"description": "",
"env_variable": "SERVER_LOADLATESTSAVEGAME",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Shared Technologies",
"description": "",
"env_variable": "SERVER_SHAREDTECHNOLOGIES",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Oxygen Consumption",
"description": "",
"env_variable": "SERVER_OXYGENCONSUMPTION",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Free Construction",
"description": "",
"env_variable": "SERVER_FREECONSTRUCTION",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Disabling or enabling automated updates on boot",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
}
]
}

View File

@ -4,50 +4,38 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-11-06T17:38:07+01:00",
"exported_at": "2024-04-12T14:04:24+02:00",
"name": "Astro Colony",
"author": "limmek@swedon.se",
"description": "Explore endless Universe and create the most efficient constellation of colonies. Build conveyor systems to automate production. Take care of Astronauts and their needs! Establish new colonies as part of intergalactic simulation.",
"features": [
"steam_disk_space"
],
"features": null,
"docker_images": {
"wine": "ghcr.io\/parkervcp\/yolks:wine_latest"
"ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian"
},
"file_denylist": [],
"startup": "wine .\/AstroColony\/Binaries\/Win64\/AstroColonyServer.exe -log -SteamServerName=\\\"${SERVER_NAME}\\\" -QueryPort=${SERVER_QUERY_PORT}",
"startup": ".\/AstroColony\/Binaries\/Linux\/AstroColonyServer -log -QueryPort={{SERVER_QUERY_PORT}} -SteamServerName=\\\"{{SERVER_NAME}}\\\"",
"config": {
"files": "{\r\n \"AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ServerPassword\": \"{{env.SERVER_PASSWORD}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MapName\": \"{{env.SERVER_MAP}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MaxPlayers\": \"{{env.SERVER_MAXPLAYERS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SavegameName\": \"{{env.SERVER_GAMESAVE}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ShouldLoadLatestSavegame\": \"{{env.SERVER_LOADLATESTSAVEGAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AdminList\": \"{{env.SERVER_ADMINS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SharedTechnologies\": \"{{env.SERVER_SHAREDTECHNOLOGIES}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].OxygenConsumption\": \"{{env.SERVER_OXYGENCONSUMPTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].FreeConstruction\": \"{{env.SERVER_FREECONSTRUCTION}}\"\r\n }\r\n }\r\n}",
"files": "{\r\n \"AstroColony\/Saved\/Config\/LinuxServer\/ServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ServerPassword\": \"{{env.SERVER_PASSWORD}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].Seed\": \"{{env.SERVER_MAPSEED}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MapName\": \"{{env.SERVER_MAPNAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MaxPlayers\": \"{{env.SERVER_MAXPLAYERS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ShouldLoadLatestSavegame\": \"{{env.SERVER_LOADLATESTSAVEGAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AdminList\": \"{{env.SERVER_ADMINS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SharedTechnologies\": \"{{env.SERVER_SHAREDTECHNOLOGIES}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].OxygenConsumption\": \"{{env.SERVER_OXYGENCONSUMPTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].FreeConstruction\": \"{{env.SERVER_FREECONSTRUCTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AutosaveInterval\": \"{{env.SERVER_AUTOSAVEINTERVAL}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AutosavesCount\": \"{{env.SERVER_AUTOSAVESCOUNT}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"server create success\"\r\n}",
"logs": "{}",
"stop": "^^C"
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\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\n# set up settings\r\ncreate_server_settings_ini() {\r\n cat > ServerSettings.ini <<EOF\r\n[\/Script\/AstroColony.EHServerSubsystem]\r\nServerPassword=${SERVER_PASSWORD}\r\nMapName=${SERVER_MAP}\r\nMaxPlayers=${SERVER_MAXPLAYERS}\r\nSavegameName=${SERVER_GAMESAVE}\r\nShouldLoadLatestSavegame=${SERVER_LOADLATESTSAVEGAME}\r\nAdminList=${SERVER_ADMINS}\r\nSharedTechnologies=${SERVER_SHAREDTECHNOLOGIES}\r\nOxygenConsumption=${SERVER_OXYGENCONSUMPTION}\r\nFreeConstruction=${SERVER_FREECONSTRUCTION}\r\nEOF\r\n}\r\n\r\nFILE=\/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config already exists, skipping\"\r\nelse \r\n echo \"Config does not yet exist, making one\"\r\n mkdir -p \/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/\r\n cd \/mnt\/server\/AstroColony\/Saved\/Config\/WindowsServer\/\r\n create_server_settings_ini\r\nfi\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\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates tar unzip lib32gcc-s1 wget\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\n# set up settings\r\ncreate_server_settings_ini() {\r\n cat > ServerSettings.ini <<EOF\r\n[\/Script\/AstroColony.EHServerSubsystem]\r\nServerPassword=${SERVER_PASSWORD}\r\nSeed=${SERVER_MAPSEED}\r\nMapName=${SERVER_MAPNAME}\r\nMaxPlayers=${SERVER_MAXPLAYERS}\r\nShouldLoadLatestSavegame=${SERVER_LOADLATESTSAVEGAME}\r\nAdminList=${SERVER_ADMINS} \r\nSharedTechnologies=${SERVER_SHAREDTECHNOLOGIES}\r\nOxygenConsumption=${SERVER_OXYGENCONSUMPTION}\r\nFreeConstruction=${SERVER_FREECONSTRUCTION}\r\nAutosaveInterval=${SERVER_AUTOSAVEINTERVAL}\r\nAutosavesCount=${SERVER_AUTOSAVESCOUNT}\r\nEOF\r\n}\r\n\r\nFILE=\/mnt\/server\/AstroColony\/Saved\/Config\/LinuxServer\/ServerSettings.ini\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config already exists, skipping\"\r\nelse \r\n echo \"Config does not yet exist, making one\"\r\n mkdir -p \/mnt\/server\/AstroColony\/Saved\/Config\/LinuxServer\/\r\n cd \/mnt\/server\/AstroColony\/Saved\/Config\/LinuxServer\/\r\n create_server_settings_ini\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "\/bin\/bash"
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Steam App ID",
"description": "steam app id found here - https:\\\/\\\/developer.valvesoftware.com\\\/wiki\\\/Dedicated_Servers_List.",
"name": "[Advanced] Steam App ID",
"description": "Steam App ID used for installation and updates. Rarely needs to be changed.",
"env_variable": "SRCDS_APPID",
"default_value": "2662210",
"default_value": "2934900",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:2662210",
"field_type": "text"
},
{
"name": "Server Name",
"description": "Change the server name.",
"env_variable": "SERVER_NAME",
"default_value": "Astro Colony Dedicated Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30",
"rules": "required|string|in:2934900",
"field_type": "text"
},
{
@ -60,6 +48,16 @@
"rules": "required|integer",
"field_type": "text"
},
{
"name": "Server Name",
"description": "Change the server name.",
"env_variable": "SERVER_NAME",
"default_value": "Astro Colony Dedicated Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30",
"field_type": "text"
},
{
"name": "Server Password",
"description": "Set the game password. Leave empty to make server public.",
@ -70,16 +68,6 @@
"rules": "nullable|string|max:20",
"field_type": "text"
},
{
"name": "Map Name",
"description": "Set the map seed.",
"env_variable": "SERVER_MAP",
"default_value": "SomeMapName",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "Max Players",
"description": "Amount of max allowed players.",
@ -87,14 +75,44 @@
"default_value": "5",
"user_viewable": true,
"user_editable": true,
"rules": "required|between:1,5",
"rules": "required|between:1,10",
"field_type": "text"
},
{
"name": "Savegame Name",
"description": "Set the name of the save file.",
"env_variable": "SERVER_GAMESAVE",
"default_value": "SomeSavegameName",
"name": "Map Seed",
"description": "Set the map seed.",
"env_variable": "SERVER_MAPSEED",
"default_value": "7300",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|digits_between:1,10",
"field_type": "text"
},
{
"name": "Map Name",
"description": "Map name displayed in serverlist",
"env_variable": "SERVER_MAPNAME",
"default_value": "YourMapName",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30",
"field_type": "text"
},
{
"name": "Autosave Interval",
"description": "Minutes between auto save (5.0 = 5 minutes)",
"env_variable": "SERVER_AUTOSAVEINTERVAL",
"default_value": "5.0",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric",
"field_type": "text"
},
{
"name": "Autosaves Count",
"description": "How many auto save files to keep.",
"env_variable": "SERVER_AUTOSAVESCOUNT",
"default_value": "10",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
@ -150,16 +168,6 @@
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Windows Install Flag",
"description": "Required for windows game server installs",
"env_variable": "WINDOWS_INSTALL",
"default_value": "1",
"user_viewable": false,
"user_editable": false,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Disabling or enabling automated updates on boot",

File diff suppressed because one or more lines are too long