mirror of
https://github.com/parkervcp/eggs.git
synced 2025-01-04 17:02:53 +08:00
Compare commits
10 Commits
479e1d97d0
...
829ee30470
Author | SHA1 | Date | |
---|---|---|---|
|
829ee30470 | ||
|
7d580cedb8 | ||
|
c2b2ea7a71 | ||
|
a03cb57c38 | ||
|
f206280eba | ||
|
9c7d1e5102 | ||
|
af494da46e | ||
|
ba1a427b3d | ||
|
03eb96b5b8 | ||
|
31666dd7db |
@ -1,4 +1,4 @@
|
||||
# Parkers Pterodactyl eggs repo
|
||||
# Parkers Pterodactyl eggs repo
|
||||
|
||||
I am working on adding a large collection of public eggs for the Pterodactyl community.
|
||||
|
||||
@ -83,7 +83,8 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
||||
|
||||
### noSQL
|
||||
|
||||
* [MongoDB](/database/nosql/mongodb)
|
||||
* [mongoDB](/database/nosql/mongodb)
|
||||
* [cassandra](/database/nosql/cassandra)
|
||||
* [rethinkdb](/database/nosql/rethinkdb)
|
||||
|
||||
### SQL Databases
|
||||
|
61
database/nosql/cassandra/README.md
Normal file
61
database/nosql/cassandra/README.md
Normal file
@ -0,0 +1,61 @@
|
||||
# Apache Cassandra
|
||||
|
||||
### From the [Apache Cassandra](https://cassandra.apache.org/) website
|
||||
Apache Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.
|
||||
Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.
|
||||
|
||||
### Installation
|
||||
Follow the common egg installation guide to install the egg on your Pterodactyl instance.
|
||||
You have to specifiy the Cassandra version to install using the "Cassandra Version" variable.
|
||||
By default, version 4.0.0 will be installed.
|
||||
|
||||
The version to install has to be available on the mirrors.ae-online.de mirror - which is one of the official mirrors.
|
||||
|
||||
You can choose between a Java 11/Python 3 (Cassandra >= 4.0.0) and Java 8/Python 2 (Cassandra < 4.0.0) image
|
||||
|
||||
### Security
|
||||
|
||||
#### General usage
|
||||
Allowing general users to use this egg is potentially dangerous as the user can modify the Cassandra startup script,
|
||||
which is a simple shell script located in the mounted `/home/container` directory. Only trusted users
|
||||
should have access to a Cassandra server hosted with this egg to prevent malicious use!
|
||||
|
||||
#### Authentication
|
||||
The automated configuration of the egg won't allow disable authentication for Cassandra.
|
||||
|
||||
The default credentials are:
|
||||
- Username: cassandra
|
||||
- Password: cassandra
|
||||
|
||||
The first thing you should do after the first start is changing this password or creating an entirely new user
|
||||
while removing the default one. Especially if your instance is exposed to the internet!
|
||||
Don't forget to update the login credentials for the default user in the eggs variables after changing them
|
||||
for the server to work properly!
|
||||
|
||||
**Not changing the password right after the first startup is a big security flaw!**
|
||||
|
||||
Example command you can enter into the Pterodactyl console after CQLSH is connected to change the password:
|
||||
```
|
||||
ALTER USER cassandra WITH PASSWORD 'SomePasswordYouShouldSpecifyOnYourOwn!';
|
||||
```
|
||||
|
||||
#### Internet Access
|
||||
Cassandra recommends to not expose the service to the internet.
|
||||
Therefore, it is recommended to run this egg in an internal network or behind a firewall,
|
||||
that is properly configured to restrict access to the service from outside of your network.
|
||||
Note that Docker bypasses IPTables (and because of this also UFW) by default and needs additional configuration!
|
||||
|
||||
If you still want to expose the Cassandra service to the internet, configure Cassandra to use an encrypted connection!
|
||||
|
||||
### Update support
|
||||
The egg _should_ keep the `conf` and `data` folder when reinstalling, to prevent destroying the configuration by accident.
|
||||
|
||||
If you want to reset the server completly, remove the `conf` and `data` directory manually before reinstalling.
|
||||
|
||||
### Server Ports
|
||||
|
||||
Ports required to run the server in a table format.
|
||||
|
||||
| Port | default |
|
||||
| ----------------------------- | ------- |
|
||||
| Cassandra CQL Native Tansport | 9042 |
|
60
database/nosql/cassandra/egg-apache-cassandra.json
Normal file
60
database/nosql/cassandra/egg-apache-cassandra.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||
"meta": {
|
||||
"version": "PTDL_v1",
|
||||
"update_url": null
|
||||
},
|
||||
"exported_at": "2021-08-03T22:11:40+02:00",
|
||||
"name": "Apache Cassandra",
|
||||
"author": "p.zarrad@outlook.de",
|
||||
"description": "Apache Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.",
|
||||
"features": null,
|
||||
"images": [
|
||||
"ghcr.io\/parkervcp\/yolks:cassandra_java11_python3",
|
||||
"ghcr.io\/parkervcp\/yolks:cassandra_java8_python2"
|
||||
],
|
||||
"file_denylist": [],
|
||||
"startup": ".\/start.sh",
|
||||
"config": {
|
||||
"files": "{\r\n \"conf\/jvm-server.options\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#-Xms\": \"-Xms128M\",\r\n \"#-Xmx\": \"-Xmx{{server.build.memory}}M\"\r\n }\r\n },\r\n \"conf\/jvm11-server.options\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#-Xms\": \"-Xms128M\",\r\n \"#-Xmx\": \"-Xmx{{server.build.memory}}M\"\r\n }\r\n },\r\n \"conf\/jvm8-server.options\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#-Xms\": \"-Xms128M\",\r\n \"#-Xmx\": \"-Xmx{{server.build.memory}}M\"\r\n }\r\n },\r\n \"conf\/cassandra.yaml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"native_transport_port\": \"native_transport_port: {{server.build.default.port}}\",\r\n \"# rpc_address\": \"rpc_address: 0.0.0.0\",\r\n \"rpc_address\": \"rpc_address: 0.0.0.0\",\r\n \"# broadcast_rpc_address\": \"broadcast_rpc_address: {{server.build.default.ip}}\",\r\n \"broadcast_rpc_address\": \"broadcast_rpc_address: {{server.build.default.ip}}\",\r\n \"authenticator: AllowAllAuthenticator\": \"authenticator: PasswordAuthenticator\",\r\n \"authorizer: AllowAllAuthorizer\": \"authorizer: CassandraAuthorizer\"\r\n }\r\n }\r\n}",
|
||||
"startup": "{\r\n \"done\": \"Connected to\"\r\n}",
|
||||
"logs": "{}",
|
||||
"stop": "EXIT;"
|
||||
},
|
||||
"scripts": {
|
||||
"installation": {
|
||||
"script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Cleanup previous install if available\r\nfind . -maxdepth 1 ! -name \"conf\" ! -name \"data\" ! -name . -exec rm -rf {} \\;\r\nif [ -d \"conf\" ]; then mv conf conf.bak; fi\r\n# Download and extract Cassandra\r\ncurl -L https:\/\/mirrors.ae-online.de\/apache\/cassandra\/${CASSANDRA_VERSION}\/apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz --output cassandra.tar.gz\r\ntar -zxvf cassandra.tar.gz\r\nmv -n apache-cassandra-*\/* .\/\r\nrm -rf cassandra.tar.gz apache-cassandra*\r\n# Create startup script\r\ncurl -L https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/nosql\/cassandra\/start.sh --output start.sh\r\nchmod 755 start.sh\r\n# Restore custom config\r\nif [ -d \"conf.bak\" ]; then rm -rf conf; mv conf.bak conf; rm -rf conf.bak; fi",
|
||||
"container": "ghcr.io\/pterodactyl\/installers:alpine",
|
||||
"entrypoint": "ash"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"name": "Cassandra Version",
|
||||
"description": "The version of Cassandra to install. By default the latest version is being installed.",
|
||||
"env_variable": "CASSANDRA_VERSION",
|
||||
"default_value": "4.0.0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:20"
|
||||
},
|
||||
{
|
||||
"name": "Cassandra Username",
|
||||
"description": "The username used when connecting to the started Cassandra, to make a CQLSH available in the Pterodactyl console. This value must be set to an existing user for the egg to work properly. You can create a custom user and enter it here instead of using the default one.",
|
||||
"env_variable": "CASSANDRA_USER",
|
||||
"default_value": "cassandra",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:32"
|
||||
},
|
||||
{
|
||||
"name": "Cassandra Password",
|
||||
"description": "The password used when connecting to the started Cassandra, to make a CQLSH available in the Pterodactyl console. This value must be set to the password of the user specified using the \"Cassandra Username\" variable. It is highly recommended to change the password of the default Cassandra user right after the first start. After updating the password on the server, update this variable too for the egg to work properly!",
|
||||
"env_variable": "CASSANDRA_PASSWORD",
|
||||
"default_value": "cassandra",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:128"
|
||||
}
|
||||
]
|
||||
}
|
35
database/nosql/cassandra/start.sh
Normal file
35
database/nosql/cassandra/start.sh
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/ash
|
||||
# Start Cassandra
|
||||
echo "Starting Cassandra..."
|
||||
./bin/cassandra -R -p cassandra.pid
|
||||
# Wait for successful startup
|
||||
while ! ./bin/cqlsh -u "$CASSANDRA_USER" -p "$CASSANDRA_PASSWORD" -e 'describe cluster' 127.0.0.1 $SERVER_PORT; do
|
||||
echo "Still awaiting Cassandra startup..."
|
||||
sleep 10;
|
||||
if ! kill -0 $(cat cassandra.pid); then
|
||||
echo "It seems Cassandra has crashed!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
# Connect with CQLSH
|
||||
echo "Launching CQLSH..."
|
||||
if [ "$CASSANDRA_PASSWORD" = 'cassandra' ]; then
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo "IMPORTANT:"
|
||||
echo "YOUR CASSANDRA PASSWORD SEEMS TO BE THE DEFAULT ONE, PLEASE CHANGE IT!"
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
fi
|
||||
./bin/cqlsh -u "$CASSANDRA_USER" -p "$CASSANDRA_PASSWORD" -t 127.0.0.1 $SERVER_PORT
|
||||
# Stop server when CQLSH is stopped
|
||||
echo "Stopping Cassandra gracefully..."
|
||||
cassandraPid=$(cat cassandra.pid)
|
||||
kill $cassandraPid
|
||||
while kill -0 $cassandraPid; do
|
||||
echo "Still waiting for Cassandra to exit..."
|
||||
sleep 5;
|
||||
done
|
||||
echo "Cassandra exited gracefully!"
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user