Merge remote-tracking branch 'parkervcp/master'

This commit is contained in:
gOOvER 2021-04-07 17:22:49 +02:00
commit 57d3ab7b7c
29 changed files with 445 additions and 124 deletions

View File

@ -92,10 +92,13 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [SA-MP](/gta/samp) * [SA-MP](/gta/samp)
[Mindustry](/mindustry) [Mindustry](/mindustry)
* [Mindustry](/mindustry/mindustry)
[League Sandbox](/leaguesandbox) [League Sandbox](/leaguesandbox)
* [League Sandbox](/leaguesandbox/leaguesandbox)
[Minetest](/minetest) (including MTG) [Minetest](/minetest) (including MTG)
* [Minetest](/minetest/minetest)
[Minecraft](/minecraft) [Minecraft](/minecraft)
* [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) * [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
@ -130,7 +133,6 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Cross Platform](/minecraft/proxy/cross_platform) * [Cross Platform](/minecraft/proxy/cross_platform)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog) * [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.
[OpenRA](/openra) [OpenRA](/openra)
* [OpenRA Dune2000](/openra/openra_dune2000) * [OpenRA Dune2000](/openra/openra_dune2000)
@ -147,8 +149,8 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Arma 3](/steamcmd_servers/arma/arma3) * [Arma 3](/steamcmd_servers/arma/arma3)
* [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) * [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64)
* [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) * [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client)
* [Avorion](/steamcmd_servers/avorion)
* [Assetto Corsa](/steamcmd_servers/assetto_corsa) * [Assetto Corsa](/steamcmd_servers/assetto_corsa)
* [Avorion](/steamcmd_servers/avorion)
* [Barotrauma](/steamcmd_servers/barotrauma) * [Barotrauma](/steamcmd_servers/barotrauma)
* [Citadel: Forged with Fire](/steamcmd_servers/citadel) * [Citadel: Forged with Fire](/steamcmd_servers/citadel)
* [Conan Exiles](/steamcmd_servers/conan_exiles) * [Conan Exiles](/steamcmd_servers/conan_exiles)
@ -203,8 +205,6 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Tower Unite](/unreal_engine/tower_unite) * [Tower Unite](/unreal_engine/tower_unite)
* [Tower Unite](/steamcmd_servers/tower_unite) * [Tower Unite](/steamcmd_servers/tower_unite)
[Vintage Story](/vintage_story/vintage_story) [Vintage Story](/vintage_story/vintage_story)
[Xonotic](/xonotic/xonotic) [Xonotic](/xonotic/xonotic)

View File

@ -0,0 +1,9 @@
# Deno generic
### From their [site](https://deno.land/)
This egg was designed to allow a user to pull their own deno repo.
There is an option to allow a user to upload their own files to run a server.
The startup configs and commands may need changing to actually function properly.

View File

