Merge remote-tracking branch 'parkervcp/master'

This commit is contained in:
paz 2021-01-28 19:48:52 +08:00
commit c2fb9bf178
No known key found for this signature in database
GPG Key ID: 84E180BA8E1E4E10
21 changed files with 581 additions and 729 deletions

View File

@ -76,7 +76,9 @@ If you are reading this it looks like you are looking to add an egg to your serv
[ET Legacy](/enemy_territory/etlegacy)
[Factorio](/factorio/factorio)
[Factorio](/factorio)
* [Vanilla](/factorio/factorio)
* [ModUpdate](/factorio/factorio-modupdate)
[Grand Theft Auto](/gta)
* GTA V

View File

@ -5,6 +5,8 @@ A multifunction Discord bot
### Server Ports
No port are required to run Red.
if you want to use the internal Lavalink Server, you need to allocate port 2333 as primary
### Additional Requirements
When using the Audio Cog the bot will attempt to save files to /tmp resulting in a disk space error. To resolve this error you must increase the size of `tmpfs` using custom container policy.

View File

@ -62,7 +62,7 @@
},
{
"name": "Your OAuth Token",
"description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.tv\/oauth\/",
"description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.github.io\/PhantomBot\/oauth\/",
"env_variable": "USER_OAUTH_TOKEN",
"default_value": "",
"user_viewable": true,
@ -115,4 +115,4 @@
"rules": "max:64"
}
]
}
}

View File

@ -1,13 +1,18 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2020-10-17T02:36:40+00:00",
"exported_at": "2021-01-22T16:39:06+01:00",
"name": "CryoFall",
"author": "contact@zennodes.dk",
"description": "NOTE: For now you have to change SettingsServer.xml under CryoFall_Server_v(Version)_NetCore\/Data\/SettingsServer.xml\r\n\r\nCryoFall is a sci-fi multiplayer colony simulation survival game set on a forgotten planet in a distant future.\r\n\r\nJoin the vast world of CryoFall together with other survivors to rebuild your civilization from scratch. Start with primitive technology and simple tools and use them to progress towards modern industrial might and even beyond, eventually reaching space-age technology only seen in science fiction.\r\n\r\nCryoFall can be played either as a relaxed PvE experience with no competition or as a brutal and unforgiving PvP. Make your choice and join one of many available servers with different game modes or host your own and invite your friends to join you!\r\n\r\nBuild your house or a large base together with other players. Dig wells and create farms to sustain basic needs. Build vehicles to explore the world faster. Establish basics of science, all the way from medicine and chemistry to fuel creation and even lithium extraction to create electronic devices. Cook food or prepare drinks to sell them from vending machines in your store.\r\n\r\nBuild factories to produce on an industrial scale: Weapons and defense systems, bionic implants to augment yourself, even large war machines and artillery guns to use against the biggest of opponents",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_dotnet-5"
],
"file_denylist": "",
"startup": "dotnet Binaries\/Server\/CryoFall_Server.dll loadOrNew",
"config": {
"files": "{}",

View File

@ -1,7 +1,8 @@
# Factorio
#### The Factorio Server
The server supports mods
The server supports mods.
The factorio-modupdate egg uses the factorio-mod-updater (https://github.com/pdemonaco/factorio-mod-updater) to update your mods when ReInstalling the Server.
#### from the developers

View File

@ -0,0 +1,121 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-01-15T16:32:57+01:00",
"name": "Factorio-ModUpdate",
"author": "tueye@tuworld.de",
"description": "The vanilla Factorio server. With automatic Mod Updates after ReInstall.\r\n\r\nhttps:\/\/www.factorio.com\/",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"startup": ".\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server {{SAVE_NAME}}.zip",
"config": {
"files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Hosting game at\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"factorio-current.log\"\r\n}",
"stop": "\/quit"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y curl tar xz-utils python3 python3-requests jq\r\n\r\nlatest_ModUpdate=$(curl --silent \"https:\/\/api.github.com\/repos\/pdemonaco\/factorio-mod-updater\/tags\" | jq -r '.[0].name')\r\n\r\nVERSION_JSON=$(curl -sSL https:\/\/factorio.com\/api\/latest-releases)\r\n\r\nlatest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')\r\nlatest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n running 'curl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}' \\n\"\r\n\r\ncurl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}\r\n\r\ntar -xf factorio-${DL_VERSION} --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}\r\n\r\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\nif [ -e ${SAVE_NAME}.zip ]; then\r\n echo \"save file exists\"\r\nelse\r\n .\/bin\/x64\/factorio --create ${SAVE_NAME}\r\n chmod o+w ${SAVE_NAME}.zip\r\nfi\r\n\r\n# Download Mod Updater\r\necho -e \"\\n running 'curl -sL https:\/\/github.com\/pdemonaco\/factorio-mod-updater\/archive\/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}' \\n\"\r\n\r\ncurl -sL https:\/\/github.com\/pdemonaco\/factorio-mod-updater\/archive\/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}\r\n\r\ntar -xf factorio-MU-${latest_ModUpdate} -C \/mnt\/server\r\n\r\nrm factorio-MU-${latest_ModUpdate}\r\n\r\n# Run Mod Updater\r\n.\/factorio-mod-updater-${latest_ModUpdate}\/mod_updater.py -s \/mnt\/server\/data\/server-settings.json -m \/mnt\/server\/mods --fact-path \/mnt\/server\/bin\/x64\/factorio --update",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Factorio Version",
"description": "Which version of Factorio to install and use.",
"env_variable": "FACTORIO_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|between:3,12"
},
{
"name": "Maximum Slots",
"description": "Total number of slots to allow on the server.",
"env_variable": "MAX_SLOTS",
"default_value": "20",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "Save Name",
"description": "The save name for the server.",
"env_variable": "SAVE_NAME",
"default_value": "gamesave",
"user_viewable": true,
"user_editable": true,
"rules": "alpha_dash|between:1,100"
},
{
"name": "Server Token",
"description": "Your factorio.com token, it is required for your server to be visible in the public server list.",
"env_variable": "SERVER_TOKEN",
"default_value": "undefined",
"user_viewable": true,
"user_editable": true,
"rules": "alpha_num|max:100"
},
{
"name": "Server Name",
"description": "Name of the game as it will appear in the game listing",
"env_variable": "SERVER_NAME",
"default_value": "Factorio Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:100"
},
{
"name": "Server Description",
"description": "Description of the game that will appear in the listing.",
"env_variable": "SERVER_DESC",
"default_value": "Description",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:200"
},
{
"name": "Server Username",
"description": "Username used for the server",
"env_variable": "SERVER_USERNAME",
"default_value": "unnamed",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:40"
},
{
"name": "Auto Save Interval",
"description": "Time between auto saves specified in minutes",
"env_variable": "SAVE_INTERVAL",
"default_value": "10",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "Auto Save Slots",
"description": "The number of auto saves to keep.",
"env_variable": "SAVE_SLOTS",
"default_value": "5",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "AFK Kick",
"description": "Time specified in minutes to kick AFK players.\r\n0 is off",
"env_variable": "AFK_KICK",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,3"
}
]
}

View File

@ -1,17 +1,19 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2020-03-28T14:53:55-04:00",
"exported_at": "2021-01-25T03:08:06-08:00",
"name": "Magma",
"author": "support@pterodactyl.io",
"description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.",
"image": "quay.io\/pterodactyl\/core:java",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:java",
"quay.io\/pterodactyl\/core:java-11"
],
"file_denylist": "",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@ -21,9 +23,9 @@
},
"scripts": {
"installation": {
"script": "## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napk add --no-cache curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get latest download link\r\necho -e \"Set to download the ${BUILD} build\"\r\nif [ \"${BUILD}\" == \"dev\" ]; then\r\n echo -e \"dev tag is ${tag}\"\r\nfi\r\n\r\ncase ${BUILD} in\r\n\r\n \"recommended\" | \"stable\" | \"latest\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\n\r\n \"dev\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/dev\/${TAG}\/download\"\r\n ;;\r\n\r\n *)\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\nesac\r\n\r\necho -e \"Download URL is ${DOWNLOAD_URL}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ ${SERVER_JARFILE} == *\\.jar ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\r\n\r\necho -e \"Install Complete\"",
"container": "alpine:3.10",
"entrypoint": "ash"
"script": "apt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ ! -z ${MC_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${MC_VERSION}\/dev\/latest\/download\r\nelse\r\n DOWNLOAD_LINK=https:\/\/api.magmafoundation.org\/api\/resources\/magma\/1.12.2\/dev\/latest\/download\r\nfi\r\n\r\necho -e \"Download URL is ${DOWNLOAD_LINK}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -s -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\n\r\necho -e \"Install Complete\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
@ -32,36 +34,18 @@
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": false,
"user_editable": false,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Server Version",
"description": "The version of Minecraft Vanilla to install.\r\n\r\nOnly version currently supported is 1.12.2 as that is all there are builds for.",
"env_variable": "VANILLA_VERSION",
"default_value": "1.12.2",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|between:3,15"
},
{
"name": "Magma Build",
"description": "What version of magma to download.\r\n\r\nrecommended, stable, latest = current stable\r\ndev = latest dev build",
"env_variable": "BUILD",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Magma Dev Tag",
"description": "The dev tagged version to download. default is latest.",
"env_variable": "TAG",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
"name": "Minecraft Version",
"description": "Optional.\r\n\r\nSpecify vanilla version other than default 1.12.2.",
"env_variable": "MC_VERSION",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20"
}
]
}