@ -0,0 +1,86 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-30T00:48:40+00:00",
"name": "Deno Generic",
"author": "parker@parkervcp.com",
"description": "A generic egg to run deno code.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/deno run {{JS_FILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Deno Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\n## get deno\r\nGITHUB_PACKAGE=denoland\/deno\r\nMATCH=linux\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\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\ncurl -sSL $DOWNLOAD_LINK -o ${DOWNLOAD_LINK##*\/}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## cleaning up downloaded file\r\nrm -f ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Repo Address",
"description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|bool"
},
{
"name": "Git Branch",
"description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Bot js file",
"description": "The JavaScript file to run",
"env_variable": "JS_FILE",
"default_value": "bot.js",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -0,0 +1,41 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-04T11:34:06+01:00",
"name": "Discord Java",
"author": "sneaky@sneakyhub.com",
"description": "Creates a container that runs java.",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:java-11"
],
"file_denylist": [],
"startup": "java -Dterminal.jline=false -Dterminal.ansi=true -jar {{JARFILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Java Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=java\r\n\r\napt update\r\napt install -y curl jq\r\n\r\ncd \/mnt\/server",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "JAR FILE",
"description": "",
"env_variable": "JARFILE",
"default_value": "sneakyhub.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -1,18 +1,20 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-08-13T22:04:35-04:00", "exported_at": "2021-03-30T01:47:36+00:00",
"name": "discord.js generic", "name": "discord.js generic",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "features": null,
"images": [ "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14", "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14",
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12",
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-10" "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-10"
], ],
"file_denylist": [],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}", "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
@ -22,55 +24,37 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [[ ! https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git | sed 's:\/*$::')\r\n INSTALL_REPO=\"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .\r\n \tfi\r\n fi \r\nelse\r\n if [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n \tfi\r\n fi \r\nfi\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "node:12-buster-slim", "container": "node:14-buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
{ {
"name": "Install Repo", "name": "Git Repo Address",
"description": "The GitHub repo to clone and install the discord js bot from.", "description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "INSTALL_REPO", "env_variable": "GIT_ADDRESS",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
},
{
"name": "Username",
"description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:128"
},
{
"name": "Password",
"description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.",
"env_variable": "PASSWORD",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:128"
}, },
{ {
"name": "Install Branch", "name": "Install Branch",
"description": "The branch of the bot to install.", "description": "The branch of the bot to install.",
"env_variable": "INSTALL_BRANCH", "env_variable": "BRANCH",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:32" "rules": "nullable|string"
}, },
{ {
"name": "User Uploaded Files", "name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true", "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD", "env_variable": "USER_UPLOAD",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|bool" "rules": "required|bool"
}, },
{ {
@ -78,8 +62,8 @@
"description": "Pull the latest files on startup when using a GitHub repo.", "description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE", "env_variable": "AUTO_UPDATE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -87,8 +71,8 @@
"description": "The file that starts the bot.", "description": "The file that starts the bot.",
"env_variable": "BOT_JS_FILE", "env_variable": "BOT_JS_FILE",
"default_value": "index.js", "default_value": "index.js",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -96,9 +80,27 @@
"description": "Install additional node packages.\r\n\r\nUse spaces to separate.", "description": "Install additional node packages.\r\n\r\nUse spaces to separate.",
"env_variable": "NODE_PACKAGES", "env_variable": "NODE_PACKAGES",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
} }
] ]
} }

View File

@ -1,18 +1,20 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-09-28T22:35:14-04:00", "exported_at": "2021-03-31T23:08:12+00:00",
"name": "discord.py generic", "name": "discord.py generic",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", "features": null,
"images": [ "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8",
"quay.io\/parkervcp\/pterodactyl-images:debian_python-2.7" "quay.io\/parkervcp\/pterodactyl-images:debian_python-2.7"
], ],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${PY_PACKAGES} ]]; then pip install -U --target \/home\/container\/ ${PY_PACKAGES}; fi; if [[ -f \/home\/container\/requirements.txt ]]; then pip install -U --target \/home\/container\/ -r requirements.txt; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}", "file_denylist": [],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z {{PY_PACKAGES}} ]]; then pip install -U --target .local\/lib\/python3.8\/site-packages {{PY_PACKAGES}}; fi; if [[ -f \/home\/container\/${REQUIREMENTS_FILE} ]]; then pip install -U --target .local\/lib\/python3.8\/site-packages -r ${REQUIREMENTS_FILE}; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}", "startup": "{\r\n \"done\": \"change this part\"\r\n}",
@ -21,37 +23,37 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Python Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [[ ! https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git | sed 's:\/*$::')\r\n INSTALL_REPO=\"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.py bot from https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .\r\n \tfi\r\n fi \r\nelse\r\n if [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.py bot from ${INSTALL_REPO}\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n \tfi\r\n fi \r\nfi\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "script": "#!\/bin\/bash\r\n# Python Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target .local\/lib\/python3.8\/site-packages ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target .local\/lib\/python3.8\/site-packages -r ${REQUIREMENTS_FILE}\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "python:3.8-slim", "container": "python:3.8-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
{ {
"name": "Install Repo", "name": "Git Repo Address",
"description": "The GitHub repo to clone and install the discord py bot from.", "description": "Git repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "INSTALL_REPO", "env_variable": "GIT_ADDRESS",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
}, },
{ {
"name": "Install Branch", "name": "Git Branch",
"description": "The branch of the bot to install", "description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "INSTALL_BRANCH", "env_variable": "BRANCH",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:32" "rules": "nullable|string"
}, },
{ {
"name": "User Uploaded Files", "name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true", "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD", "env_variable": "USER_UPLOAD",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -59,8 +61,8 @@
"description": "Pull the latest files on startup when using a GitHub repo.", "description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE", "env_variable": "AUTO_UPDATE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -68,8 +70,8 @@
"description": "The file that starts the bot.", "description": "The file that starts the bot.",
"env_variable": "BOT_PY_FILE", "env_variable": "BOT_PY_FILE",
"default_value": "bot.py", "default_value": "bot.py",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -77,27 +79,36 @@
"description": "Install additional python packages.\r\n\r\nUse spaces to separate", "description": "Install additional python packages.\r\n\r\nUse spaces to separate",
"env_variable": "PY_PACKAGES", "env_variable": "PY_PACKAGES",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
"name": "Username", "name": "Git Username",
"description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.", "description": "Username to auth with git.",
"env_variable": "USERNAME", "env_variable": "USERNAME",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
}, },
{ {
"name": "Password", "name": "Git Access Token",
"description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.", "description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "PASSWORD", "env_variable": "ACCESS_TOKEN",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
},
{
"name": "Requirements file",
"description": "if there are other requirements files to choose from.",
"env_variable": "REQUIREMENTS_FILE",
"default_value": "requirements.txt",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
} }
] ]
} }