View File

@ -4,5 +4,4 @@ ARMA is a series of first-person tactical military shooters, originally released
## Arma 3
* [Arma 3](arma3)
* [Arma 3 64 Bit](arma3_x64)
* [Arma 3 Headless Client](arma3_headless_client)
* [Arma 3 Headless Client](arma3_headless_client)

View File

@ -1,20 +1,31 @@
# Arma 3
# Arma 3 (32 or 64-bit)
### From their [Site](https://arma3.com/)
Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PCs premier military game. Authentic, diverse, open - Arma 3 sends you to war.
Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PCs premier military game. Authentic, diverse, open - Arma 3 sends you to war.
### Minimum RAM warning
This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though.
### Installation Requirements
- A valid, real Steam account, with Steam Guard turned off, is required to install the server (default "anonymous" login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3.
- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. This is, of course, optional functionality, and mods can be manually uploaded to the server if desired.
### Additional settings
### Minimum RAM Warning
This server requires about 2048 MB to run properly.
### CPU Usage Information
ARMA 3 is mainly CPU intensive. Contrary to popular belief, the server binary *can* run on multiple cores/threads. However, it's ability to manage asynchronous tasks and hyperthread is *very* limited, meaning additional cores/threads reach diminishing returns very quickly. In addition, it's ability to utilize all of the CPU alloted to it for AI processing seems to be limited as well. Therefore, a [headless client](https://community.bistudio.com/wiki/Arma_3_Headless_Client) ***and*** a properly written mission file are highly recommended if large amounts of AI units will be used. An Arma 3 Headless Client Egg can be found [here](arma3_headless_client).
### Additional Settings
Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters).
This can help is you see the server using to many cores/threads on the server.
These can help you fine tune how the server will behave during runtime.
*Note: The `-maxMem=` flag is currently known to cause an unknown segmentaion fault crash on startup. Other hardware related flags may cause similar behavior.*
### Server Ports
Ports required to run the server in a table format.
Default server ports. It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports seperate from each other.
| Port | default |
| Port | Default |
|---------|---------|
| Game | 2302-2306 |
| BattleEye | 2344-2345 |
| Arma 3 Game & VON | 2302 |
| Steam Query (+1) | 2303 |
| Steam Port (+2) | 2304 |
| BattleEye (+4) | 2306 |
#### Mods/Plugins may require ports to be added to the server.

View File

@ -1,32 +1,34 @@
// ****************************************************************************
// *
// Arma 3 - basic.cfg *
// Version 060116 *
// ArmA 3 Basic Network Config File - basic.cfg *
// *
// More info about parameters: *
// https://community.bistudio.com/wiki/basic.cfg *
// *
// ****************************************************************************
// Defines network tuning parameters
// Defines network tuning parameters.
//
// This file is to be passed to the -cfg parameter on the command line for the server
// See http://community.bistudio.com/wiki/basic.cfg
// The following settings are the suggested settings
// This file is to be passed to the -cfg parameter on the command line for the server.
// The following settings are the suggested settings.
// Some settings are disabled (commented out) by default. Remove the // behind a setting to activate it.
// BANDWIDTH SETTINGS
// Bandwidth the server is guaranteed to have (in bps)
// General guideline is NumberOfPlayers * 256kb
// Default: 131072
MinBandwidth=5120000;
//MinBandwidth=5120000;
// Bandwidth the server can never go above (in bps)
// For a single server, use full network speed; decrease when running multiple servers
MaxBandwidth=10240000;
//MaxBandwidth=10240000;
// PACKET SETTINGS
// Maximum number of packets per frame.
// Increasing the value potentially decreases lag, but increases desync
// Default: 128
MaxMsgSend=2048;
//MaxMsgSend=2048;
// Maximum payload of guaranteed packet (in b)
// Small messages are packed to larger packets
// Guaranteed packets are used for non-repetitive events, like shooting
@ -42,42 +44,16 @@ MaxSizeNonguaranteed=256;
// Maximal size of a packet sent over the network
// Only necessary if ISP forces lower packet size and there are connectivity issues
// Default: 1400
// class sockets{maxPacketSize=1400};
//class sockets{maxPacketSize=1400};
// SMOOTHNESS SETTINGS
// Minimal error required to send network updates for far units
// Smaller values will make for smoother movement at long ranges, but will increase network traffic
// Default: 0.003
MinErrorToSend=0.01;
//MinErrorToSend=0.01;
// Minimal error required to send network updates for near units
// Using larger value can reduce traffic sent for near units
// Also controls client to server traffic
// Default: 0.01
MinErrorToSendNear=0.02;
// GEOLOCATION SETTINGS
// Server latitude
serverLatitude=52;
serverLatitudeAuto=52;
// Server Longitude
serverLongitude=0;
serverLongitudeAuto=0;
// MISC
// View Distance (not sure if this actually works)
viewDistance=10000;
// Maximum size (in b) for custom face or sound files
// Default: 0
MaxCustomFileSize=65536;
// Server language
language="English";
steamLanguage="English";
// Adapter
adapter=-1;
// Windowed mode
Windowed=0;
3D_Performance=1.000000;
//MinErrorToSendNear=0.02;

View File

@ -1,17 +1,16 @@
// ****************************************************************************
// *
// Arma 3 - server.cfg *
// Version 060117 *
// ArmA 3 Server Config File - server.cfg *
// *
// More info about parameters: *
// https://community.bistudio.com/wiki/server.cfg *
// *
// ****************************************************************************
// ArmA 3 Server Config File
//
// More info about parameters:
// https://community.bistudio.com/wiki/server.cfg
// Some settings are not listed here; see link above for extensive list.
// Some settings are disabled (commented out). Remove the // to enable them.
// GENERAL SETTINGS
// === GLOBAL SETTINGS ===
// Hostname for server.
hostname = "Arma 3 Server";
@ -22,45 +21,16 @@ hostname = "Arma 3 Server";
// Admin Password
//passwordAdmin = "ADMINPASSWORD";
// Auto-admin
admins[] = {"<UID>"};
// Whitelisted Admins - Clients that do not need a password to login.
//admins[] = { "UID OR steamID64", "0123456789", "9876543210" };
// Server Slots
maxPlayers = 32;
// Server Command Password - for scripting and certain mods.
//serverCommandPassword = "COMMANDPASSWORD";
// Logfile
logFile = "arma3server.log";
// Minimum Required Client Build
//requiredBuild = 95691
class Missions
{
class Mission1
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission2
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission3
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission4
{
template = ;
difficulty = "Regular";
class Params {};
};
};
// Log File
logFile = "server_console.log";
// RPT File Timestamp Format - none | short | full
timeStampFormat = "short";
// Message of the Day (MOTD)
motd[] = {
@ -68,91 +38,129 @@ motd[] = {
"TS3 Server: teamspeak.somewhere.com",
"Web: www.example.com"
};
// MOTD Interval - Seconds between each message.
motdInterval = 5;
// MOTD Interval (Seconds)
motdInterval = 30;
// Missions Cycle
class Missions
{
class Mission1
{
template = MP_ZGM_m11.Altis;
difficulty = "Regular";
class Params {};
};
class Mission2
{
template = MP_ZGM_m12.Stratis;
difficulty = "Recruit";
class Params {};
};
};
// Whitelisted Missions - Only these missions can be selected on the mission select screen.
//missionWhitelist[] = { "MP_ZGM_m11.Altis", "MP_ZGM_m12.Stratis" };
// VOTING
// === JOINING RULES ===
// Server Mission Start
// minimum number of clients before server starts mission
voteMissionPlayers = 1;
// Server Slots
maxPlayers = 32;
// Accepted Vote Threshold
// 0.33 = 33% clients.
voteThreshold = 0.33;
// Enable BattlEye
BattlEye = 1;
// INGAME SETTINGS
// Addon Signature Verification - Verifies .pbos against .bisign files - 0 = Disabled | 2 = Enabled (v2)
verifySignatures = 2;
// Disable Voice over Net (VoN)
// 0 = voice enabled.
// 1 = voice disabled.
// Kick Duplicate Player IDs - 0 = No | 1 = Yes
kickDuplicate = 1;
// Allow File Patching - 0 = No Clients | 1 = Headless Clients only | 2 = All Clients
allowedFilePatching = 0;
// Minimum Required Client Version
//requiredBuild = 999999999;
// LAN Mode
loopback = 0;
// UPNP Router Mode
upnp = 0;
// Headless Client IP Whitelists
headlessClients[] = { "127.0.0.1" };
localClient[] = { "127.0.0.1" };
// === INGAME SETTINGS ===
// Advanced Flight Model Enforcement - 0 = Up to player | 1 = Advanced model enforced | 2 = Simple model enforced
forceRotorLibSimulation = 0;
// Disable In-Game Voice Chat (Voice over Network)
disableVoN = 0;
// VoN Codec - 0 = older SPEEX codec | 1 = newer IETF standard OPUS codec
vonCodec = 1;
// VoN Codec Quality
// 0-10 = 8kHz (narrowband).
// 11-20 = 16kHz (wideband).
// 21-30 = 32kHz (ultrawideband).
vonCodecQuality = 3;
vonCodecQuality = 10;
// Persistent Battlefield
// 0 = disable.
// 1 = enable.
persistent = 1;
// Persistent Mission - Keeps mission running when all players disconnect.
persistent = 0;
// Time Stamp Format
// none, short, full
timeStampFormat = "short";
// Allow Drawing in Map
drawingInMap = 1;
// Server Statistics
// Set this to 0 to opt-out! More info: https://community.bistudio.com/wiki/Arma_3_Analytics
statisticsEnabled = 1;
// Enforce Difficulty - Use "Custom" for ServerProfile-defined custom difficulty
forcedDifficulty = "regular";
// SERVER SECURITY/ANTI HACK
// Verify Signitures for Client Addons
// 0 = off.
// 1 = weak protection (depricated).
// 2 = full protection.
verifySignatures = 2;
// === VOTING ===
// Secure Player ID
// 1 = Server warning message.
// 2 = Kick client.
requiredSecureId = 2;
// Allowed Vote Commands - Un-comment this to prevent voted commands (like vote-kick)
//allowedVoteCmds[] = {};
// Kick Duplicate Player IDs
kickDuplicate = 1;
// Start mission-voting when X number of players connect.
voteMissionPlayers = 1;
// BattlEye Anti-Cheat
// 0 = disable
// 1 = enable
BattlEye = 1;
// Vote Threshold - Percentage of votes needed to confirm a vote.
voteThreshold = 0.33;
// Allowed File Extentions
allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"};
// SCRIPTING ISSUES
// === CLIENT NETWORK HEALTH ===
// Seconds to wait before disconnecting a user which temporarily lost connection.
disconnectTimeout = 90;
// Max Desync Value
maxdesync = 150;
// Max Ping (ms)
maxping = 200;
// Max Packet Loss
maxpacketloss = 50;
// Action to Take on Slow Network (defined above)
// Defines if {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} will be logged (0) or kicked (1)
kickClientsOnSlowNetwork[] = { 1, 1, 0, 1 };
// Kick Duration (temp-ban) on Network Kick
// Options {<manual kick>, <connectivity kick>, <BattlEye kick>, <harmless kick>} -- Timeout {>0 seconds; -1 until missionEnd; -2 until serverRestart}
kickTimeout[] = { {0, -1},{1, 1},{2, 5},{3, 1} };
// === SERVER SIDE SCRIPTING ===
// See https://community.bistudio.com/wiki/ArmA:_Server_Side_Scripting
onUserConnected = "";
onUserDisconnected = "";
doubleIdDetected = "";
// SIGNATURE VERIFICATION
// kick = kick (_this select 0)
// ban = ban (_this select 0)
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
// HEADLESS CLIENT SUPPORT
// specify ip-adresses of allowed headless clients
headlessClients[] = {"127.0.0.1", "172.18.0.1"};
localClient[] = {"127.0.0.1", "172.18.0.1"};
// BattlEye Anti-Cheat License
// 0 = decline
// 1 = accept
battleyeLicense = 1;
// Only allow files with these extensions to be loaded via loadFile command
allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
// Only allow files with these extensions to be loaded via preprocessFile/preprocessFileLineNumber commands
allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
// Only allow files with these extensions to be loaded via HTMLLoad command
allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"};
// Leave commented to let missions/campaigns/addons decide what URIs are supported. Un-comment to define server-level restrictions for URIs
//allowedHTMLLoadURIs = {};

View File

@ -1,108 +1,148 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2019-12-26T15:50:38-05:00",
"exported_at": "2021-01-26T21:50:23+00:00",
"name": "Arma 3",
"author": "daave@aaathats3as.com",
"author": "rehlmgaming@gmail.com",
"description": "Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC's premier military game. Authentic, diverse, open - Arma 3 sends you to war.",
"image": "quay.io\/parkervcp\/pterodactyl-images:game_arma3",
"startup": ".\/arma3server -ip=0.0.0.0 -port={{SERVER_PORT}} -cfg={{BASIC}} -config={{CONFIG}} {{CUSTOM}} -mod=\"{{MODS}}\" -serverMod=\"{{SERVERMODS}}\"",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:game_arma3"
],
"startup": ".\/{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/serverprofile -bepath=.\/battleye -cfg=\"{{BASIC}}\" -config=\"{{CONFIG}}\" {{STARTUP_PARAMS}} -mod=\"{{MODS}}\" -serverMod=\"{{SERVERMODS}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Connected to Steam servers\",\r\n \"userInteraction\": []\r\n}",
"startup": "{\r\n \"done\": \"Host identity created.\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; 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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg",
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg\r\nchmod 755 basic.cfg server.cfg",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Game App ID",
"description": "Steam CMD App ID.",
"env_variable": "SRCDS_APPID",
"name": "Arma 3 Dedicated Server App ID",
"description": "Used for installation and updates.",
"env_variable": "STEAMCMD_APPID",
"default_value": "233780",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|alpha_dash|between:1,100"
"user_viewable": false,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "Config",
"description": "Server config",
"env_variable": "CONFIG",
"default_value": "server.cfg",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "Custom Command Line Option.",
"description": "Put -autoinit or related things in here :)",
"env_variable": "CUSTOM",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "SERVERMODS",
"description": "This is where you put the files that go along with the -serverMods startup option.",
"env_variable": "SERVERMODS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "Mods",
"description": "This is where you put mods that go along with the -mods startup option",
"env_variable": "MODS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "Steam User",
"description": "A Steam username with Arma3 on the account.",
"name": "Steam Username",
"description": "Used for installation and updates. Account does not need to own Arma 3, but must be a valid Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*",
"env_variable": "STEAM_USER",
"default_value": "anonymous",
"user_viewable": 0,
"user_editable": 0,
"default_value": "your_steam_username",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Steam Password",
"description": "Steam User Password",
"description": "Used for installation and updates. Steam Guard must be TURNED OFF for install to complete successfully. *This info is not visible to the server owner.*",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
"default_value": "your_steam_password",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Basic",
"description": "Basic network config",
"env_variable": "BASIC",
"default_value": "basic.cfg",
"user_viewable": 1,
"user_editable": 1,
"name": "Server Binary",
"description": "Server binary to call on server start. (32-bit: arma3server | 64-bit: arma3server_x64)",
"env_variable": "SERVER_BINARY",
"default_value": "arma3server_x64",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "Extra Startup Parameters",
"description": "See https:\/\/community.bistudio.com\/wiki\/Arma_3_Startup_Parameters for more info.",
"env_variable": "STARTUP_PARAMS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "Steam Auth Code",
"description": "Steam Auth Code only when you're using Steam Auth",
"env_variable": "STEAM_AUTH",
"name": "Server Configuration File",
"description": "See https:\/\/community.bistudio.com\/wiki\/server.cfg for more info.",
"env_variable": "CONFIG",
"default_value": "server.cfg",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "Basic Network Configuration",
"description": "See https:\/\/community.bistudio.com\/wiki\/basic.cfg for more info.",
"env_variable": "BASIC",
"default_value": "basic.cfg",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "Mods",
"description": "Mod folders to be used with the -mods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)",
"env_variable": "MODS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Server Mods",
"description": "Server-side only mod folders to be used with the -serverMods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)",
"env_variable": "SERVERMODS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Extra Flags for SteamCMD",
"description": "Only used when checking for server updates, and typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3",
"env_variable": "STEAMCMD_EXTRA_FLAGS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Check for Server Updates",
"description": "Check for server updates on server start.\r\n1 True | 0 False",
"env_variable": "UPDATE_SERVER",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean"
},
{
"name": "Steam Workshop Mods to Download\/Update",
"description": "[*Only works if the host owns Arma 3] Comma separated list of Steam Workshop mod IDs to download\/update on server start. (ex. 450814997,463939057) Each mod will be downloaded to the root directory with the folder format: @ModIdNumber",
"env_variable": "UPDATE_WORKSHOP",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "Set Mods to Lowercase",
"description": "On server start, goes through all the mod folders listed in \"Mods\" & \"Server Mods\", and makes sure every folder and file is lowercase (to prevent errors). This is particularly useful to run ONCE after copying a mod from a Windows machine to the server, or if mods seem to not be loading.",
"env_variable": "MODS_LOWERCASE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean"
}
]
}
}

View File

@ -1,21 +1,27 @@
# Arma 3 Headless Client
### From their [Site](https://community.bistudio.com/wiki/Arma_3_Headless_Client)
What is a Headless Client (HC) used for?
* Headless Client is used to offload AI calculations from the server
* Headless Client is integrated into game client and dedicated server executable (WIndows and Linux, use -client parameter)
* The server doesn't allow arbitrary connections from headless clients if you do not define the headless clients IPs in the server.cfg,
* Headless Client is used to offload AI calculations from the server [to improve the main server's performance].
* Headless Client is integrated into dedicated server executable, and uses the `-client` parameter to activate.
* The server doesn't allow arbitrary connections from headless clients if you do not define the headless clients' IPs in the `server.cfg`.
### But why?
If you host an Arma 3 Server with lots of AI in it, the Server FPS will drop fast.
Since the server files are only 32 Bit you will need some kind of magical assistant to prevent slow AI.
If you host an Arma 3 Server with lots of AI in it, the Server FPS will drop fast. The headless client helps alleviate the AI's stress on the server.
### Minimum RAM warning
This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though.
### Installation Requirements
- A valid, real Steam account, with Steam Guard turned off, is required to install the client (default "anonymous" login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3.
- The Arma 3 server this client is connecting to **must** be running a properly written mission file that accepts and utilizes headless clients. If you want to know how to implement, take a look at the Wiki [here](https://community.bistudio.com/wiki/Arma_3_Headless_Client#Spawning_the_AI) or at a guide in the A3 Forums [here](https://forums.bohemia.net/forums/topic/178434-arma3-headless-client-guide/).
- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. This is, of course, optional functionality, and mods can be manually uploaded to the client if desired.
### Additional settings
Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters).
This can help is you see the server using to many cores/threads on the server.
If you want to know how to implement, take a look at the Wiki [here](https://community.bistudio.com/wiki/Arma_3_Headless_Client#Spawning_the_AI) or at a guide in the A3 Forums [here](https://forums.bohemia.net/forums/topic/178434-arma3-headless-client-guide/).
### Minimum RAM Warning
This client requires about 2048 MB to run properly.
### Additional Settings
Additional client flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters).
These can help you fine tune how the client will behave during runtime.
*Note: The `-maxMem=` flag is currently known to cause an unknown segmentaion fault crash on startup. Other hardware related flags may cause similar behavior.*
### Server Ports
Since this is basically a client, this Egg does not need a port.
Since this is basically a client, this Egg does not need a port.
Therefore, the port assigned to this Egg goes unused.

View File

@ -1,14 +1,18 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2019-12-26T15:50:34-05:00",
"exported_at": "2021-01-26T21:54:10+00:00",
"name": "Arma 3 Headless Client",
"author": "brainp4in@blueberry-hood-clan.de",
"author": "rehlmgaming@gmail.com",
"description": "Headless Clients are used to offload AI calculations from the Arma 3 Server.",
"image": "quay.io\/parkervcp\/pterodactyl-images:game_arma3",
"startup": ".\/arma3server -client -connect={{SERVERIP}} -port={{SERVERPORT}} {{CUSTOM}} -mod=\"{{MODS}}\"",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:game_arma3"
],
"startup": ".\/{{SERVER_BINARY}} -client -connect={{CONNECT_IP}} -port={{CONNECT_PORT}} -password=\"{{CONNECT_PASSWORD}}\" -profiles=.\/serverprofile -bepath=.\/battleye {{STARTUP_PARAMS}} -mod=\"{{MODS}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Client connected\",\r\n \"userInteraction\": []\r\n}",
@ -17,83 +21,128 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; 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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg",
"container": "ubuntu:18.04",
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Game App ID",
"description": "Steam CMD App ID.",
"env_variable": "SRCDS_APPID",
"name": "Arma 3 Dedicated Server App ID",
"description": "Used for installation and updates.",
"env_variable": "STEAMCMD_APPID",
"default_value": "233780",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|alpha_dash|between:1,100"
"user_viewable": false,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "Server IP",
"description": "IP address of the Arma 3 server that should be supported by the Headless Client.",
"env_variable": "SERVERIP",
"default_value": "127.0.0.1",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:30"
},
{
"name": "Server Port",
"description": "Port of the Arma 3 server that should be supported by the Headless Client.",
"env_variable": "SERVERPORT",
"default_value": "2302",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:5"
},
{
"name": "Custom Command Line Option.",
"description": "Put -autoinit or related things in here :)",
"env_variable": "CUSTOM",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "Mods",
"description": "This is where you put mods that go along with the -mods startup option",
"env_variable": "MODS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "string|nullable"
},
{
"name": "Steam User",
"description": "A Steam username with Arma3 on the account.",
"name": "Steam Username",
"description": "Used for installation and updates. Account does not need to own Arma 3, but must be a valid Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*",
"env_variable": "STEAM_USER",
"default_value": "anonymous",
"user_viewable": 0,
"user_editable": 0,
"default_value": "your_steam_username",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Steam Password",
"description": "Steam User Password",
"description": "Used for installation and updates. Steam Guard must be TURNED OFF for install to complete successfully. *This info is not visible to the server owner.*",
"env_variable": "STEAM_PASS",
"default_value": "your_steam_password",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Server Binary",
"description": "Server binary to call on server start. (32-bit: arma3server | 64-bit: arma3server_x64)",
"env_variable": "SERVER_BINARY",
"default_value": "arma3server_x64",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "Connect IP",
"description": "IP address of the server to connect to.",
"env_variable": "CONNECT_IP",
"default_value": "127.0.0.1",
"user_viewable": true,
"user_editable": true,
"rules": "required|ip"
},
{
"name": "Connect Port",
"description": "Open port of the server to connect to.",
"env_variable": "CONNECT_PORT",
"default_value": "2302",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric"
},
{
"name": "Connect Password",
"description": "If the server you are connecting to has a password, enter it here.",
"env_variable": "CONNECT_PASSWORD",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Steam Auth Code",
"description": "Steam Auth Code only when you're using Steam Auth",
"env_variable": "STEAM_AUTH",
"name": "Mods",
"description": "Mod folders to be used with the -mods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)",
"env_variable": "MODS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Extra Startup Parameters",
"description": "See https:\/\/community.bistudio.com\/wiki\/Arma_3_Startup_Parameters for more info.",
"env_variable": "STARTUP_PARAMS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Extra Flags for SteamCMD",
"description": "Only used when checking for server updates, and typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3",
"env_variable": "STEAMCMD_EXTRA_FLAGS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Check for Server Updates",
"description": "Check for server updates on server start.\r\n1 True | 0 False",
"env_variable": "UPDATE_SERVER",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean"
},
{
"name": "Steam Workshop Mods to Download\/Update",
"description": "[*Only works if the host owns Arma 3] Comma separated list of Steam Workshop mod IDs to download\\\/update on server start. (ex. 450814997,463939057) Each mod will be downloaded to the root directory with the folder format: @ModIdNumber",
"env_variable": "UPDATE_WORKSHOP",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Set Mods to Lowercase",
"description": "On server start, goes through all the mod folders listed in \"Mods\" & \"Server Mods\", and makes sure every folder and file is lowercase (to prevent errors). This is particularly useful to run ONCE after copying a mod from a Windows machine to the server, or if mods seem to not be loading.",
"env_variable": "MODS_LOWERCASE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean"
}
]
}
}