View File

@ -0,0 +1,7 @@
# luvit generic
This egg was designed to allow a user to pull their own lua discord bot from a repo and run it with luvit.
There is an option to allow a user to upload their own files to run a bot.
The startup configs and commands may need changing to actually function properly.

View File

@ -0,0 +1,95 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-30T02:11:23+00:00",
"name": "luvit generic",
"author": "parker@parkervcp.com",
"description": "A generic luvit egg This will clone a git repo for a bot. It defaults to master if no branch is specified.\r\n\r\nSupports the discordia lua framework.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/luvit {{LUA_FILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"change me\"\r\n}",
"logs": "{}",
"stop": "^c"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n## luvit generic install script\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\n## get git files\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\nfi\r\n\r\n## install luvit for install time\r\ncurl -L https:\/\/github.com\/luvit\/lit\/raw\/master\/get-lit.sh | sh\r\n\r\n## Install luvit packages\r\n.\/lit install ${LIT_PACKAGES}",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Repo Address",
"description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": false,
"rules": "required|bool"
},
{
"name": "Git Branch",
"description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Bot lua file",
"description": "The Lua file to run",
"env_variable": "LUA_FILE",
"default_value": "bot.lua",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "Lit Packages",
"description": "Lit Packages to install\r\n\r\nexample\r\nSinisterRectus\/discordia lduboeuf\/cjson",
"env_variable": "LIT_PACKAGES",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
}
]
}

View File

@ -1,14 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-01T21:01:12-05:00", "exported_at": "2021-04-07T08:57:04+03:00",
"name": "Vanilla Bedrock", "name": "Vanilla Bedrock",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".", "description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/bedrock_server", "startup": ".\/bedrock_server",
"config": { "config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"allow-cheats\": \"{{server.build.env.CHEATS}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"allow-cheats\": \"{{server.build.env.CHEATS}}\"\r\n }\r\n }\r\n}",
@ -18,7 +22,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget 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 \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitlist.json.bak\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"restoring config files\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitlist.json\r\n\r\necho -e \"Done\"", "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget 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 \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitelist.json.bak\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"restoring config files\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitelist.json\r\nchmod +x bedrock_server\r\n\r\necho -e \"Done\"",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -79,4 +83,4 @@
"rules": "required|string|in:true,false" "rules": "required|string|in:true,false"
} }
] ]
} }

View File