View File

@ -1,20 +0,0 @@
# Arma 3
### From their [Site](https://arma3.com/)
Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PCs premier military game. Authentic, diverse, open - Arma 3 sends you to war.
### Minimum RAM warning
This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though.
### Additional settings
Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters).
This can help is you see the server using to many cores/threads on the server.
### Server Ports
Ports required to run the server in a table format.
| Port | default |
|---------|---------|
| Game | 2302-2306 |
| BattleEye | 2344-2345 |
#### Mods/Plugins may require ports to be added to the server.

View File

@ -1,109 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-11-18T10:58:51-05:00",
"name": "Arma 3 (64-bit)",
"author": "brycea@terrahost.cloud",
"description": "Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC's premier military game. Authentic, diverse, open - Arma 3 sends you to war.",
"features": null,
"image": "quay.io\/terrahost\/pterodactyl-images:game_arma3_x64",
"startup": ".\/arma3server_x64 -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/profiles -bepath=.\/battleye -cfg={{BASIC}} -config={{CONFIG}} {{CUSTOM}} -mod={{MODS}} -serverMod={{SERVERMODS}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Connected to Steam servers\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n## install required packages to install arma\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install arma\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n# 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\nchmod +x \/mnt\/server\/arma3server_x64\r\n# doesn't actually work with current 64 bit wrapper\r\nchmod +x \/mnt\/server\/arma3server",
"container": "ubuntu:20.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Game AppID",
"description": "",
"env_variable": "SRCDS_APPID",
"default_value": "233780",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "Steam Username",
"description": "Used for installation",
"env_variable": "STEAM_USER",
"default_value": "anonymous",
"user_viewable": true,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Steam Password",
"description": "",
"env_variable": "STEAM_PASS",
"default_value": "!xNfMpAN*Lr3iMsJ",
"user_viewable": true,
"user_editable": false,
"rules": "nullable|string"
},
{
"name": "Server Configuration File",
"description": "https:\/\/community.bistudio.com\/wiki\/server.cfg",
"env_variable": "CONFIG",
"default_value": "server.cfg",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "Basic Network Config",
"description": "Network Configuration",
"env_variable": "BASIC",
"default_value": "basic.cfg",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "Check for Updates",
"description": "Check for updates on server start.\r\n1 True | 0 False",
"env_variable": "UPDATE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|numeric"
},
{
"name": "Mods",
"description": "Client mods with the -mods startup option",
"env_variable": "MODS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Server Mods",
"description": "Server-sided mods with the -serverMods startup option.",
"env_variable": "SERVERMODS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Extra Flags for SteamCMD",
"description": "Typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3",
"env_variable": "EXTRA_FLAGS",
"default_value": "",
"user_viewable": true,
"user_editable": false,
"rules": "nullable|string"
}
]
}

View File

@ -1,83 +0,0 @@
// ****************************************************************************
// *
// Arma 3 - basic.cfg *
// Version 060116 *
// *
// ****************************************************************************
// Defines network tuning parameters
//
// This file is to be passed to the -cfg parameter on the command line for the server
// See http://community.bistudio.com/wiki/basic.cfg
// The following settings are the suggested settings
// BANDWIDTH SETTINGS
// Bandwidth the server is guaranteed to have (in bps)
// General guideline is NumberOfPlayers * 256kb
// Default: 131072
MinBandwidth=5120000;
// Bandwidth the server can never go above (in bps)
// For a single server, use full network speed; decrease when running multiple servers
MaxBandwidth=10240000;
// PACKET SETTINGS
// Maximum number of packets per frame.
// Increasing the value potentially decreases lag, but increases desync
// Default: 128
MaxMsgSend=2048;
// Maximum payload of guaranteed packet (in b)
// Small messages are packed to larger packets
// Guaranteed packets are used for non-repetitive events, like shooting
// Lower value means more packets are sent, so less events will get combined
// Default: 512
MaxSizeGuaranteed=512;
// Maximum payload of non-guaranteed packet (in b)
// Increasing this value may improve bandwidth requirement, but may also increase lag
// Largest factor in desync
// Guidance is half of MaxSizeGuaranteed
// Default: 256
MaxSizeNonguaranteed=256;
// Maximal size of a packet sent over the network
// Only necessary if ISP forces lower packet size and there are connectivity issues
// Default: 1400
// class sockets{maxPacketSize=1400};
// SMOOTHNESS SETTINGS
// Minimal error required to send network updates for far units
// Smaller values will make for smoother movement at long ranges, but will increase network traffic
// Default: 0.003
MinErrorToSend=0.01;
// Minimal error required to send network updates for near units
// Using larger value can reduce traffic sent for near units
// Also controls client to server traffic
// Default: 0.01
MinErrorToSendNear=0.02;
// GEOLOCATION SETTINGS
// Server latitude
serverLatitude=52;
serverLatitudeAuto=52;
// Server Longitude
serverLongitude=0;
serverLongitudeAuto=0;
// MISC
// View Distance (not sure if this actually works)
viewDistance=10000;
// Maximum size (in b) for custom face or sound files
// Default: 0
MaxCustomFileSize=65536;
// Server language
language="English";
steamLanguage="English";
// Adapter
adapter=-1;
// Windowed mode
Windowed=0;
3D_Performance=1.000000;