@ -1,24 +1,28 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-12T16:14:47+00:00", "exported_at": "2021-04-07T10:33:24+03:00",
"name": "GoMint", "name": "GoMint",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A performant and stable Minecraft server software for the Bedrock Edition that comes with a modern API and support for Java 11 LTS.", "description": "A performant and stable Minecraft server software for the Bedrock Edition that comes with a modern API and support for Java 11 LTS.",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11", "images": [
"quay.io\/pterodactyl\/core:java-11"
],
"file_denylist": [],
"startup": "java --add-opens java.base\/java.nio=io.netty.common --add-exports java.base\/jdk.internal.misc=io.netty.common -p modules -m gomint.server\/io.gomint.server.Bootstrap", "startup": "java --add-opens java.base\/java.nio=io.netty.common --add-exports java.base\/jdk.internal.misc=io.netty.common -p modules -m gomint.server\/io.gomint.server.Bootstrap",
"config": { "config": {
"files": "{\r\n \"server.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"listener.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"listener.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\":\"Done in \"\r\n}", "startup": "{\r\n \"done\": \"Done in \"\r\n}",
"logs": "{}", "logs": "{}",
"stop": "stop" "stop": "stop"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=gomint\/gomint\r\nVERSION=latest\r\nMATCH=modules\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -m 1 -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -m 1 -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -m 1 -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\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 VALIDATED_URL=${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\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/} -d modules\/\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nif [ ! -f server.yml ]; then\r\n curl -sSL -o server.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/gomint\/server.yml\r\nfi", "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=gomint\/gomint\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n# retrieve latest tag to be used as version match, because gomint doesn't use normal releases\r\nLATEST_VERSION=$(curl -sL https:\/\/api.github.com\/repos\/gomint\/gomint\/tags | jq -r '.[-1].name')\r\n\r\nDOWNLOAD_URL=https:\/\/github.com\/gomint\/gomint\/releases\/download\/${LATEST_VERSION}\/${LATEST_VERSION}.zip\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"download link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"download link is invalid, something went wrong. Closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/} -d modules\/\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n# Move files into correct folders and remove unnecessary stuff\r\nrm ${VALIDATED_URL##*\/}\r\nmv modules\/modules\/* modules\r\nrm -rf modules\/modules\r\nrm modules\/start.*\r\n\r\n# Fetch server config\r\nif [ ! -f server.yml ]; then\r\n curl -sSL -o server.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/gomint\/server.yml\r\nfi",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }

View File

@ -8,4 +8,3 @@
* [Cross Platform](/minecraft/proxy/cross_platform) * [Cross Platform](/minecraft/proxy/cross_platform)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog) * [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.

View File

@ -1,13 +1,13 @@
# Mineraft Cross Platform Proxies # Mineraft Cross Platform Proxies
### GeyserMC ### GeyserMC
[GeyserMC](https://github.com/GeyserMC/) [GeyserMC](https://github.com/GeyserMC)
A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition. A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition.
#### Waterdog ### Waterdog
[Waterdog](https://github.com/yesdog/Waterdog) [Waterdog](https://github.com/WaterdogPE/Waterdog)
Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others. Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others.

View File

@ -1,17 +1,18 @@
# Minecraft Java Proxies # Minecraft Java Proxies
#### Waterfall
[Waterfall](https://papermc.io/downloads#Waterfall)
Paper fork of the BungeeCord software, with improved Forge support and more features.
#### Travertine #### Travertine
[Travertine](https://papermc.io/downloads#Travertine) [Travertine](https://papermc.io/downloads#Travertine)
Waterfall, with additional support for Minecraft 1.7.10. Waterfall, with additional support for Minecraft 1.7.10.
#### TyphoonLimbo
[TyphoonLimbo](https://github.com/TyphoonMC/TyphoonLimbo)
A limbo server is a fallback server able to handle a massive amount of simultaneous connections. The player spawns into the void then waits here. It can be used to keep players connected to a network after a lobby crashed or as an afk server.
#### Velocity #### Velocity
[Velocity](https://velocitypowered.com/) [Velocity](https://velocitypowered.com)
Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility. Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
#### Typhoonlimbo #### Waterfall
[TyphoonLimbo](https://github.com/TyphoonMC/TyphoonLimbo) [Waterfall](https://papermc.io/downloads#Waterfall)
Lightweight Minecraft limbo server Paper fork of the BungeeCord software, with improved Forge support and more features.

View File

@ -1,5 +1,5 @@
# TyphoonLimbo server # TyphoonLimbo server
Lightweight minecraft limbo server A limbo server is a fallback server able to handle a massive amount of simultaneous connections. The player spawns into the void then waits here. It can be used to keep players connected to a network after a lobby crashed or as an afk server.
## Server Ports ## Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.

View File

@ -1,6 +1,6 @@
## this is a simple script to validate a download url actaully exists ## this is a simple script to validate a download url actaully exists
if [ ! -z "${DOWNLOAD_URL}"]; then if [ ! -z "${DOWNLOAD_URL}" ]; then
if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then
echo -e "link is valid. setting download link to ${DOWNLOAD_URL}" echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
DOWNLOAD_LINK=${DOWNLOAD_URL} DOWNLOAD_LINK=${DOWNLOAD_URL}

View File

@ -3,11 +3,16 @@
## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK ## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK
## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar ## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar
apt update
apt install -y curl file unzip
curl -sSL ${DOWNLOAD_LINK}
FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)
if [ "$FILETYPE" == "gzip" ]; then if [ "$FILETYPE" == "gzip" ]; then
tar xzvf ${DOWNLOAD_LINK##*/} tar xzvf ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "Zip" ]; then elif [ "$FILETYPE" == "Zip" ]; then
unzip ${DOWNLOAD_LINK##*/} unzip -o ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "XZ" ]; then elif [ "$FILETYPE" == "XZ" ]; then
tar xvf ${DOWNLOAD_LINK##*/} tar xvf ${DOWNLOAD_LINK##*/}
else else

55
scripts/git_cloner.sh Normal file
View File

@ -0,0 +1,55 @@
## clone git repos
## supports both github and gitlab
## supports using a personal access token to run git pull
apt update
apt install -y git curl jq file unzip
mkdir -p /mnt/server
cd /mnt/server
if [ "${USER_UPLOAD}" == "true" ] || [ "${USER_UPLOAD}" == "1" ]; then
echo -e "assuming user knows what they are doing have a good day."
exit 0
fi
## add git ending if it's not on the address
if [[ ${GIT_ADDRESS} != *.git ]]; then
GIT_ADDRESS=${GIT_ADDRESS}.git
fi
if [ -z "${USERNAME}" ] && [ -z "${ACCESS_TOKEN}" ]; then
echo -e "using anon api call"
else
GIT_ADDRESS="https://${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d/ -f3-)"
fi
## pull git js bot repo
if [ "$(ls -A /mnt/server)" ]; then
echo -e "/mnt/server directory is not empty."
if [ -d .git ]; then
echo -e ".git directory exists"
if [ -f .git/config ]; then
echo -e "loading info from git config"
ORIGIN=$(git config --get remote.origin.url)
else
echo -e "files found with no git config"
echo -e "closing out without touching things to not break anything"
exit 10
fi
fi
if [ "${ORIGIN}" == "${GIT_ADDRESS}" ]; then
echo "pulling latest from github"
git pull
fi
else
echo -e "/mnt/server is empty.\ncloning files into repo"
if [ -z ${BRANCH} ]; then
echo -e "cloning default branch"
git clone ${GIT_ADDRESS} .
else
echo -e "cloning ${BRANCH}'"
git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .
fi
fi

View File

@ -2,6 +2,8 @@
## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way) ## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)
## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.) ## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)
## if you are getting hit with GitHub API limit issues then you need to have the user and token set. ## if you are getting hit with GitHub API limit issues then you need to have the user and token set.
apt update
apt install -y curl jq
if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then
echo -e "using anon api call" echo -e "using anon api call"
@ -15,13 +17,13 @@ LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/rele
RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases") RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases")
if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else else
VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name') VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
if [ "${VERSION}" == "${VERSION_CHECK}" ]; then if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
else else
echo -e "defaulting to latest release" echo -e "defaulting to latest release"
DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url) DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
fi fi
fi fi

View File

@ -10,7 +10,7 @@
# 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. # 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.
# WINDOWS_INSTALL - if it's a windows server you want to install set to 1 # WINDOWS_INSTALL - if it's a windows server you want to install set to 1
# SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List # SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates. # INSTALL_FLAGS - when a server has extra glas for things like beta installs or updates.
# #
## ##
@ -18,7 +18,7 @@ apt -y update
apt -y --no-install-recommends install curl lib32gcc1 ca-certificates apt -y --no-install-recommends install curl lib32gcc1 ca-certificates
## just in case someone removed the defaults. ## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n" echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n" echo -e "Using anonymous user.\n"
STEAM_USER=anonymous STEAM_USER=anonymous
@ -41,7 +41,7 @@ chown -R root:root /mnt
export HOME=/mnt/server export HOME=/mnt/server
## install game using steamcmd ## install game using steamcmd
./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +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 ./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
## set up 32 bit libraries ## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32 mkdir -p /mnt/server/.steam/sdk32

View File

@ -29,7 +29,7 @@
"variables": [ "variables": [
{ {
"name": "Password", "name": "Password",
"description": "Passwort to login to your Code-Server instance", "description": "Password to login to your Code-Server instance",
"env_variable": "PASSWORD", "env_variable": "PASSWORD",
"default_value": "changeme", "default_value": "changeme",
"user_viewable": true, "user_viewable": true,
@ -46,4 +46,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }

View File

@ -14,12 +14,12 @@ This is a collection of servers that use SteamCMD to install.
* [Arma 3 64 Bit](arma/arma3_x64) * [Arma 3 64 Bit](arma/arma3_x64)
* [Arma 3 Headless Client](arma/arma3_headless_client) * [Arma 3 Headless Client](arma/arma3_headless_client)
## Avorion
[Avorion](avorion)
## Assetto Corsa ## Assetto Corsa
[Assetto Corsa](assetto_corsa) [Assetto Corsa](assetto_corsa)
## Avorion
[Avorion](avorion)
## Barotrauma ## Barotrauma
[Barotrauma](barotrauma) [Barotrauma](barotrauma)
@ -121,6 +121,6 @@ This is a collection of servers that use SteamCMD to install.
[Unturned](unturned) [Unturned](unturned)
## Valheim ## Valheim
[Valheim](/valheim) [Valheim](valheim)
* [Valheim Vanilla](valheim_vanilla) * [Valheim Vanilla](valheim/valheim_vanilla)
* [Valheim Plus Mod](valheim_plus) * [Valheim Plus Mod](valheim/valheim_plus)

View File

@ -1,10 +1,10 @@
# Valheim Plus Mod # Valheim Plus Mod
##Valheim ## Valheim
A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage! A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage!
https://store.steampowered.com/app/892970/Valheim/ https://store.steampowered.com/app/892970/Valheim/
##Plus Mod ## Plus Mod
A HarmonyX Mod aimed at improving the gameplay quality of Valheim. The mod includes several different main features including modifiers to ingame stats of players, buildings and entities and a sophisticated system to build and place objects with high precision and a system to modify already placed objects with high precision. The general goal is to provide V+ as a base modification for your gameplay to increase quality of life, change difficulty or have a better experience in general. The mod also comes with a version and configuration control system for servers and users, allowing servers to make sure that only people with the same configuration are able to join their servers. A HarmonyX Mod aimed at improving the gameplay quality of Valheim. The mod includes several different main features including modifiers to ingame stats of players, buildings and entities and a sophisticated system to build and place objects with high precision and a system to modify already placed objects with high precision. The general goal is to provide V+ as a base modification for your gameplay to increase quality of life, change difficulty or have a better experience in general. The mod also comes with a version and configuration control system for servers and users, allowing servers to make sure that only people with the same configuration are able to join their servers.
Support: https://github.com/valheimPlus/ValheimPlus Support: https://github.com/valheimPlus/ValheimPlus
Discord: https://discord.gg/AmH6Va97GT Discord: https://discord.gg/AmH6Va97GT

View File

@ -1,4 +1,4 @@
# Valheim Server # Valheim
A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage! A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage!
https://store.steampowered.com/app/892970/Valheim/ https://store.steampowered.com/app/892970/Valheim/