View File

@ -1,158 +0,0 @@
// ****************************************************************************
// *
// Arma 3 - server.cfg *
// Version 060117 *
// *
// ****************************************************************************
// ArmA 3 Server Config File
//
// More info about parameters:
// https://community.bistudio.com/wiki/server.cfg
// GENERAL SETTINGS
// Hostname for server.
hostname = "Arma 3 Server";
// Server password - for private servers.
//password = "arma3pass";
// Admin Password
//passwordAdmin = "ADMINPASSWORD";
// Auto-admin
admins[] = {"<UID>"};
// Server Slots
maxPlayers = 32;
// Logfile
logFile = "arma3server.log";
// Minimum Required Client Build
//requiredBuild = 95691
class Missions
{
class Mission1
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission2
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission3
{
template = ;
difficulty = "Regular";
class Params {};
};
class Mission4
{
template = ;
difficulty = "Regular";
class Params {};
};
};
// Message of the Day (MOTD)
motd[] = {
"Welcome to My Arma 3 Server",
"TS3 Server: teamspeak.somewhere.com",
"Web: www.example.com"
};
// MOTD Interval (Seconds)
motdInterval = 30;
// VOTING
// Server Mission Start
// minimum number of clients before server starts mission
voteMissionPlayers = 1;
// Accepted Vote Threshold
// 0.33 = 33% clients.
voteThreshold = 0.33;
// INGAME SETTINGS
// Disable Voice over Net (VoN)
// 0 = voice enabled.
// 1 = voice disabled.
disableVoN = 0;
// VoN Codec Quality
// 0-10 = 8kHz (narrowband).
// 11-20 = 16kHz (wideband).
// 21-30 = 32kHz (ultrawideband).
vonCodecQuality = 3;
// Persistent Battlefield
// 0 = disable.
// 1 = enable.
persistent = 1;
// Time Stamp Format
// none, short, full
timeStampFormat = "short";
// Server Statistics
// Set this to 0 to opt-out! More info: https://community.bistudio.com/wiki/Arma_3_Analytics
statisticsEnabled = 1;
// SERVER SECURITY/ANTI HACK
// Verify Signitures for Client Addons
// 0 = off.
// 1 = weak protection (depricated).
// 2 = full protection.
verifySignatures = 2;
// Secure Player ID
// 1 = Server warning message.
// 2 = Kick client.
requiredSecureId = 2;
// Kick Duplicate Player IDs
kickDuplicate = 1;
// BattlEye Anti-Cheat
// 0 = disable
// 1 = enable
BattlEye = 1;
// Allowed File Extentions
allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"};
// SCRIPTING ISSUES
onUserConnected = "";
onUserDisconnected = "";
doubleIdDetected = "";
// SIGNATURE VERIFICATION
// kick = kick (_this select 0)
// ban = ban (_this select 0)
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
// HEADLESS CLIENT SUPPORT
// specify ip-adresses of allowed headless clients
headlessClients[] = {"127.0.0.1", "172.18.0.1"};
localClient[] = {"127.0.0.1", "172.18.0.1"};
// BattlEye Anti-Cheat License
// 0 = decline
// 1 = accept
battleyeLicense = 1;

View File

@ -3,6 +3,8 @@
## Features
Auto generate keys on server creation bypassing default minio keys
## Update
Auto update minio to latest version using "update" startup feature
Automatic Key rotation using "rotate" startup feature

View File

@ -1,14 +1,17 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2020-12-14T05:29:26+02:00",
"exported_at": "2021-01-11T15:35:14-05:00",
"name": "Minio S3",
"author": "accounts@bofanodes.io",
"description": "MinIO is a cloud storage server compatible with Amazon S3, released under Apache License v2. As an object store, MinIO can store unstructured data such as photos, videos, log files, backups and container images. The maximum size of an object is 5TB.",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu",
"images": [
"quay.io\/parkervcp\/pterodactyl-images:ubuntu"
],
"startup": ".\/minio.sh",
"config": {
"files": "{}",
@ -26,12 +29,12 @@
"variables": [
{
"name": "Startup Type",
"description": "normal or rotate",
"description": "normal,rotate,update",
"env_variable": "STARTUP_TYPE",
"default_value": "normal",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:normal,rotate"
"rules": "required|string|in:normal,rotate,update"
}
]
}
}

View File

@ -1,39 +1,51 @@
#!/bin/bash
##################################
echo Starting up....
echo "Startup Type: $STARTUP_TYPE"
echo "$(tput setaf 2)Starting up...."
echo "Startup Type: $(tput setaf 2)$STARTUP_TYPE"
if [ -f "keys/key.txt" ]; then
echo "Key file detected..."
echo "$(tput setaf 2)Key file detected..."
export MINIO_ACCESS_KEY=`cat keys/key.txt`
else
echo minioadmin > keys/key.txt
echo "No key file detected...Preparing First Time Boot"
echo "$(tput setaf 3)No key file detected...Preparing First Time Boot"
fi
if [ -f "keys/secret.txt" ]; then
echo "Secret file detected..."
echo "$(tput setaf 2)Secret file detected..."
export MINIO_SECRET_KEY=`cat keys/secret.txt`
else
echo minioadmin > keys/secret.txt
echo "No secret file detected...Preparing First Time Boot"
fi
if [ -f "keys/oldsecret.txt" ]; then
echo "Old secret file detected..."
echo "$(tput setaf 1)Old secret file detected..."
export MINIO_SECRET_KEY_OLD=`cat keys/oldsecret.txt`
fi
if [ -f "keys/oldkey.txt" ]; then
echo "Old key file detected..."
echo "$(tput setaf 1)Old key file detected..."
export MINIO_ACCESS_KEY_OLD=`cat keys/oldkey.txt`
fi
if [ -f "keys/justrotated.txt" ]; then
echo "Previous key rotation detected...."
echo "Clearing the Lanes...."
echo "$(tput setaf 3)Previous key rotation detected...."
echo "$(tput setaf 3)Clearing the Lanes...."
unset MINIO_ACCESS_KEY_OLD
unset MINIO_SECRET_KEY_OLD
echo "$(tput setaf 2)Lanes Cleared!"
STARTUP_TYPE=normal
rm keys/justrotated.txt
rm keys/oldsecret.txt
rm keys/oldkey.txt
fi
##########################################
if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "update" ]; then
echo "$(tput setaf 3)Performing update...."
echo "$(tput setaf 1)Removing old minio version"
rm minio
echo "$(tput setaf 3)Downloading new minio version"
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
echo "$(tput setaf 2)Update Complete"
fi
##########################################
if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "rotate" ]; then
touch keys/justrotated.txt
@ -45,12 +57,13 @@ export MINIO_ACCESS_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | h
echo $MINIO_ACCESS_KEY > keys/key.txt
export MINIO_SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
echo $MINIO_SECRET_KEY > keys/secret.txt
echo Your New Access Key is: $MINIO_ACCESS_KEY
echo Your New Secret Key is: $MINIO_SECRET_KEY
echo Your Old Access Key is: $MINIO_ACCESS_KEY_OLD
echo Your Old Access Key is: $MINIO_SECRET_KEY_OLD
echo Booting...
echo "Your New Access Key is: $(tput setaf 2)$MINIO_ACCESS_KEY"
echo "Your New Secret Key is: $(tput setaf 2)$MINIO_SECRET_KEY"
echo "Your Old Access Key is: $(tput setaf 3)$MINIO_ACCESS_KEY_OLD"
echo "Your Old Access Key is: $(tput setaf 3)$MINIO_SECRET_KEY_OLD"
echo "$(tput setaf 2)Booting..."
./minio server data --address 0.0.0.0:$SERVER_PORT
else
echo "$(tput setaf 2)Booting..."
./minio server data --address 0.0.0.0:$SERVER_PORT
fi