From bbeb728d09758b492bb55d3a7d49fe80f23bc279 Mon Sep 17 00:00:00 2001 From: Weilbyte Date: Mon, 15 Feb 2021 21:13:59 +0100 Subject: [PATCH 01/51] BeamNG.drive KISS initial --- beamng/kissmp/README.md | 5 +++++ beamng/kissmp/egg-kissmp.json | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 beamng/kissmp/README.md create mode 100644 beamng/kissmp/egg-kissmp.json diff --git a/beamng/kissmp/README.md b/beamng/kissmp/README.md new file mode 100644 index 00000000..8c6c4da9 --- /dev/null +++ b/beamng/kissmp/README.md @@ -0,0 +1,5 @@ +# BeamNG.drive - KISS Multiplayer + +### From their [Github](https://github.com/TheHellBox/KISS-multiplayer) + +Server settings such as the map can be changed in the `config.json` file. Port is automatically set on each boot. diff --git a/beamng/kissmp/egg-kissmp.json b/beamng/kissmp/egg-kissmp.json new file mode 100644 index 00000000..adc9fe6d --- /dev/null +++ b/beamng/kissmp/egg-kissmp.json @@ -0,0 +1,27 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2021-02-15T20:05:24+00:00", + "name": "KissMP Server", + "author": "me@weilbyte.dev", + "description": "Server for the KISS Multiplayer BeamNG.drive mod", + "features": null, + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/kissmp-server", + "config": { + "files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server is running!\",\r\n \"userInteraction\": []\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y wget unzip \r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_RELEASE=$(wget -qO- https:\/\/api.github.com\/repos\/TheHellBox\/KISS-multiplayer\/releases\/latest | grep browser_download_url | cut -d '\"' -f 4)\r\necho -e Install repo set to ${INSTALL_REPO}\r\necho -e \"\/mnt\/server is empty.\\nDownloading latest release ${LATEST_RELEASE}\"\r\n\r\nwget $LATEST_RELEASE -O kissmp.zip\r\nunzip -j kissmp.zip '*\/kissmp-server'\r\n\r\nrm -rf kissmp.zip\r\n\r\nif [ -f \/mnt\/server\/kissmp-server ]; then\r\n echo -e \"Install complete\"\r\n chmod +x \/mnt\/server\/kissmp-server\r\n \r\n # Generate config\r\n .\/kissmp-server & serverpid=$! \r\n sleep 1\r\n kill $serverpid\r\n \r\n exit 0\r\nelse \r\n echo -e \"Install failed (no \/mnt\/server\/kissmp-server file present)\"\r\n exit 1\r\nfi", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file From d1f00a6c094b16dda61a0e3bf3aeda7bbd7798df Mon Sep 17 00:00:00 2001 From: Weilbyte Date: Mon, 15 Feb 2021 21:20:21 +0100 Subject: [PATCH 02/51] Add to main README --- README.md | 269 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 149 insertions(+), 120 deletions(-) diff --git a/README.md b/README.md index e0ee5402..b0f1ac14 100644 --- a/README.md +++ b/README.md @@ -20,57 +20,72 @@ If you are reading this it looks like you are looking to add an egg to your serv # You must restart your daemon after importing an egg if you are using 0.7. This is not required on 1.X. - ## Please read the CONTRIBUTING.md before submitting PRs ## [Bots](/bots) [Discord](/bots/discord) -* [ATL Bot](/bots/discord/atlbot) Node JS -* [Bastion](/bots/discord/bastion) Node JS -* [CorpBot](/bots/discord/corpbot) Python -* [discord.js](bots/discord/discord.js) Node JS generic -* [discord.py](bots/discord/discord.py) Python generic -* [discordgo](bots/discord/discordgo) Golang generic -* [fragbot](/bots/discord/fragbot) Golang -* [JMusicBot](/bots/discord/jmusicbot) Java -* [parkertron](/bots/discord/parkertron) Golang -* [pixel-bot](/bots/discord/pixelbot) Python -* [Redbot](/bots/discord/redbot) Python -* [SinusBot](/bots/discord/sinusbot) + +- [ATL Bot](/bots/discord/atlbot) Node JS +- [Bastion](/bots/discord/bastion) Node JS +- [CorpBot](/bots/discord/corpbot) Python +- [discord.js](bots/discord/discord.js) Node JS generic +- [discord.py](bots/discord/discord.py) Python generic +- [discordgo](bots/discord/discordgo) Golang generic +- [fragbot](/bots/discord/fragbot) Golang +- [JMusicBot](/bots/discord/jmusicbot) Java +- [parkertron](/bots/discord/parkertron) Golang +- [pixel-bot](/bots/discord/pixelbot) Python +- [Redbot](/bots/discord/redbot) Python +- [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) -* [Big Brother Bot](/bots/other/bigbrotherbot) + +- [Big Brother Bot](/bots/other/bigbrotherbot) [Twitch](/bots/twitch) - * [PhantomBot](/bots/twitch/phantombot) - * [SogeBot](/bots/twitch/sogebot) + +- [PhantomBot](/bots/twitch/phantombot) +- [SogeBot](/bots/twitch/sogebot) [TeamSpeak3](bots/teamspeak3) - * [JTS3ServerMod](/bots/teamspeak3/jts3servermod) + +- [JTS3ServerMod](/bots/teamspeak3/jts3servermod) ## [Database](/database) + ### In-Memory Databases + [Redis](/database/redis) -* [Redis 5](/database/redis/redis-5) -* [Redis 6](/database/redis/redis-6) + +- [Redis 5](/database/redis/redis-5) +- [Redis 6](/database/redis/redis-6) ### noSQL -* [mongoDB](/database/nosql/mongodb) + +- [mongoDB](/database/nosql/mongodb) ### SQL Databases -* [MariaDB](/database/sql/mariadb) -* [PostgreSQL](/database/sql/postgres) + +- [MariaDB](/database/sql/mariadb) +- [PostgreSQL](/database/sql/postgres) ## Voice Servers -* [Lavalink](/voice_servers/lavalink) -* [TeaSpeak](/voice_servers/teaspeak) -* [TS3-Manager](/voice_servers/ts3_manager) + +- [Lavalink](/voice_servers/lavalink) +- [TeaSpeak](/voice_servers/teaspeak) +- [TS3-Manager](/voice_servers/ts3_manager) ## Game Eggs + [Among Us](/among_us) -* [Impostor Server](/among_us/impostor_server) -* [CrewLink Server](/among_us/crewlink_server) + +- [Impostor Server](/among_us/impostor_server) +- [CrewLink Server](/among_us/crewlink_server) + +[BeamNG.drive](/beamng) + +- [KissMP](/beamng/kissmp) [Cryofall](/cryofall/cryofall) @@ -79,17 +94,19 @@ If you are reading this it looks like you are looking to add an egg to your serv [FTL: Tachyon](/ftl/tachyon) [Factorio](/factorio) -* [Vanilla](/factorio/factorio) -* [ModUpdate](/factorio/factorio-modupdate) + +- [Vanilla](/factorio/factorio) +- [ModUpdate](/factorio/factorio-modupdate) [Grand Theft Auto](/gta) -* GTA V - * [FiveM](/gta/fivem) - * [RageMP](/gta/ragemp) - * [alt:V](/gta/altv) -* GTA SA - * [Multi Theft Auto](/gta/mtasa) - * [SA-MP](/gta/samp) + +- GTA V + - [FiveM](/gta/fivem) + - [RageMP](/gta/ragemp) + - [alt:V](/gta/altv) +- GTA SA + - [Multi Theft Auto](/gta/mtasa) + - [SA-MP](/gta/samp) [Mindustry](/mindustry) @@ -98,109 +115,121 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minetest](/minetest) (including MTG) [Minecraft](/minecraft) -* [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) - * [Bedrock](/minecraft/bedrock/bedrock) - * [gomint](/minecraft/bedrock/gomint) - * [Nukkit](/minecraft/bedrock/nukkit) - * [PocketMine MP](/minecraft/bedrock/pocketmine_mp) -* [Java](/minecraft/java) Servers for Java Minecraft - * [Cuberite](/minecraft/java/cuberite) - * [Fabric](/minecraft/java/fabric) - * [Feather](/minecraft/java/feather) - * [Feed The Beast](/minecraft/java/ftb) - * [Forge](/minecraft/java/forge) - * [Magma](/minecraft/java/magma) - * [Mohist](/minecraft/java/mohist) - * [Paper](/minecraft/java/paper) - * [Purpur](/minecraft/java/purpur) - * [Spigot](/minecraft/java/spigot) - * [SpongeForge](/minecraft/java/spongeforge) - * [SpongeVanilla](/minecraft/java/spongevanilla) - * [Technic](/minecraft/java/technic) - * [Tuinity](/minecraft/java/tuinity) - * [VanillaCord](/minecraft/java/vanillacord) +- [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) + + - [Bedrock](/minecraft/bedrock/bedrock) + - [gomint](/minecraft/bedrock/gomint) + - [Nukkit](/minecraft/bedrock/nukkit) + - [PocketMine MP](/minecraft/bedrock/pocketmine_mp) + +- [Java](/minecraft/java) Servers for Java Minecraft + + - [Cuberite](/minecraft/java/cuberite) + - [Fabric](/minecraft/java/fabric) + - [Feather](/minecraft/java/feather) + - [Feed The Beast](/minecraft/java/ftb) + - [Forge](/minecraft/java/forge) + - [Magma](/minecraft/java/magma) + - [Mohist](/minecraft/java/mohist) + - [Paper](/minecraft/java/paper) + - [Purpur](/minecraft/java/purpur) + - [Spigot](/minecraft/java/spigot) + - [SpongeForge](/minecraft/java/spongeforge) + - [SpongeVanilla](/minecraft/java/spongevanilla) + - [Technic](/minecraft/java/technic) + - [Tuinity](/minecraft/java/tuinity) + - [VanillaCord](/minecraft/java/vanillacord) + +- [Proxies](/minecraft/proxy) Minecraft Server Proxies + - [Java](/minecraft/proxy/java) + - [Travertine](/minecraft/proxy/java/travertine) + - [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) + - [Velocity](/minecraft/proxy/java/velocity) + - [Waterfall](/minecraft/proxy/java/waterfall) + - [Cross Platform](/minecraft/proxy/cross_platform) + - [GeyserMC](/minecraft/proxy/cross_platform/geyser) + - [Waterdog](/minecraft/proxy/cross_platform/waterdog) + - DragonProxy abandoned in favour of GeyserMC. -* [Proxies](/minecraft/proxy) Minecraft Server Proxies - * [Java](/minecraft/proxy/java) - * [Travertine](/minecraft/proxy/java/travertine) - * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) - * [Velocity](/minecraft/proxy/java/velocity) - * [Waterfall](/minecraft/proxy/java/waterfall) - * [Cross Platform](/minecraft/proxy/cross_platform) - * [GeyserMC](/minecraft/proxy/cross_platform/geyser) - * [Waterdog](/minecraft/proxy/cross_platform/waterdog) - * DragonProxy abandoned in favour of GeyserMC. - [OpenRA](/openra) -* [OpenRA Dune2000](/openra/openra_dune2000) -* [OpenRA Red Alert](/openra/openra_red_alert) -* [OpenRA Tiberian Dawn](/openra/openra_tiberian_dawn) + +- [OpenRA Dune2000](/openra/openra_dune2000) +- [OpenRA Red Alert](/openra/openra_red_alert) +- [OpenRA Tiberian Dawn](/openra/openra_tiberian_dawn) [Red Dead Redemption](/rdr) -* [RedM](/rdr/redm) + +- [RedM](/rdr/redm) [SteamCMD Servers](/steamcmd_servers) These eggs use SteamCMD to install -* [7 Days to Die](/steamcmd_servers/7_days_to_die) -* [ARK: Survival Evolved](/steamcmd_servers/ark_survival_evolved) -* [Arma](/steamcmd_servers/arma) - * [Arma 3](/steamcmd_servers/arma/arma3) - * [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) - * [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) -* [Avorion](/steamcmd_servers/avorion) -* [Assetto Corsa](/steamcmd_servers/assetto_corsa) -* [Barotrauma](/steamcmd_servers/barotrauma) -* [Citadel: Forged with Fire](/steamcmd_servers/citadel) -* [Conan Exiles](/steamcmd_servers/conan_exiles) -* [Don't Starve Together](/steamcmd_servers/dont_starve) -* [ECO](/steamcmd_servers/eco) -* [HLDS Server](/steamcmd_servers/hlds_server) -* [Holdfast: Nations At War](/steamcmd_servers/holdfast) -* [Hurtworld](/steamcmd_servers/hurtworld) -* [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) -* [Killing Floor 2](/steamcmd_servers/killing_floor_2) -* [Mordhau](/steamcmd_servers/mordhau) -* [Onset](/steamcmd_servers/onset) -* [PixARK](/steamcmd_servers/pixark) -* [Project Zomboid](/steamcmd_servers/project_zomboid) -* [Quake Live](/steamcmd_servers/quake_live) -* [Rising World](/steamcmd_servers/rising_world) -* [Rust](/steamcmd_servers/rust) - * [Autowipe](/steamcmd_servers/rust/rust_autowipe) - * [Staging](/steamcmd_servers/rust/rust_staging) -* [SCP: Secret Laboratory](/steamcmd_servers/scpsl) - * [dedicated](/steamcmd_servers/scpsl/dedicated) - * [multiadmin](/steamcmd_servers/scpsl/multiadmin) -* [Soldat](/steamcmd_servers/soldat) -* [Squad](/steamcmd_servers/squad) -* [Starbound](/steamcmd_servers/starbound) -* [Stationeers](/steamcmd_servers/stationeers) -* [Stormworks: Build and Rescue](/steamcmd_servers/stormworks) -* [Sven Co-op](/steamcmd_servers/svencoop) -* [The Forest](/steamcmd_servers/the_forest) -* [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic) -* [Unturned](/steamcmd_servers/unturned) -* [Valheim](/steamcmd_servers/valheim) + +- [7 Days to Die](/steamcmd_servers/7_days_to_die) +- [ARK: Survival Evolved](/steamcmd_servers/ark_survival_evolved) +- [Arma](/steamcmd_servers/arma) + - [Arma 3](/steamcmd_servers/arma/arma3) + - [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) + - [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) +- [Avorion](/steamcmd_servers/avorion) +- [Assetto Corsa](/steamcmd_servers/assetto_corsa) +- [Barotrauma](/steamcmd_servers/barotrauma) +- [Citadel: Forged with Fire](/steamcmd_servers/citadel) +- [Conan Exiles](/steamcmd_servers/conan_exiles) +- [Don't Starve Together](/steamcmd_servers/dont_starve) +- [ECO](/steamcmd_servers/eco) +- [HLDS Server](/steamcmd_servers/hlds_server) +- [Holdfast: Nations At War](/steamcmd_servers/holdfast) +- [Hurtworld](/steamcmd_servers/hurtworld) +- [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) +- [Killing Floor 2](/steamcmd_servers/killing_floor_2) +- [Mordhau](/steamcmd_servers/mordhau) +- [Onset](/steamcmd_servers/onset) +- [PixARK](/steamcmd_servers/pixark) +- [Project Zomboid](/steamcmd_servers/project_zomboid) +- [Quake Live](/steamcmd_servers/quake_live) +- [Rising World](/steamcmd_servers/rising_world) +- [Rust](/steamcmd_servers/rust) + - [Autowipe](/steamcmd_servers/rust/rust_autowipe) + - [Staging](/steamcmd_servers/rust/rust_staging) +- [SCP: Secret Laboratory](/steamcmd_servers/scpsl) + - [dedicated](/steamcmd_servers/scpsl/dedicated) + - [multiadmin](/steamcmd_servers/scpsl/multiadmin) +- [Soldat](/steamcmd_servers/soldat) +- [Squad](/steamcmd_servers/squad) +- [Starbound](/steamcmd_servers/starbound) +- [Stationeers](/steamcmd_servers/stationeers) +- [Stormworks: Build and Rescue](/steamcmd_servers/stormworks) +- [Sven Co-op](/steamcmd_servers/svencoop) +- [The Forest](/steamcmd_servers/the_forest) +- [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic) +- [Unturned](/steamcmd_servers/unturned) +- [Valheim](/steamcmd_servers/valheim) [Teeworlds](/teeworlds) -* [Teeworlds](/teeworlds/teeworlds) + +- [Teeworlds](/teeworlds/teeworlds) [Terraria](/terraria) -* [Vanilla](/terraria/vanilla) -* [tModLoader](/terraria/tmodloader) -* [TShock](/terraria/tshock) + +- [Vanilla](/terraria/vanilla) +- [tModLoader](/terraria/tmodloader) +- [TShock](/terraria/tshock) [Tycoon Games](/tycoon_games) -* [OpenTTD](/tycoon_games/openttd) + +- [OpenTTD](/tycoon_games/openttd) [Unreal Engine](/unreal_engine) -* [Tower Unite](/unreal_engine/tower_unite) -* [Tower Unite](/steamcmd_servers/tower_unite) + +- [Tower Unite](/unreal_engine/tower_unite) +- [Tower Unite](/steamcmd_servers/tower_unite) [Vintage Story](/vintage_story/vintage_story) [Xonotic](/xonotic/xonotic) ## [Storage](/storage/) + ### S3 Storage -* [minio](/storage/minio) \ No newline at end of file + +- [minio](/storage/minio) From fd03ce3d07212416dea221fbb02f7da7930b292e Mon Sep 17 00:00:00 2001 From: Weilbyte Date: Mon, 15 Feb 2021 21:26:34 +0100 Subject: [PATCH 03/51] Fix formatting? --- README.md | 268 ++++++++++++++++++++++++------------------------------ 1 file changed, 121 insertions(+), 147 deletions(-) diff --git a/README.md b/README.md index b0f1ac14..b3ef9637 100644 --- a/README.md +++ b/README.md @@ -20,72 +20,60 @@ If you are reading this it looks like you are looking to add an egg to your serv # You must restart your daemon after importing an egg if you are using 0.7. This is not required on 1.X. + ## Please read the CONTRIBUTING.md before submitting PRs ## [Bots](/bots) [Discord](/bots/discord) - -- [ATL Bot](/bots/discord/atlbot) Node JS -- [Bastion](/bots/discord/bastion) Node JS -- [CorpBot](/bots/discord/corpbot) Python -- [discord.js](bots/discord/discord.js) Node JS generic -- [discord.py](bots/discord/discord.py) Python generic -- [discordgo](bots/discord/discordgo) Golang generic -- [fragbot](/bots/discord/fragbot) Golang -- [JMusicBot](/bots/discord/jmusicbot) Java -- [parkertron](/bots/discord/parkertron) Golang -- [pixel-bot](/bots/discord/pixelbot) Python -- [Redbot](/bots/discord/redbot) Python -- [SinusBot](/bots/discord/sinusbot) +* [ATL Bot](/bots/discord/atlbot) Node JS +* [Bastion](/bots/discord/bastion) Node JS +* [CorpBot](/bots/discord/corpbot) Python +* [discord.js](bots/discord/discord.js) Node JS generic +* [discord.py](bots/discord/discord.py) Python generic +* [discordgo](bots/discord/discordgo) Golang generic +* [fragbot](/bots/discord/fragbot) Golang +* [JMusicBot](/bots/discord/jmusicbot) Java +* [parkertron](/bots/discord/parkertron) Golang +* [pixel-bot](/bots/discord/pixelbot) Python +* [Redbot](/bots/discord/redbot) Python +* [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) - -- [Big Brother Bot](/bots/other/bigbrotherbot) +* [Big Brother Bot](/bots/other/bigbrotherbot) [Twitch](/bots/twitch) - -- [PhantomBot](/bots/twitch/phantombot) -- [SogeBot](/bots/twitch/sogebot) + * [PhantomBot](/bots/twitch/phantombot) + * [SogeBot](/bots/twitch/sogebot) [TeamSpeak3](bots/teamspeak3) - -- [JTS3ServerMod](/bots/teamspeak3/jts3servermod) + * [JTS3ServerMod](/bots/teamspeak3/jts3servermod) ## [Database](/database) - ### In-Memory Databases - [Redis](/database/redis) - -- [Redis 5](/database/redis/redis-5) -- [Redis 6](/database/redis/redis-6) +* [Redis 5](/database/redis/redis-5) +* [Redis 6](/database/redis/redis-6) ### noSQL - -- [mongoDB](/database/nosql/mongodb) +* [mongoDB](/database/nosql/mongodb) ### SQL Databases - -- [MariaDB](/database/sql/mariadb) -- [PostgreSQL](/database/sql/postgres) +* [MariaDB](/database/sql/mariadb) +* [PostgreSQL](/database/sql/postgres) ## Voice Servers - -- [Lavalink](/voice_servers/lavalink) -- [TeaSpeak](/voice_servers/teaspeak) -- [TS3-Manager](/voice_servers/ts3_manager) +* [Lavalink](/voice_servers/lavalink) +* [TeaSpeak](/voice_servers/teaspeak) +* [TS3-Manager](/voice_servers/ts3_manager) ## Game Eggs - [Among Us](/among_us) - -- [Impostor Server](/among_us/impostor_server) -- [CrewLink Server](/among_us/crewlink_server) +* [Impostor Server](/among_us/impostor_server) +* [CrewLink Server](/among_us/crewlink_server) [BeamNG.drive](/beamng) - -- [KissMP](/beamng/kissmp) +* [KissMP](/beamng/kissmp) [Cryofall](/cryofall/cryofall) @@ -94,19 +82,17 @@ If you are reading this it looks like you are looking to add an egg to your serv [FTL: Tachyon](/ftl/tachyon) [Factorio](/factorio) - -- [Vanilla](/factorio/factorio) -- [ModUpdate](/factorio/factorio-modupdate) +* [Vanilla](/factorio/factorio) +* [ModUpdate](/factorio/factorio-modupdate) [Grand Theft Auto](/gta) - -- GTA V - - [FiveM](/gta/fivem) - - [RageMP](/gta/ragemp) - - [alt:V](/gta/altv) -- GTA SA - - [Multi Theft Auto](/gta/mtasa) - - [SA-MP](/gta/samp) +* GTA V + * [FiveM](/gta/fivem) + * [RageMP](/gta/ragemp) + * [alt:V](/gta/altv) +* GTA SA + * [Multi Theft Auto](/gta/mtasa) + * [SA-MP](/gta/samp) [Mindustry](/mindustry) @@ -115,121 +101,109 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minetest](/minetest) (including MTG) [Minecraft](/minecraft) +* [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) + * [Bedrock](/minecraft/bedrock/bedrock) + * [gomint](/minecraft/bedrock/gomint) + * [Nukkit](/minecraft/bedrock/nukkit) + * [PocketMine MP](/minecraft/bedrock/pocketmine_mp) -- [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) - - - [Bedrock](/minecraft/bedrock/bedrock) - - [gomint](/minecraft/bedrock/gomint) - - [Nukkit](/minecraft/bedrock/nukkit) - - [PocketMine MP](/minecraft/bedrock/pocketmine_mp) - -- [Java](/minecraft/java) Servers for Java Minecraft - - - [Cuberite](/minecraft/java/cuberite) - - [Fabric](/minecraft/java/fabric) - - [Feather](/minecraft/java/feather) - - [Feed The Beast](/minecraft/java/ftb) - - [Forge](/minecraft/java/forge) - - [Magma](/minecraft/java/magma) - - [Mohist](/minecraft/java/mohist) - - [Paper](/minecraft/java/paper) - - [Purpur](/minecraft/java/purpur) - - [Spigot](/minecraft/java/spigot) - - [SpongeForge](/minecraft/java/spongeforge) - - [SpongeVanilla](/minecraft/java/spongevanilla) - - [Technic](/minecraft/java/technic) - - [Tuinity](/minecraft/java/tuinity) - - [VanillaCord](/minecraft/java/vanillacord) - -- [Proxies](/minecraft/proxy) Minecraft Server Proxies - - [Java](/minecraft/proxy/java) - - [Travertine](/minecraft/proxy/java/travertine) - - [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) - - [Velocity](/minecraft/proxy/java/velocity) - - [Waterfall](/minecraft/proxy/java/waterfall) - - [Cross Platform](/minecraft/proxy/cross_platform) - - [GeyserMC](/minecraft/proxy/cross_platform/geyser) - - [Waterdog](/minecraft/proxy/cross_platform/waterdog) - - DragonProxy abandoned in favour of GeyserMC. +* [Java](/minecraft/java) Servers for Java Minecraft + * [Cuberite](/minecraft/java/cuberite) + * [Fabric](/minecraft/java/fabric) + * [Feather](/minecraft/java/feather) + * [Feed The Beast](/minecraft/java/ftb) + * [Forge](/minecraft/java/forge) + * [Magma](/minecraft/java/magma) + * [Mohist](/minecraft/java/mohist) + * [Paper](/minecraft/java/paper) + * [Purpur](/minecraft/java/purpur) + * [Spigot](/minecraft/java/spigot) + * [SpongeForge](/minecraft/java/spongeforge) + * [SpongeVanilla](/minecraft/java/spongevanilla) + * [Technic](/minecraft/java/technic) + * [Tuinity](/minecraft/java/tuinity) + * [VanillaCord](/minecraft/java/vanillacord) +* [Proxies](/minecraft/proxy) Minecraft Server Proxies + * [Java](/minecraft/proxy/java) + * [Travertine](/minecraft/proxy/java/travertine) + * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) + * [Velocity](/minecraft/proxy/java/velocity) + * [Waterfall](/minecraft/proxy/java/waterfall) + * [Cross Platform](/minecraft/proxy/cross_platform) + * [GeyserMC](/minecraft/proxy/cross_platform/geyser) + * [Waterdog](/minecraft/proxy/cross_platform/waterdog) + * DragonProxy abandoned in favour of GeyserMC. + [OpenRA](/openra) - -- [OpenRA Dune2000](/openra/openra_dune2000) -- [OpenRA Red Alert](/openra/openra_red_alert) -- [OpenRA Tiberian Dawn](/openra/openra_tiberian_dawn) +* [OpenRA Dune2000](/openra/openra_dune2000) +* [OpenRA Red Alert](/openra/openra_red_alert) +* [OpenRA Tiberian Dawn](/openra/openra_tiberian_dawn) [Red Dead Redemption](/rdr) - -- [RedM](/rdr/redm) +* [RedM](/rdr/redm) [SteamCMD Servers](/steamcmd_servers) These eggs use SteamCMD to install - -- [7 Days to Die](/steamcmd_servers/7_days_to_die) -- [ARK: Survival Evolved](/steamcmd_servers/ark_survival_evolved) -- [Arma](/steamcmd_servers/arma) - - [Arma 3](/steamcmd_servers/arma/arma3) - - [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) - - [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) -- [Avorion](/steamcmd_servers/avorion) -- [Assetto Corsa](/steamcmd_servers/assetto_corsa) -- [Barotrauma](/steamcmd_servers/barotrauma) -- [Citadel: Forged with Fire](/steamcmd_servers/citadel) -- [Conan Exiles](/steamcmd_servers/conan_exiles) -- [Don't Starve Together](/steamcmd_servers/dont_starve) -- [ECO](/steamcmd_servers/eco) -- [HLDS Server](/steamcmd_servers/hlds_server) -- [Holdfast: Nations At War](/steamcmd_servers/holdfast) -- [Hurtworld](/steamcmd_servers/hurtworld) -- [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) -- [Killing Floor 2](/steamcmd_servers/killing_floor_2) -- [Mordhau](/steamcmd_servers/mordhau) -- [Onset](/steamcmd_servers/onset) -- [PixARK](/steamcmd_servers/pixark) -- [Project Zomboid](/steamcmd_servers/project_zomboid) -- [Quake Live](/steamcmd_servers/quake_live) -- [Rising World](/steamcmd_servers/rising_world) -- [Rust](/steamcmd_servers/rust) - - [Autowipe](/steamcmd_servers/rust/rust_autowipe) - - [Staging](/steamcmd_servers/rust/rust_staging) -- [SCP: Secret Laboratory](/steamcmd_servers/scpsl) - - [dedicated](/steamcmd_servers/scpsl/dedicated) - - [multiadmin](/steamcmd_servers/scpsl/multiadmin) -- [Soldat](/steamcmd_servers/soldat) -- [Squad](/steamcmd_servers/squad) -- [Starbound](/steamcmd_servers/starbound) -- [Stationeers](/steamcmd_servers/stationeers) -- [Stormworks: Build and Rescue](/steamcmd_servers/stormworks) -- [Sven Co-op](/steamcmd_servers/svencoop) -- [The Forest](/steamcmd_servers/the_forest) -- [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic) -- [Unturned](/steamcmd_servers/unturned) -- [Valheim](/steamcmd_servers/valheim) +* [7 Days to Die](/steamcmd_servers/7_days_to_die) +* [ARK: Survival Evolved](/steamcmd_servers/ark_survival_evolved) +* [Arma](/steamcmd_servers/arma) + * [Arma 3](/steamcmd_servers/arma/arma3) + * [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) + * [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) +* [Avorion](/steamcmd_servers/avorion) +* [Assetto Corsa](/steamcmd_servers/assetto_corsa) +* [Barotrauma](/steamcmd_servers/barotrauma) +* [Citadel: Forged with Fire](/steamcmd_servers/citadel) +* [Conan Exiles](/steamcmd_servers/conan_exiles) +* [Don't Starve Together](/steamcmd_servers/dont_starve) +* [ECO](/steamcmd_servers/eco) +* [HLDS Server](/steamcmd_servers/hlds_server) +* [Holdfast: Nations At War](/steamcmd_servers/holdfast) +* [Hurtworld](/steamcmd_servers/hurtworld) +* [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) +* [Killing Floor 2](/steamcmd_servers/killing_floor_2) +* [Mordhau](/steamcmd_servers/mordhau) +* [Onset](/steamcmd_servers/onset) +* [PixARK](/steamcmd_servers/pixark) +* [Project Zomboid](/steamcmd_servers/project_zomboid) +* [Quake Live](/steamcmd_servers/quake_live) +* [Rising World](/steamcmd_servers/rising_world) +* [Rust](/steamcmd_servers/rust) + * [Autowipe](/steamcmd_servers/rust/rust_autowipe) + * [Staging](/steamcmd_servers/rust/rust_staging) +* [SCP: Secret Laboratory](/steamcmd_servers/scpsl) + * [dedicated](/steamcmd_servers/scpsl/dedicated) + * [multiadmin](/steamcmd_servers/scpsl/multiadmin) +* [Soldat](/steamcmd_servers/soldat) +* [Squad](/steamcmd_servers/squad) +* [Starbound](/steamcmd_servers/starbound) +* [Stationeers](/steamcmd_servers/stationeers) +* [Stormworks: Build and Rescue](/steamcmd_servers/stormworks) +* [Sven Co-op](/steamcmd_servers/svencoop) +* [The Forest](/steamcmd_servers/the_forest) +* [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic) +* [Unturned](/steamcmd_servers/unturned) +* [Valheim](/steamcmd_servers/valheim) [Teeworlds](/teeworlds) - -- [Teeworlds](/teeworlds/teeworlds) +* [Teeworlds](/teeworlds/teeworlds) [Terraria](/terraria) - -- [Vanilla](/terraria/vanilla) -- [tModLoader](/terraria/tmodloader) -- [TShock](/terraria/tshock) +* [Vanilla](/terraria/vanilla) +* [tModLoader](/terraria/tmodloader) +* [TShock](/terraria/tshock) [Tycoon Games](/tycoon_games) - -- [OpenTTD](/tycoon_games/openttd) +* [OpenTTD](/tycoon_games/openttd) [Unreal Engine](/unreal_engine) - -- [Tower Unite](/unreal_engine/tower_unite) -- [Tower Unite](/steamcmd_servers/tower_unite) +* [Tower Unite](/unreal_engine/tower_unite) +* [Tower Unite](/steamcmd_servers/tower_unite) [Vintage Story](/vintage_story/vintage_story) [Xonotic](/xonotic/xonotic) ## [Storage](/storage/) - ### S3 Storage - -- [minio](/storage/minio) +* [minio](/storage/minio) \ No newline at end of file From cc2f1be1b6927ef5fd0e5cebba3cfe87905ca443 Mon Sep 17 00:00:00 2001 From: TASelwyn <37274951+TASelwyn@users.noreply.github.com> Date: Thu, 18 Mar 2021 12:13:12 -0400 Subject: [PATCH 04/51] Fixes valheim readme The steamcmd readme did not contain valheim/ in the relative path, which leads to a 404 page as /valheim_vanilla is empty, it should be /valheim/valheim_vanilla Also fixes the category formatting in the valheim_plus's readme to separate the blocks of text. (Also puts assetto corsa above avorion, which is alphabetical order) --- steamcmd_servers/README.md | 12 ++++++------ steamcmd_servers/valheim/valheim_plus/README.md | 4 ++-- steamcmd_servers/valheim/valheim_vanilla/README.md | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md index baa4c5b0..18e27f7b 100644 --- a/steamcmd_servers/README.md +++ b/steamcmd_servers/README.md @@ -14,12 +14,12 @@ This is a collection of servers that use SteamCMD to install. * [Arma 3 64 Bit](arma/arma3_x64) * [Arma 3 Headless Client](arma/arma3_headless_client) -## Avorion -[Avorion](avorion) - ## Assetto Corsa [Assetto Corsa](assetto_corsa) +## Avorion +[Avorion](avorion) + ## Barotrauma [Barotrauma](barotrauma) @@ -121,6 +121,6 @@ This is a collection of servers that use SteamCMD to install. [Unturned](unturned) ## Valheim -[Valheim](/valheim) - * [Valheim Vanilla](valheim_vanilla) - * [Valheim Plus Mod](valheim_plus) \ No newline at end of file +[Valheim](valheim) + * [Valheim Vanilla](valheim/valheim_vanilla) + * [Valheim Plus Mod](valheim/valheim_plus) \ No newline at end of file diff --git a/steamcmd_servers/valheim/valheim_plus/README.md b/steamcmd_servers/valheim/valheim_plus/README.md index 1db81152..bf4e054e 100644 --- a/steamcmd_servers/valheim/valheim_plus/README.md +++ b/steamcmd_servers/valheim/valheim_plus/README.md @@ -1,10 +1,10 @@ # 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 Odin’s patronage! 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. Support: https://github.com/valheimPlus/ValheimPlus Discord: https://discord.gg/AmH6Va97GT diff --git a/steamcmd_servers/valheim/valheim_vanilla/README.md b/steamcmd_servers/valheim/valheim_vanilla/README.md index d6cbac74..bc38b1f5 100644 --- a/steamcmd_servers/valheim/valheim_vanilla/README.md +++ b/steamcmd_servers/valheim/valheim_vanilla/README.md @@ -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 Odin’s patronage! https://store.steampowered.com/app/892970/Valheim/ From ebafbf8cb35365e0ad0c792753656098e0678d73 Mon Sep 17 00:00:00 2001 From: TASelwyn <37274951+TASelwyn@users.noreply.github.com> Date: Thu, 18 Mar 2021 12:16:35 -0400 Subject: [PATCH 05/51] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 0f9d759a..6ee82927 100644 --- a/README.md +++ b/README.md @@ -147,8 +147,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 64 Bit](/steamcmd_servers/arma/arma3_x64) * [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) -* [Avorion](/steamcmd_servers/avorion) * [Assetto Corsa](/steamcmd_servers/assetto_corsa) +* [Avorion](/steamcmd_servers/avorion) * [Barotrauma](/steamcmd_servers/barotrauma) * [Citadel: Forged with Fire](/steamcmd_servers/citadel) * [Conan Exiles](/steamcmd_servers/conan_exiles) @@ -203,8 +203,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](/steamcmd_servers/tower_unite) - - [Vintage Story](/vintage_story/vintage_story) [Xonotic](/xonotic/xonotic) From 25128e4000935c46c6fcfee29a6127c26bfb10e6 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:16:28 -0400 Subject: [PATCH 06/51] Organize server files Move into the same folder structure as other servers. Needed for "reasons" --- README.md | 3 +++ leaguesandbox/{ => leaguesandbox}/LeagueSandbox_Egg.json | 0 leaguesandbox/{ => leaguesandbox}/README.md | 0 mindustry/{ => mindustry}/README.md | 0 mindustry/{ => mindustry}/egg-mindustry.json | 0 minetest/{ => minetest}/README.md | 0 minetest/{ => minetest}/egg-minetest.json | 0 7 files changed, 3 insertions(+) rename leaguesandbox/{ => leaguesandbox}/LeagueSandbox_Egg.json (100%) rename leaguesandbox/{ => leaguesandbox}/README.md (100%) rename mindustry/{ => mindustry}/README.md (100%) rename mindustry/{ => mindustry}/egg-mindustry.json (100%) rename minetest/{ => minetest}/README.md (100%) rename minetest/{ => minetest}/egg-minetest.json (100%) diff --git a/README.md b/README.md index 0f9d759a..c03d79cb 100644 --- a/README.md +++ b/README.md @@ -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) [Mindustry](/mindustry) + * [Mindustry](/mindustry/mindustry) [League Sandbox](/leaguesandbox) + * [League Sandbox](/leaguesandbox/leaguesandbox) [Minetest](/minetest) (including MTG) + * [Minetest](/minetest/minetest) [Minecraft](/minecraft) * [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) diff --git a/leaguesandbox/LeagueSandbox_Egg.json b/leaguesandbox/leaguesandbox/LeagueSandbox_Egg.json similarity index 100% rename from leaguesandbox/LeagueSandbox_Egg.json rename to leaguesandbox/leaguesandbox/LeagueSandbox_Egg.json diff --git a/leaguesandbox/README.md b/leaguesandbox/leaguesandbox/README.md similarity index 100% rename from leaguesandbox/README.md rename to leaguesandbox/leaguesandbox/README.md diff --git a/mindustry/README.md b/mindustry/mindustry/README.md similarity index 100% rename from mindustry/README.md rename to mindustry/mindustry/README.md diff --git a/mindustry/egg-mindustry.json b/mindustry/mindustry/egg-mindustry.json similarity index 100% rename from mindustry/egg-mindustry.json rename to mindustry/mindustry/egg-mindustry.json diff --git a/minetest/README.md b/minetest/minetest/README.md similarity index 100% rename from minetest/README.md rename to minetest/minetest/README.md diff --git a/minetest/egg-minetest.json b/minetest/minetest/egg-minetest.json similarity index 100% rename from minetest/egg-minetest.json rename to minetest/minetest/egg-minetest.json From ca3a18a1e5c987bbdcd8ff5eca4b5f0d4ef6450a Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:21:27 -0400 Subject: [PATCH 07/51] Add Deno Generic Egg resolves #1022 --- bots/discord/deno/README.md | 9 +++ bots/discord/deno/egg-deno-generic.json | 86 +++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 bots/discord/deno/README.md create mode 100644 bots/discord/deno/egg-deno-generic.json diff --git a/bots/discord/deno/README.md b/bots/discord/deno/README.md new file mode 100644 index 00000000..70905747 --- /dev/null +++ b/bots/discord/deno/README.md @@ -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. \ No newline at end of file diff --git a/bots/discord/deno/egg-deno-generic.json b/bots/discord/deno/egg-deno-generic.json new file mode 100644 index 00000000..96ef2e8b --- /dev/null +++ b/bots/discord/deno/egg-deno-generic.json @@ -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-29T23:09:55+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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\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" + } + ] +} \ No newline at end of file From 8e378d0ce8250b1b5fd08311f761eb7636421512 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:25:17 -0400 Subject: [PATCH 08/51] Add git cloner script --- scripts/git_cloner.sh | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 scripts/git_cloner.sh diff --git a/scripts/git_cloner.sh b/scripts/git_cloner.sh new file mode 100644 index 00000000..eea0cf42 --- /dev/null +++ b/scripts/git_cloner.sh @@ -0,0 +1,58 @@ +## 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 [[ ! "${USERNAME}" == "" ]]; then + 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 +fi \ No newline at end of file From d97ad2f0390708c7a0502ff422bfbe2c8eca0a72 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:36:25 -0400 Subject: [PATCH 09/51] update generic bot installers update python and nodejs bot eggs. --- .../discord.js/egg-discord-js-generic.json | 74 ++++++++++--------- .../discord.py/egg-discord-py-generic.json | 46 ++++++------ 2 files changed, 62 insertions(+), 58 deletions(-) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index db63abb6..e184d8c2 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -1,18 +1,20 @@ { "_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-08-13T22:04:35-04:00", + "exported_at": "2021-03-29T23:34:14+00:00", "name": "discord.js generic", "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.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", + "features": null, "images": [ "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14", "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "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}}", "config": { "files": "{}", @@ -22,8 +24,8 @@ }, "scripts": { "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", - "container": "node:12-buster-slim", + "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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\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:14-buster-slim", "entrypoint": "bash" } }, @@ -33,26 +35,8 @@ "description": "The GitHub repo to clone and install the discord js bot from.", "env_variable": "INSTALL_REPO", "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:128" - }, - { - "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, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:128" }, { @@ -60,8 +44,8 @@ "description": "The branch of the bot to install.", "env_variable": "INSTALL_BRANCH", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:32" }, { @@ -69,8 +53,8 @@ "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": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|bool" }, { @@ -78,8 +62,8 @@ "description": "Pull the latest files on startup when using a GitHub repo.", "env_variable": "AUTO_UPDATE", "default_value": "0", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|boolean" }, { @@ -87,8 +71,8 @@ "description": "The file that starts the bot.", "env_variable": "BOT_JS_FILE", "default_value": "index.js", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string" }, { @@ -96,9 +80,27 @@ "description": "Install additional node packages.\r\n\r\nUse spaces to separate.", "env_variable": "NODE_PACKAGES", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "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": true, + "user_editable": true, + "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": true, + "user_editable": true, + "rules": "nullable|string|max:128" } ] -} +} \ No newline at end of file diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json index 7a3f3692..41fcecdb 100644 --- a/bots/discord/discord.py/egg-discord-py-generic.json +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -1,18 +1,20 @@ { "_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-09-28T22:35:14-04:00", + "exported_at": "2021-03-29T23:34:50+00:00", "name": "discord.py generic", "author": "parker@parkervcp.com", "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": [ "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", "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 \/home\/container\/packages\/ ${PY_PACKAGES}; fi; if [[ -f \/home\/container\/requirements.txt ]]; then pip install -U --target \/home\/container\/packages\/ -r requirements.txt; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"change this part\"\r\n}", @@ -21,7 +23,7 @@ }, "scripts": { "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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\r\nfi\r\n\r\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "python:3.8-slim", "entrypoint": "bash" } @@ -32,8 +34,8 @@ "description": "The GitHub repo to clone and install the discord py bot from.", "env_variable": "INSTALL_REPO", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:128" }, { @@ -41,8 +43,8 @@ "description": "The branch of the bot to install", "env_variable": "INSTALL_BRANCH", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:32" }, { @@ -50,8 +52,8 @@ "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": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|boolean" }, { @@ -59,8 +61,8 @@ "description": "Pull the latest files on startup when using a GitHub repo.", "env_variable": "AUTO_UPDATE", "default_value": "0", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|boolean" }, { @@ -68,8 +70,8 @@ "description": "The file that starts the bot.", "env_variable": "BOT_PY_FILE", "default_value": "bot.py", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string" }, { @@ -77,8 +79,8 @@ "description": "Install additional python packages.\r\n\r\nUse spaces to separate", "env_variable": "PY_PACKAGES", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string" }, { @@ -86,8 +88,8 @@ "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, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:128" }, { @@ -95,9 +97,9 @@ "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, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:128" } ] -} +} \ No newline at end of file From 942a1eccfbdadba57d82f078fc19ddd491b444b9 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:38:41 -0400 Subject: [PATCH 10/51] update download script fixes a but in the download link script. --- scripts/download_link_validator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/download_link_validator.sh b/scripts/download_link_validator.sh index 10a6d69a..d9d15051 100644 --- a/scripts/download_link_validator.sh +++ b/scripts/download_link_validator.sh @@ -1,6 +1,6 @@ ## 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 echo -e "link is valid. setting download link to ${DOWNLOAD_URL}" DOWNLOAD_LINK=${DOWNLOAD_URL} From 237ae0613dd61bca7162cd2ffd7dfba6a47c2e73 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:41:36 -0400 Subject: [PATCH 11/51] update release_grabber update release grabber to fit right into the download link validation script --- scripts/github_release_grabber.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/github_release_grabber.sh b/scripts/github_release_grabber.sh index 14d4e70e..ccbeba09 100644 --- a/scripts/github_release_grabber.sh +++ b/scripts/github_release_grabber.sh @@ -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 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. +apt update +apt install -y curl jq if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then 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") 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 VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name') 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 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 \ No newline at end of file From 7dfc5ce47173c3ab6bbc5b0076e1d8a05295f57f Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 19:43:40 -0400 Subject: [PATCH 12/51] update file unpacker script update file unpacker script to work with the github release grabber and download validation script --- scripts/file_unpacker.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/file_unpacker.sh b/scripts/file_unpacker.sh index c5d818f5..0389f2e6 100644 --- a/scripts/file_unpacker.sh +++ b/scripts/file_unpacker.sh @@ -3,11 +3,16 @@ ## 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 +apt update +apt install -y curl file unzip + +curl -sSL ${DOWNLOAD_LINK} + FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) if [ "$FILETYPE" == "gzip" ]; then tar xzvf ${DOWNLOAD_LINK##*/} elif [ "$FILETYPE" == "Zip" ]; then - unzip ${DOWNLOAD_LINK##*/} + unzip -o ${DOWNLOAD_LINK##*/} elif [ "$FILETYPE" == "XZ" ]; then tar xvf ${DOWNLOAD_LINK##*/} else From 6b401c77c3c1753c4620e585fee741302b9244da Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 20:33:05 -0400 Subject: [PATCH 13/51] update bot egg variables --- .../discord.js/egg-discord-js-generic.json | 28 ++++++++-------- .../discord.py/egg-discord-py-generic.json | 32 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index e184d8c2..ffd44419 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-29T23:34:14+00:00", + "exported_at": "2021-03-30T00:32:25+00:00", "name": "discord.js generic", "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.", @@ -31,22 +31,22 @@ }, "variables": [ { - "name": "Install Repo", - "description": "The GitHub repo to clone and install the discord js bot from.", - "env_variable": "INSTALL_REPO", + "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|max:128" + "rules": "nullable|string" }, { "name": "Install Branch", "description": "The branch of the bot to install.", - "env_variable": "INSTALL_BRANCH", + "env_variable": "BRANCH", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:32" + "rules": "nullable|string" }, { "name": "User Uploaded Files", @@ -85,22 +85,22 @@ "rules": "nullable|string" }, { - "name": "Username", - "description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.", + "name": "Git Username", + "description": "Username to auth with git.", "env_variable": "USERNAME", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:128" + "rules": "nullable|string" }, { - "name": "Password", - "description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.", - "env_variable": "PASSWORD", + "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|max:128" + "rules": "nullable|string" } ] } \ No newline at end of file diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json index 41fcecdb..f66a70e8 100644 --- a/bots/discord/discord.py/egg-discord-py-generic.json +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-29T23:34:50+00:00", + "exported_at": "2021-03-30T00:32:29+00:00", "name": "discord.py generic", "author": "parker@parkervcp.com", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", @@ -30,22 +30,22 @@ }, "variables": [ { - "name": "Install Repo", - "description": "The GitHub repo to clone and install the discord py bot from.", - "env_variable": "INSTALL_REPO", + "name": "Git Repo Address", + "description": "Git 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|max:128" + "rules": "nullable|string" }, { - "name": "Install Branch", - "description": "The branch of the bot to install", - "env_variable": "INSTALL_BRANCH", + "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|max:32" + "rules": "nullable|string" }, { "name": "User Uploaded Files", @@ -84,22 +84,22 @@ "rules": "nullable|string" }, { - "name": "Username", - "description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.", + "name": "Git Username", + "description": "Username to auth with git.", "env_variable": "USERNAME", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:128" + "rules": "nullable|string" }, { - "name": "Password", - "description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.", - "env_variable": "PASSWORD", + "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|max:128" + "rules": "nullable|string" } ] } \ No newline at end of file From e0f35165d3adfff9978c29bab92d1ab42dbadfb8 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 20:46:24 -0400 Subject: [PATCH 14/51] update clone script missed a part that causes the script to basically fail if a username is not set. --- .../discord.js/egg-discord-js-generic.json | 4 +- .../discord.py/egg-discord-py-generic.json | 4 +- scripts/git_cloner.sh | 52 +++++++++---------- 3 files changed, 29 insertions(+), 31 deletions(-) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index ffd44419..37892969 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-30T00:32:25+00:00", + "exported_at": "2021-03-30T00:45:23+00:00", "name": "discord.js generic", "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.", @@ -24,7 +24,7 @@ }, "scripts": { "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 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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\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", + "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\n## clone git repos\r\n## supports both github and gitlab\r\n## supports using a personal access token to run git pull\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\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:14-buster-slim", "entrypoint": "bash" } diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json index f66a70e8..4148158b 100644 --- a/bots/discord/discord.py/egg-discord-py-generic.json +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-30T00:32:29+00:00", + "exported_at": "2021-03-30T00:45:26+00:00", "name": "discord.py generic", "author": "parker@parkervcp.com", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", @@ -23,7 +23,7 @@ }, "scripts": { "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 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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\r\nfi\r\n\r\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -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\n## clone git repos\r\n## supports both github and gitlab\r\n## supports using a personal access token to run git pull\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\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "python:3.8-slim", "entrypoint": "bash" } diff --git a/scripts/git_cloner.sh b/scripts/git_cloner.sh index eea0cf42..3e5ae00c 100644 --- a/scripts/git_cloner.sh +++ b/scripts/git_cloner.sh @@ -25,34 +25,32 @@ else fi ## pull git js bot repo -if [[ ! "${USERNAME}" == "" ]]; then - 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} . +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 "cloning ${BRANCH}'" - git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} . + 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 \ No newline at end of file From 69813b29df940027b19f52976b43287a867bc666 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 20:49:04 -0400 Subject: [PATCH 15/51] update install script --- bots/discord/deno/egg-deno-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/deno/egg-deno-generic.json b/bots/discord/deno/egg-deno-generic.json index 96ef2e8b..f42053d8 100644 --- a/bots/discord/deno/egg-deno-generic.json +++ b/bots/discord/deno/egg-deno-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-29T23:09:55+00:00", + "exported_at": "2021-03-30T00:48:40+00:00", "name": "Deno Generic", "author": "parker@parkervcp.com", "description": "A generic egg to run deno code.", @@ -22,7 +22,7 @@ }, "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 [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [ \"$(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\n else\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\n fi\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", + "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" } From 6a5945fd0965fff30d8db8b03f8be9e05ce33aae Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 21:41:16 -0400 Subject: [PATCH 16/51] update scripts --- scripts/git_cloner.sh | 1 - scripts/steamcmd_installer.sh | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/git_cloner.sh b/scripts/git_cloner.sh index 3e5ae00c..098fd050 100644 --- a/scripts/git_cloner.sh +++ b/scripts/git_cloner.sh @@ -52,5 +52,4 @@ else echo -e "cloning ${BRANCH}'" git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} . fi - fi \ No newline at end of file diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh index 7742daa9..206567da 100644 --- a/scripts/steamcmd_installer.sh +++ b/scripts/steamcmd_installer.sh @@ -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. # 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 -# 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 ## 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 "Using anonymous user.\n" STEAM_USER=anonymous @@ -41,7 +41,7 @@ chown -R root:root /mnt export HOME=/mnt/server ## 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 mkdir -p /mnt/server/.steam/sdk32 From 4811c2b2cedb1511c0229c713e79fb5ee3a6569b Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 21:43:08 -0400 Subject: [PATCH 17/51] update discordpy install script --- bots/discord/discord.py/egg-discord-py-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json index 4148158b..5cba54c2 100644 --- a/bots/discord/discord.py/egg-discord-py-generic.json +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-30T00:45:26+00:00", + "exported_at": "2021-03-30T01:42:10+00:00", "name": "discord.py generic", "author": "parker@parkervcp.com", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", @@ -23,7 +23,7 @@ }, "scripts": { "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 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\n## clone git repos\r\n## supports both github and gitlab\r\n## supports using a personal access token to run git pull\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\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -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\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "python:3.8-slim", "entrypoint": "bash" } From 220ef0abf12781e19934490c4abd6eb4166cf3ba Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 21:48:22 -0400 Subject: [PATCH 18/51] update nodejs install script --- bots/discord/discord.js/egg-discord-js-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index 37892969..4fb3cb89 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-30T00:45:23+00:00", + "exported_at": "2021-03-30T01:47:36+00:00", "name": "discord.js generic", "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.", @@ -24,7 +24,7 @@ }, "scripts": { "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 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\n## clone git repos\r\n## supports both github and gitlab\r\n## supports using a personal access token to run git pull\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\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", + "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:14-buster-slim", "entrypoint": "bash" } From 95a65646f8cd36b28470d2ad457dd27fae6755b4 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 29 Mar 2021 22:13:10 -0400 Subject: [PATCH 19/51] add luvit generic --- bots/discord/lua/luvit/README.md | 7 ++ bots/discord/lua/luvit/egg-luvit-generic.json | 95 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 bots/discord/lua/luvit/README.md create mode 100644 bots/discord/lua/luvit/egg-luvit-generic.json diff --git a/bots/discord/lua/luvit/README.md b/bots/discord/lua/luvit/README.md new file mode 100644 index 00000000..8c51a6c3 --- /dev/null +++ b/bots/discord/lua/luvit/README.md @@ -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. \ No newline at end of file diff --git a/bots/discord/lua/luvit/egg-luvit-generic.json b/bots/discord/lua/luvit/egg-luvit-generic.json new file mode 100644 index 00000000..ecdb6564 --- /dev/null +++ b/bots/discord/lua/luvit/egg-luvit-generic.json @@ -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" + } + ] +} \ No newline at end of file From 79091ce6f0ebb3779a5151eefbde30f325f3a362 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 31 Mar 2021 19:12:23 -0400 Subject: [PATCH 20/51] update python generic install installs python packages into the standard `.local/lib/python3.8/site-packages` updates install script to user new site-packages and configurable requirements.txt file name. Resolves #1002 --- .../discord.py/egg-discord-py-generic.json | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json index 5cba54c2..21a5eb7a 100644 --- a/bots/discord/discord.py/egg-discord-py-generic.json +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-03-30T01:42:10+00:00", + "exported_at": "2021-03-31T23:08:12+00:00", "name": "discord.py generic", "author": "parker@parkervcp.com", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", @@ -14,7 +14,7 @@ "quay.io\/parkervcp\/pterodactyl-images:debian_python-2.7" ], "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${PY_PACKAGES} ]]; then pip install -U --target \/home\/container\/packages\/ ${PY_PACKAGES}; fi; if [[ -f \/home\/container\/requirements.txt ]]; then pip install -U --target \/home\/container\/packages\/ -r requirements.txt; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}", + "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": { "files": "{}", "startup": "{\r\n \"done\": \"change this part\"\r\n}", @@ -23,7 +23,7 @@ }, "scripts": { "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 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\nmkdir \/mnt\/server\/packages\/\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/packages\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/packages\/ -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", "entrypoint": "bash" } @@ -100,6 +100,15 @@ "user_viewable": true, "user_editable": true, "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" } ] } \ No newline at end of file From dc4a321bde1ae77841c3be31c995af66c94c9bc1 Mon Sep 17 00:00:00 2001 From: Sneaky <78713939+SneakyHub@users.noreply.github.com> Date: Sun, 4 Apr 2021 12:03:30 +0100 Subject: [PATCH 21/51] Create egg-discord-java.json Added a basic java egg that allows people to run java discord bots ( or other java applications ) supports java 11. --- .../discord java/egg-discord-java.json | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 bots/discord/discord java/egg-discord-java.json diff --git a/bots/discord/discord java/egg-discord-java.json b/bots/discord/discord java/egg-discord-java.json new file mode 100644 index 00000000..b9c1e760 --- /dev/null +++ b/bots/discord/discord java/egg-discord-java.json @@ -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" + } + ] +} \ No newline at end of file From ce1fae29fb0af07584c82888ac450141413153c0 Mon Sep 17 00:00:00 2001 From: TASelwyn <37274951+TASelwyn@users.noreply.github.com> Date: Sun, 4 Apr 2021 15:30:00 -0400 Subject: [PATCH 22/51] proxy egg readme cleanup/fixes Updates waterdog's github link to the current repo Alphabetically orders the java proxies list Adds the more descriptive description to typhoon limbo's readme. Removed all traces of "DragonProxy" as it's completely abandoned --- README.md | 1 - minecraft/proxy/README.md | 1 - minecraft/proxy/cross_platform/README.md | 6 +++--- minecraft/proxy/java/README.md | 15 ++++++++------- minecraft/proxy/java/typhoonlimbo/README.md | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c03d79cb..e41675f1 100644 --- a/README.md +++ b/README.md @@ -133,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) * [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [Waterdog](/minecraft/proxy/cross_platform/waterdog) - * DragonProxy abandoned in favour of GeyserMC. [OpenRA](/openra) * [OpenRA Dune2000](/openra/openra_dune2000) diff --git a/minecraft/proxy/README.md b/minecraft/proxy/README.md index b5bfa102..65b474d7 100644 --- a/minecraft/proxy/README.md +++ b/minecraft/proxy/README.md @@ -8,4 +8,3 @@ * [Cross Platform](/minecraft/proxy/cross_platform) * [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [Waterdog](/minecraft/proxy/cross_platform/waterdog) - * DragonProxy abandoned in favour of GeyserMC. diff --git a/minecraft/proxy/cross_platform/README.md b/minecraft/proxy/cross_platform/README.md index 51553d00..39a88343 100644 --- a/minecraft/proxy/cross_platform/README.md +++ b/minecraft/proxy/cross_platform/README.md @@ -1,13 +1,13 @@ # Mineraft Cross Platform Proxies ### 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. -#### Waterdog -[Waterdog](https://github.com/yesdog/Waterdog) +### 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. diff --git a/minecraft/proxy/java/README.md b/minecraft/proxy/java/README.md index 920b9918..22f93fb7 100644 --- a/minecraft/proxy/java/README.md +++ b/minecraft/proxy/java/README.md @@ -1,17 +1,18 @@ # 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](https://papermc.io/downloads#Travertine) 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](https://velocitypowered.com/) +[Velocity](https://velocitypowered.com) Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility. -#### Typhoonlimbo -[TyphoonLimbo](https://github.com/TyphoonMC/TyphoonLimbo) -Lightweight Minecraft limbo server +#### Waterfall +[Waterfall](https://papermc.io/downloads#Waterfall) +Paper fork of the BungeeCord software, with improved Forge support and more features. \ No newline at end of file diff --git a/minecraft/proxy/java/typhoonlimbo/README.md b/minecraft/proxy/java/typhoonlimbo/README.md index 697210e2..54e7d22d 100644 --- a/minecraft/proxy/java/typhoonlimbo/README.md +++ b/minecraft/proxy/java/typhoonlimbo/README.md @@ -1,5 +1,5 @@ # 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 The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. From d3fed1037fa0ce866a719ab733e86a640408f229 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Apr 2021 08:53:09 +0300 Subject: [PATCH 23/51] add chmod and fix cp typo --- minecraft/bedrock/bedrock/egg-vanilla-bedrock.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json index c0f53a63..f62fd629 100644 --- a/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json +++ b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json @@ -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": "2020-12-01T21:01:12-05:00", + "exported_at": "2021-04-07T08:52:12+03:00", "name": "Vanilla Bedrock", "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\".", "features": null, - "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], "startup": ".\/bedrock_server", "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}", @@ -18,7 +22,7 @@ }, "scripts": { "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 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 whitelist.json\r\nchmod +x bedrock_server\r\n\r\necho -e \"Done\"", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -79,4 +83,4 @@ "rules": "required|string|in:true,false" } ] -} \ No newline at end of file +} From fdb827cab445dbce2aea24e19ecc820d391ddb5a Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Apr 2021 08:57:36 +0300 Subject: [PATCH 24/51] fix second whitelist typo --- minecraft/bedrock/bedrock/egg-vanilla-bedrock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json index f62fd629..c14216e1 100644 --- a/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json +++ b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-04-07T08:52:12+03:00", + "exported_at": "2021-04-07T08:57:04+03:00", "name": "Vanilla Bedrock", "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\".", @@ -22,7 +22,7 @@ }, "scripts": { "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 whitelist.json\r\nchmod +x bedrock_server\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", "entrypoint": "bash" } From 3b06e830cc951624e3a2284c7e50c1d8e64f094c Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 7 Apr 2021 10:35:06 +0300 Subject: [PATCH 25/51] update to match the new gomint release type --- minecraft/bedrock/gomint/egg-go-mint.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/minecraft/bedrock/gomint/egg-go-mint.json b/minecraft/bedrock/gomint/egg-go-mint.json index 21051f86..0ed158b5 100644 --- a/minecraft/bedrock/gomint/egg-go-mint.json +++ b/minecraft/bedrock/gomint/egg-go-mint.json @@ -1,24 +1,28 @@ { "_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-12T16:14:47+00:00", + "exported_at": "2021-04-07T10:33:24+03:00", "name": "GoMint", "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.", "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", "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}", - "startup": "{\r\n \"done\":\"Done in \"\r\n}", + "startup": "{\r\n \"done\": \"Done in \"\r\n}", "logs": "{}", "stop": "stop" }, "scripts": { "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", "entrypoint": "bash" } From b443f87d3413cb7ef3160bef72a1a058f8de5005 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 9 Apr 2021 18:43:23 -0400 Subject: [PATCH 26/51] update openttd resolves #1084 update install script to extra data.tar.* so it works with both xz and gz --- .../openttd/egg-open-t-t-d-server.json | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/tycoon_games/openttd/egg-open-t-t-d-server.json b/tycoon_games/openttd/egg-open-t-t-d-server.json index c2b4f8a0..e2d8525d 100644 --- a/tycoon_games/openttd/egg-open-t-t-d-server.json +++ b/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -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-01-30T20:47:45-05:00", + "exported_at": "2021-04-09T22:41:49+00:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", - "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu" + ], + "file_denylist": [], "startup": ".\/openttd -D", "config": { "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\"\r\n }\r\n }\r\n}", @@ -17,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", + "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.*\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", "container": "alpine:3.10", "entrypoint": "ash" } @@ -28,8 +33,8 @@ "description": "The name shown in the serverlist", "env_variable": "srv_name", "default_value": "OpenTTD Server", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:20" }, { @@ -37,8 +42,8 @@ "description": "Show the server in the serverlist on the client, true or false", "env_variable": "srv_advertise", "default_value": "true", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:5" }, { @@ -46,8 +51,8 @@ "description": "The version of OpenTTD i.e. 1.10.1", "env_variable": "OPENTTD_VERSION", "default_value": "1.10.1", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|string|max:20" }, { @@ -55,8 +60,8 @@ "description": "The OpenGFX Version i.e. 0.6.0", "env_variable": "OPENGFX_VERSION", "default_value": "0.6.0", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|string|max:20" } ] From ae8c2f4c6d4653cd1117a1e99db2486e7f75d856 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 11 Apr 2021 13:57:17 +0200 Subject: [PATCH 27/51] Fix Github URL --- voice_servers/lavalink/egg-lavalink.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/voice_servers/lavalink/egg-lavalink.json b/voice_servers/lavalink/egg-lavalink.json index a8983d69..29b3a673 100644 --- a/voice_servers/lavalink/egg-lavalink.json +++ b/voice_servers/lavalink/egg-lavalink.json @@ -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-11T13:25:55-07:00", + "exported_at": "2021-04-11T13:56:42+02:00", "name": "Lavalink", "author": "damuffin36@gmail.com", "description": "Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/Frederikam\/Lavalink", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13" + ], + "file_denylist": [], "startup": "java -jar Lavalink.jar", "config": { "files": "{\r\n \"application.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"server.address\": \"0.0.0.0\",\r\n \"server.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -17,10 +22,10 @@ }, "scripts": { "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 curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/frederikam\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/Frederikam\/Lavalink\/master\/LavalinkServer\/application.yml.example\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\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/freyacodes\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [] -} +} \ No newline at end of file From 1dc29809f44eb9df1241f88c5280694fc01922b0 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 11 Apr 2021 09:18:19 -0400 Subject: [PATCH 28/51] update latest openttd version --- tycoon_games/openttd/egg-open-t-t-d-server.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tycoon_games/openttd/egg-open-t-t-d-server.json b/tycoon_games/openttd/egg-open-t-t-d-server.json index e2d8525d..57285be8 100644 --- a/tycoon_games/openttd/egg-open-t-t-d-server.json +++ b/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-04-09T22:41:49+00:00", + "exported_at": "2021-04-11T13:17:20+00:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", @@ -50,7 +50,7 @@ "name": "OpenTTD Version", "description": "The version of OpenTTD i.e. 1.10.1", "env_variable": "OPENTTD_VERSION", - "default_value": "1.10.1", + "default_value": "1.11.0", "user_viewable": true, "user_editable": false, "rules": "required|string|max:20" @@ -59,7 +59,7 @@ "name": "OpenGFX Version", "description": "The OpenGFX Version i.e. 0.6.0", "env_variable": "OPENGFX_VERSION", - "default_value": "0.6.0", + "default_value": "0.6.1", "user_viewable": true, "user_editable": false, "rules": "required|string|max:20" From eb4ee0a536f5aa233542e41f395f17d2289772a3 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 12 Apr 2021 09:05:30 -0400 Subject: [PATCH 29/51] update tekkit install script Add `L` flag to the curl command so it will follow the redirect. fixes the issue called out by #1093 --- minecraft/java/technic/Tekkit/egg-tekkit.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/minecraft/java/technic/Tekkit/egg-tekkit.json b/minecraft/java/technic/Tekkit/egg-tekkit.json index a7052b26..41ae833b 100644 --- a/minecraft/java/technic/Tekkit/egg-tekkit.json +++ b/minecraft/java/technic/Tekkit/egg-tekkit.json @@ -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-09-08T08:25:54+02:00", + "exported_at": "2021-04-12T13:03:41+00:00", "name": "Tekkit", "author": "contact@zennodes.dk", "description": "Tekkit is set to reignite the same sort of wonder and awe that we all received from booting up Minecraft for the first time. With the skies open, the moon ready to be colonized (by force if need be) and dimensional mysteries to be plied, with tesseracts to be networked, \u201cmeat\u201d to be processed, items to be digitized, and power suits to be manufactured, there is virtually limitless engineering projects to be assembled.", - "image": "quay.io\/pterodactyl\/core:java", + "features": null, + "images": [ + "quay.io\/pterodactyl\/core:java" + ], + "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Tekkit.jar", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -17,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sS http:\/\/servers.technicpack.net\/Technic\/servers\/tekkitmain\/Tekkit_Server_$MODPACK_VERSION.zip -o Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nunzip Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm -rf Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm launch.bat\r\n\r\nrm launch.sh\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi", + "script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sSL http:\/\/servers.technicpack.net\/Technic\/servers\/tekkitmain\/Tekkit_Server_$MODPACK_VERSION.zip -o Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nunzip Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm -rf Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm launch.bat\r\n\r\nrm launch.sh\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi", "container": "alpine:3.9", "entrypoint": "ash" } @@ -28,8 +33,8 @@ "description": "", "env_variable": "MODPACK_VERSION", "default_value": "v1.2.9g-2", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:20" } ] From 91c0f570fd6afe1928778cffbccc6cbd88d14ea8 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 12 Apr 2021 21:24:52 -0400 Subject: [PATCH 30/51] Add veloren resolves #1068 --- README.md | 2 ++ veloren/README.md | 15 +++++++++++++++ veloren/egg-veloren.json | 31 +++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 veloren/README.md create mode 100644 veloren/egg-veloren.json diff --git a/README.md b/README.md index 481e4e0d..f7477030 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,8 @@ 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](/steamcmd_servers/tower_unite) +[Veloren](/veloren/veloren) + [Vintage Story](/vintage_story/vintage_story) [Xonotic](/xonotic/xonotic) diff --git a/veloren/README.md b/veloren/README.md new file mode 100644 index 00000000..18f0040e --- /dev/null +++ b/veloren/README.md @@ -0,0 +1,15 @@ +# Veloren +### From their [Site](https://veloren.net/) +Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft. + +Veloren is fully open-source, licensed under GPL 3. It uses original graphics, musics and other assets created by its community. Being contributor-driven, its development community and user community is one and the same: developers, players, artists and musicians come together to develop the game. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 14004 | +| Metrics | 14005 | + +#### Mods/Plugins may require ports to be added to the server. diff --git a/veloren/egg-veloren.json b/veloren/egg-veloren.json new file mode 100644 index 00000000..07da8bd1 --- /dev/null +++ b/veloren/egg-veloren.json @@ -0,0 +1,31 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-04-13T01:15:42+00:00", + "name": "Veloren", + "author": "parker@parkervcp.com", + "description": "Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/veloren-server-cli -b", + "config": { + "files": "{}", + "startup": "{}", + "logs": "{}", + "stop": "shutdown 10" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git-lfs\r\n\r\nmkdir -p \/mnt\/server\/assets\r\n\r\ncd \/tmp.\r\n\r\ngit clone https:\/\/gitlab.com\/veloren\/veloren.git\r\n\r\n## build veloran server cli\r\nexport VELOREN_USERDATA_STRATEGY=executable\r\ncd veloren\r\necho -e \"building veloran server, this is gonna take a bit\" \r\ncargo build --bin veloren-server-cli --release\r\n\r\ncp -f target\/release\/veloren-server-cli \/mnt\/server\/\r\ncp -Rf assets\/{common,server,world} \/mnt\/server\/assets\/\r\n\r\necho -e \"install complete\"", + "container": "rust:slim-buster", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file From 96251f58d042d1770a1a718ab821e4a22baf5c99 Mon Sep 17 00:00:00 2001 From: M1DN1GHT01 Date: Sat, 17 Apr 2021 16:24:11 -0400 Subject: [PATCH 31/51] Create beammp.json --- beammp/beammp/beammp.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 beammp/beammp/beammp.json diff --git a/beammp/beammp/beammp.json b/beammp/beammp/beammp.json new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/beammp/beammp/beammp.json @@ -0,0 +1 @@ + From eaee725f6447be41bc341836a153883f1a1cb6f8 Mon Sep 17 00:00:00 2001 From: M1DN1GHT01 Date: Sat, 17 Apr 2021 16:24:24 -0400 Subject: [PATCH 32/51] Update beammp.json --- beammp/beammp/beammp.json | 60 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/beammp/beammp/beammp.json b/beammp/beammp/beammp.json index 8b137891..0837acd6 100644 --- a/beammp/beammp/beammp.json +++ b/beammp/beammp/beammp.json @@ -1 +1,59 @@ - +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-04-17T15:17:54-04:00", + "name": "BeamMP Servers", + "author": "noah@noahserver.online", + "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point throug which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/BeamMP-Server", + "config": { + "files": "{\r\n \"Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers = {{server.build.env.MAX_PLAYER}}\",\r\n \"Port\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTH}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "cd \/mnt\/server\r\n\r\nrm -f BeamMP-Server\r\n\r\napt update -y\r\napt install -y curl\r\ncurl -LJO https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases\/download\/${VERSION}\/BeamMP-Server-linux\r\nmv BeamMP-Server-linux BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\necho \"# This is the BeamMP Server Configuration File v0.60\r\nDebug = false # true or false to enable debug console output\r\nPrivate = true # Private?\r\nPort = 30814 # Port to run the server on UDP and TCP\r\nCars = 1 # Max cars for every player\r\nMaxPlayers = 10 # Maximum Amount of Clients\r\nMap = \\\"\/levels\/gridmap\/info.json\\\" # Default Map\r\nName = \\\"BeamMP New Server\\\" # Server Name\r\nDesc = \\\"BeamMP Default Description\\\" # Server Description\r\nuse = \\\"Resources\\\" # Resource file name\r\nAuthKey = \\\"\\\" # Auth Key\" > Server.cfg", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "Github Server Version, to see all versions visit https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases", + "env_variable": "VERSION", + "default_value": "v2.0.3", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:32" + }, + { + "name": "Authentication Key", + "description": "BeamMP Server Key (https:\/\/beamng-mp.com\/k\/keys)", + "env_variable": "AUTH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50" + }, + { + "name": "Max Players", + "description": "The maximum number of allowed players", + "env_variable": "MAX_PLAYER", + "default_value": "6", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32" + } + ] +} From 2b82cad842fd585a87c9b334f986984200ec8e1a Mon Sep 17 00:00:00 2001 From: M1DN1GHT01 Date: Sat, 17 Apr 2021 16:24:42 -0400 Subject: [PATCH 33/51] Main ReadMe --- beammp/beammp/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 beammp/beammp/README.md diff --git a/beammp/beammp/README.md b/beammp/beammp/README.md new file mode 100644 index 00000000..8683aa95 --- /dev/null +++ b/beammp/beammp/README.md @@ -0,0 +1,20 @@ +BeamMP & BeamNG + +BeamNG.drive is a vehicle simulation video game developed and published by Bremen-based video game developer BeamNG GmbH. The game features soft-body physics, which simulates realistic handling and damage to vehicles. + +Recommended server settings + +Minimum RAM can be aeound 2-4 gb, these server run lightly so you can even use older cpus if you would like. Disk space should be 10 gb atleast. + +Adding Mods + +Vehicle mods and map mods are different to install, but both require you to put them in your server's (Resources\Client) folder. Simply slide any mod you want to add in that folder. If you only wanted to add modded vehicles. Your vehicles should now get downloaded and installed automatically for anyone joining your server. + +Licenses + +BeamMP Servers to require you to get a license which you will see in the egg licensce variable upon creating the server. + +Server Ports + +Port default Game 30814 + From f6b13e29917fcbeceba68ba1511f119aae1e1089 Mon Sep 17 00:00:00 2001 From: M1DN1GHT01 Date: Sat, 17 Apr 2021 16:26:44 -0400 Subject: [PATCH 34/51] Added BeamMP --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 481e4e0d..78208cc4 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Impostor Server](/among_us/impostor_server) * [CrewLink Server](/among_us/crewlink_server) +* [BeamMP Server](/beammp/beammp) + [Cryofall](/cryofall/cryofall) [ET Legacy](/enemy_territory/etlegacy) @@ -215,4 +217,4 @@ If you are reading this it looks like you are looking to add an egg to your serv ## [Software](/software/) ### Code Server -* [Code-Server](/software/code-server) \ No newline at end of file +* [Code-Server](/software/code-server) From 0f862fb86b68c0b6925c12f171a97569f253bc08 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 21 Apr 2021 23:03:49 +0300 Subject: [PATCH 35/51] fix urls --- minecraft/java/forge/forge/egg-forge-enhanced.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/minecraft/java/forge/forge/egg-forge-enhanced.json b/minecraft/java/forge/forge/egg-forge-enhanced.json index 1386a760..7092081e 100644 --- a/minecraft/java/forge/forge/egg-forge-enhanced.json +++ b/minecraft/java/forge/forge/egg-forge-enhanced.json @@ -1,18 +1,21 @@ { "_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-06T19:03:10-08:00", + "exported_at": "2021-04-21T23:01:35+03:00", "name": "Forge Enhanced", "author": "parker@parkervcp.com", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", - "features": ["eula"], - "image": "quay.io\/pterodactyl\/core:java", + "features": [ + "eula" + ], "images": [ "quay.io\/pterodactyl\/core:java", "quay.io\/pterodactyl\/core:java-11" ], + "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -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 \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -22,7 +25,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${FORGE_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\r\n FORGE_JAR=forge-${FORGE_VERSION}*.jar\r\nelse\r\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\n if [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n \tBUILD_TYPE=recommended\r\n fi\r\n\r\n if [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\n fi\r\n\r\n echo -e \"minecraft version: ${MC_VERSION}\"\r\n echo -e \"build type: ${BUILD_TYPE}\"\r\n\r\n ## some variables for getting versions and things\r\n FILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage' | sed \"s\/http:\/https:\/g\")\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n ## locating the forge version\r\n if [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\n fi\r\n\r\n ## Error if the mc version set wasn't valid.\r\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n \techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n \texit 1\r\n fi\r\n\r\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\n else\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\n fi\r\nfi\r\n\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link closing out\"\r\n exit 3\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${FORGE_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\r\n FORGE_JAR=forge-${FORGE_VERSION}*.jar\r\nelse\r\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\n if [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n \tBUILD_TYPE=recommended\r\n fi\r\n\r\n if [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\n fi\r\n\r\n echo -e \"minecraft version: ${MC_VERSION}\"\r\n echo -e \"build type: ${BUILD_TYPE}\"\r\n\r\n ## some variables for getting versions and things\r\n\tFILE_SITE=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n ## locating the forge version\r\n if [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\n fi\r\n\r\n ## Error if the mc version set wasn't valid.\r\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n \techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n \texit 1\r\n fi\r\n\r\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\n else\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\n fi\r\nfi\r\n\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link closing out\"\r\n exit 3\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 8dffb69dccfe0cda6f6bfc1806fc3d77559687d9 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 23 Apr 2021 13:35:56 -0400 Subject: [PATCH 36/51] add base openarena egg resolves #1105 --- README.md | 5 ++- openarena/openarena/README.md | 12 ++++++++ openarena/openarena/egg-open-arena.json | 41 +++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 openarena/openarena/README.md create mode 100644 openarena/openarena/egg-open-arena.json diff --git a/README.md b/README.md index 78208cc4..5b76641f 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Cross Platform](/minecraft/proxy/cross_platform) * [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [Waterdog](/minecraft/proxy/cross_platform/waterdog) - + +[OpenArena](/openarena) + * [openarena](/openarena/openarena) + [OpenRA](/openra) * [OpenRA Dune2000](/openra/openra_dune2000) * [OpenRA Red Alert](/openra/openra_red_alert) diff --git a/openarena/openarena/README.md b/openarena/openarena/README.md new file mode 100644 index 00000000..269abf84 --- /dev/null +++ b/openarena/openarena/README.md @@ -0,0 +1,12 @@ +# OpenArena +### From their [site](http://www.openarena.ws) +OpenArena is a community-produced deathmatch FPS based on GPL idTech3 technology. + +There are many game types supported including Free For All, Capture The Flag, Domination, Overload, Harvester, and more. + +### Server Ports +| Port | default | +|---------|---------| +| Game | 27960 | + +#### Mods/Plugins may require ports to be added to the server. diff --git a/openarena/openarena/egg-open-arena.json b/openarena/openarena/egg-open-arena.json new file mode 100644 index 00000000..2376c0e5 --- /dev/null +++ b/openarena/openarena/egg-open-arena.json @@ -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-23T17:30:07+00:00", + "name": "OpenArena", + "author": "parker@parkervcp.com", + "description": "OpenArena is a community-produced deathmatch FPS based on GPL idTech3 technology.\r\n\r\nhttp:\/\/www.openarena.ws\/", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/oa_ded.x86_64 +set net_port {{SERVER_PORT}} +map {{GAME_MAP}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"AAS initialized\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# dirty install script for openarena\r\n# will get updated more later\r\n\r\napt update -y\r\napt install -y wget unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n\tmkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nwget http:\/\/www.openarena.ws\/request.php?4 -O openarena.zip\r\n\r\nunzip -o openarena.zip openarena-*\/oa_ded.x86_64 openarena-*\/missionpack\/* openarena-*\/baseoa\/*\r\n\r\nmv -f openarena-*\/* \/mnt\/server\/\r\n\r\nrm -rf openarena-*\/ openarena.zip", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game Map", + "description": "The map to load when the server starts.\r\nSee here for all maps available by default - https:\/\/openarena.fandom.com\/wiki\/Maps", + "env_variable": "GAME_MAP", + "default_value": "aggressor", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + } + ] +} \ No newline at end of file From 7bf3e4f055eb443a5d412bdc18d207dc1588c35b Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 23 Apr 2021 16:17:16 -0400 Subject: [PATCH 37/51] adding settings.ron for veloren because reasons. --- veloren/settings.ron | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 veloren/settings.ron diff --git a/veloren/settings.ron b/veloren/settings.ron new file mode 100644 index 00000000..7d59fda2 --- /dev/null +++ b/veloren/settings.ron @@ -0,0 +1,20 @@ +( + gameserver_address: "0.0.0.0:14004", + metrics_address: "0.0.0.0:14005", + auth_server_address: Some("https://auth.veloren.net"), + max_players: 100, + world_seed: 25269, + server_name: "Veloren Alpha", + start_time: 32400, + map_file: None, + max_view_distance: Some(65), + banned_words_files: [], + max_player_group_size: 6, + client_timeout: ( + secs: 40, + nanos: 0, + ), + spawn_town: None, + safe_spawn: true, + max_player_for_kill_broadcast: None, +) \ No newline at end of file From f8d09244b8affe3d077810aa1671d0516ee5e38e Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 12 Apr 2021 21:24:52 -0400 Subject: [PATCH 38/51] Add veloren resolves #1068 --- README.md | 2 ++ veloren/README.md | 15 +++++++++++++++ veloren/egg-veloren.json | 31 +++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 veloren/README.md create mode 100644 veloren/egg-veloren.json diff --git a/README.md b/README.md index 78208cc4..cb93cb69 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,8 @@ 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](/steamcmd_servers/tower_unite) +[Veloren](/veloren/veloren) + [Vintage Story](/vintage_story/vintage_story) [Xonotic](/xonotic/xonotic) diff --git a/veloren/README.md b/veloren/README.md new file mode 100644 index 00000000..18f0040e --- /dev/null +++ b/veloren/README.md @@ -0,0 +1,15 @@ +# Veloren +### From their [Site](https://veloren.net/) +Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft. + +Veloren is fully open-source, licensed under GPL 3. It uses original graphics, musics and other assets created by its community. Being contributor-driven, its development community and user community is one and the same: developers, players, artists and musicians come together to develop the game. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 14004 | +| Metrics | 14005 | + +#### Mods/Plugins may require ports to be added to the server. diff --git a/veloren/egg-veloren.json b/veloren/egg-veloren.json new file mode 100644 index 00000000..07da8bd1 --- /dev/null +++ b/veloren/egg-veloren.json @@ -0,0 +1,31 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-04-13T01:15:42+00:00", + "name": "Veloren", + "author": "parker@parkervcp.com", + "description": "Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/veloren-server-cli -b", + "config": { + "files": "{}", + "startup": "{}", + "logs": "{}", + "stop": "shutdown 10" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git-lfs\r\n\r\nmkdir -p \/mnt\/server\/assets\r\n\r\ncd \/tmp.\r\n\r\ngit clone https:\/\/gitlab.com\/veloren\/veloren.git\r\n\r\n## build veloran server cli\r\nexport VELOREN_USERDATA_STRATEGY=executable\r\ncd veloren\r\necho -e \"building veloran server, this is gonna take a bit\" \r\ncargo build --bin veloren-server-cli --release\r\n\r\ncp -f target\/release\/veloren-server-cli \/mnt\/server\/\r\ncp -Rf assets\/{common,server,world} \/mnt\/server\/assets\/\r\n\r\necho -e \"install complete\"", + "container": "rust:slim-buster", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file From 6b192a4404fece8ab01995c31948e207ee89774c Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 23 Apr 2021 18:44:33 -0400 Subject: [PATCH 39/51] update veloren for settings --- veloren/egg-veloren.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/veloren/egg-veloren.json b/veloren/egg-veloren.json index 07da8bd1..c8ac03c0 100644 --- a/veloren/egg-veloren.json +++ b/veloren/egg-veloren.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-04-13T01:15:42+00:00", + "exported_at": "2021-04-23T22:44:14+00:00", "name": "Veloren", "author": "parker@parkervcp.com", "description": "Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.", @@ -15,14 +15,14 @@ "file_denylist": [], "startup": ".\/veloren-server-cli -b", "config": { - "files": "{}", - "startup": "{}", + "files": "{\r\n \"userdata\/server\/server_config\/settings.ron\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" gameserver_address\": \" gameserver_address: \\\"0.0.0.0:{{server.build.default.port}}\\\",\",\r\n\t \" server_name\": \" server_name: \\\"{{server.build.env.SERVER_NAME}}\\\",\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server is ready to accept connections\"\r\n}", "logs": "{}", "stop": "shutdown 10" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git-lfs\r\n\r\nmkdir -p \/mnt\/server\/assets\r\n\r\ncd \/tmp.\r\n\r\ngit clone https:\/\/gitlab.com\/veloren\/veloren.git\r\n\r\n## build veloran server cli\r\nexport VELOREN_USERDATA_STRATEGY=executable\r\ncd veloren\r\necho -e \"building veloran server, this is gonna take a bit\" \r\ncargo build --bin veloren-server-cli --release\r\n\r\ncp -f target\/release\/veloren-server-cli \/mnt\/server\/\r\ncp -Rf assets\/{common,server,world} \/mnt\/server\/assets\/\r\n\r\necho -e \"install complete\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git-lfs\r\n\r\nmkdir -p \/mnt\/server\/assets\r\n\r\ncd \/tmp.\r\n\r\ngit clone https:\/\/gitlab.com\/veloren\/veloren.git\r\n\r\n## build veloran server cli\r\nexport VELOREN_USERDATA_STRATEGY=executable\r\ncd veloren\r\necho -e \"building veloran server, this is gonna take a bit\" \r\ncargo build --bin veloren-server-cli --release\r\n\r\ncp -f target\/release\/veloren-server-cli \/mnt\/server\/\r\ncp -Rf assets\/{common,server,world} \/mnt\/server\/assets\/\r\n\r\n## get config from repo because there is no better way to get it.\r\nmkdir -p \/mnt\/server\/userdata\/server\/server_config\/\r\nif [ ! -f \/mnt\/server\/userdata\/server\/server_config\/settings.ron ]; then\r\n echo -e \"getting default config from git repo\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/veloren\/settings.ron > \/mnt\/server\/userdata\/server\/server_config\/settings.ron\r\n echo -e \"config pulled\"\r\nfi\r\n\r\necho -e \"install complete\"", "container": "rust:slim-buster", "entrypoint": "bash" } From cff67ff70496c8bf48758a436c862faf1ad1f34c Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 24 Apr 2021 04:46:59 +0300 Subject: [PATCH 40/51] Fix annoying config parsing --- .../killing_floor_2/egg-killing-floor2.json | 65 ++++++++++--------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/steamcmd_servers/killing_floor_2/egg-killing-floor2.json b/steamcmd_servers/killing_floor_2/egg-killing-floor2.json index db7838bf..e7072f68 100644 --- a/steamcmd_servers/killing_floor_2/egg-killing-floor2.json +++ b/steamcmd_servers/killing_floor_2/egg-killing-floor2.json @@ -1,23 +1,28 @@ { "_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-07-12T20:06:39-04:00", + "exported_at": "2021-04-24T04:44:26+03:00", "name": "Killing Floor 2", "author": "parker@parkervcp.com", "description": "In KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotech\u2019s failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:debian_source" + ], + "file_denylist": [], "startup": "\/home\/container\/Binaries\/Win64\/KFGameSteamServer.bin.x86_64 {{MAP_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?AdminPassword={{ADMIN_PASS}}?Difficulty={{DIFFICULTY}}$( [ \"$WEB_ADMIN\" == \"true\" ] || printf %s '??WebAdminPort={{WEB_ADMIN_PORT}}' )", "config": { - "files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"IpDrv.WebServer.IpDrv.WebServer\": \"{{server.build.env.WEB_ADMIN}}\",\r\n \"IpDrv.WebServer.IpDrv.ListenPort\": \"{{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Engine.AccessControl.AdminPassword\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"Engine.GameReplicationInfo.ServerName\": \"{{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bEnabled\": \"benabled={{server.build.env.WEB_ADMIN}}\",\r\n \"ListenPort\": \"ListenPort={{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword\": \"AdminPassword={{server.build.env.ADMIN_PASS}}\",\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"DevOnline: Playfab server registered with lobby ID \"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\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} $( [ \"${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\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", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\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} $( [ \"${WINDOWS_INSTALL}\" == \"1\" ] || printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -28,8 +33,8 @@ "description": "A steam username to use to install the server.\r\n\r\nOnly needed for games that need a user that owns the server", "env_variable": "STEAM_USER", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": false, + "user_editable": false, "rules": "nullable|string" }, { @@ -37,8 +42,8 @@ "description": "Password for the Steam account to install a server.", "env_variable": "STEAM_PASS", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": false, + "user_editable": false, "rules": "nullable|string" }, { @@ -46,8 +51,8 @@ "description": "Will most likely time out before it gets used.", "env_variable": "STEAM_AUTH", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": false, + "user_editable": false, "rules": "nullable|string|max:6" }, { @@ -55,8 +60,8 @@ "description": "The App ID for the Server", "env_variable": "SRCDS_APPID", "default_value": "232130", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": false, + "user_editable": false, "rules": "required|string" }, { @@ -64,8 +69,8 @@ "description": "Only needed for specific situations.", "env_variable": "EXTRA_FLAGS", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": false, + "user_editable": false, "rules": "nullable|string" }, { @@ -73,8 +78,8 @@ "description": "The map to load when the server starts\r\n\r\ndefault - 'kf-bioticslab'", "env_variable": "MAP_NAME", "default_value": "kf-bioticslab", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string" }, { @@ -82,8 +87,8 @@ "description": "The port steam will use to query the server.", "env_variable": "QUERY_PORT", "default_value": "27015", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|numeric|max:65535" }, { @@ -91,8 +96,8 @@ "description": "", "env_variable": "WEB_ADMIN", "default_value": "false", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|string|in:true,false" }, { @@ -100,8 +105,8 @@ "description": "An admin password for the server.", "env_variable": "ADMIN_PASS", "default_value": "PleaseChangeMe", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string" }, { @@ -109,8 +114,8 @@ "description": "This is the displayed server name to all players in the server and the server browser", "env_variable": "SERVER_NAME", "default_value": "A Pterodactyl Hosted Server", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string" }, { @@ -118,8 +123,8 @@ "description": "0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth", "env_variable": "DIFFICULTY", "default_value": "0", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|numeric|max:3" }, { @@ -127,9 +132,9 @@ "description": "The port the webadmin panel should use. This is a beta feature.", "env_variable": "WEB_ADMIN_PORT", "default_value": "8089", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|string|max:20" } ] -} \ No newline at end of file +} From 6ad58e952d2f1faa5288ff94d721669941d2297f Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 24 Apr 2021 12:23:21 +0300 Subject: [PATCH 41/51] Update mordhau --- steamcmd_servers/mordhau/egg-mordhau.json | 60 +++++++++++------------ 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/steamcmd_servers/mordhau/egg-mordhau.json b/steamcmd_servers/mordhau/egg-mordhau.json index f923995e..5792a9a9 100644 --- a/steamcmd_servers/mordhau/egg-mordhau.json +++ b/steamcmd_servers/mordhau/egg-mordhau.json @@ -1,14 +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": "2019-09-07T20:08:55-04:00", + "exported_at": "2021-04-24T12:22:40+03:00", "name": "Mordhau", "author": "trey@chazx.cc", "description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.", - "image": "quay.io\/parkervcp\/pterodactyl-images:game_mordhau", - "startup": ".\/MordhauServer.sh \/Game\/Mordhau\/Maps\/{{DEFAULT_MAP}}?MaxSlots={{MAX_PLAYERS}}? -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -beaconport={{BEACON_PORT}}", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:game_mordhau" + ], + "file_denylist": [], + "startup": ".\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping \/Game\/Mordhau\/Maps\/{{DEFAULT_MAP}} -MaxSlots={{MAX_PLAYERS}} -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -beaconport={{BEACON_PORT}}", "config": { "files": "{\r\n \"Mordhau\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword=\": \"AdminPassword={{server.build.env.ADMIN_PASSWORD}}\",\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerPassword=\": \"ServerPassword={{server.build.env.GAME_PASSWORD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Session GameSession successfully created\",\r\n \"userInteraction\": []\r\n}", @@ -17,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\n\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\n\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\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\n\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 629800 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\nSRCDS_APPID=629800\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.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +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\nchmod +x \/mnt\/server\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping", + "container": "debian:buster-slim", "entrypoint": "bash" } }, @@ -28,17 +33,8 @@ "description": "Max Players", "env_variable": "MAX_PLAYERS", "default_value": "48", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - }, - { - "name": "Source APP ID", - "description": "", - "env_variable": "SRCDS_APPID", - "default_value": "629800", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:20" }, { @@ -46,8 +42,8 @@ "description": "", "env_variable": "QUERY_PORT", "default_value": "27015", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": false, "rules": "nullable|string|max:20" }, { @@ -55,17 +51,17 @@ "description": "Password for managing server from in game", "env_variable": "ADMIN_PASSWORD", "default_value": "password123", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:20" }, { "name": "Server Name", - "description": "Name to show up in server Browser", + "description": "Name to show in the server Browser", "env_variable": "SERVER_NAME", - "default_value": "Server", - "user_viewable": 1, - "user_editable": 1, + "default_value": "Pterodactyl Server", + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:40" }, { @@ -73,8 +69,8 @@ "description": "Password to get on the server", "env_variable": "GAME_PASSWORD", "default_value": "", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string|max:20" }, { @@ -82,8 +78,8 @@ "description": "First map to load. Format Expected is \"MAPNAME\/TYPE_NAME\". Examples in Readme", "env_variable": "DEFAULT_MAP", "default_value": "Grad\/FL_Grad", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:40" }, { @@ -91,9 +87,9 @@ "description": "Beacon Port required", "env_variable": "BEACON_PORT", "default_value": "15000", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": false, "rules": "required|string|max:20" } ] -} \ No newline at end of file +} From 5f91ae47c188ef11e961f6956c8088a4d84089fc Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 24 Apr 2021 15:49:19 +0300 Subject: [PATCH 42/51] Auto-update and app id change --- steamcmd_servers/mordhau/egg-mordhau.json | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/mordhau/egg-mordhau.json b/steamcmd_servers/mordhau/egg-mordhau.json index 5792a9a9..2af72a7a 100644 --- a/steamcmd_servers/mordhau/egg-mordhau.json +++ b/steamcmd_servers/mordhau/egg-mordhau.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-04-24T12:22:40+03:00", + "exported_at": "2021-04-24T15:48:02+03:00", "name": "Mordhau", "author": "trey@chazx.cc", "description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\nSRCDS_APPID=629800\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.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +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\nchmod +x \/mnt\/server\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping", + "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt 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.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +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\nchmod +x \/mnt\/server\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -90,6 +90,24 @@ "user_viewable": true, "user_editable": false, "rules": "required|string|max:20" + }, + { + "name": "Source APP ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "629800", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20" + }, + { + "name": "Auto Update", + "description": "Auto-update server on start.\r\n\r\nSet 0 to disable, default is 1.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean" } ] } From e3fc4309f9b9879a914e2b595f79289b88fff195 Mon Sep 17 00:00:00 2001 From: Softwarenoob Date: Sat, 24 Apr 2021 19:04:23 +0300 Subject: [PATCH 43/51] add gatc --- README.md | 1 + gta/README.md | 5 ++ gta/gtac/README.md | 10 +++ gta/gtac/egg-grand-theft-auto-connected.json | 68 ++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 gta/gtac/README.md create mode 100644 gta/gtac/egg-grand-theft-auto-connected.json diff --git a/README.md b/README.md index 53d7b320..960b5b86 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA SA * [Multi Theft Auto](/gta/mtasa) * [SA-MP](/gta/samp) +* GTAC [/gta/gtac] [Mindustry](/mindustry) * [Mindustry](/mindustry/mindustry) diff --git a/gta/README.md b/gta/README.md index 64bdd40e..2847f0a3 100644 --- a/gta/README.md +++ b/gta/README.md @@ -18,3 +18,8 @@ SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rock [MTA SA](https://mtasa.com/) What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more. + +## GTAC + +[GTAC](https://gtaconnected.com/) +The Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games. diff --git a/gta/gtac/README.md b/gta/gtac/README.md new file mode 100644 index 00000000..fe3be939 --- /dev/null +++ b/gta/gtac/README.md @@ -0,0 +1,10 @@ +# Grand Theft Auto Connected +The [GTAC](https://gtaconnected.com/) Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games. + +### Server Ports + +GTAC requires one port for both UDP/TCP + +| Port | default | +|---------|----------| +| Game | 22000 | \ No newline at end of file diff --git a/gta/gtac/egg-grand-theft-auto-connected.json b/gta/gtac/egg-grand-theft-auto-connected.json new file mode 100644 index 00000000..3c75957e --- /dev/null +++ b/gta/gtac/egg-grand-theft-auto-connected.json @@ -0,0 +1,68 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-04-24T18:59:07+03:00", + "name": "Grand Theft Auto Connected", + "author": "admin@softwarenoob.com", + "description": "Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/Server", + "config": { + "files": "{\r\n \"server.xml\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"server.servername\": \"{{server.build.env.SERVERNAME}}\",\r\n \"server.port\": \"{{server.build.default.port}}\",\r\n \"server.httpport\": \"{{server.build.default.port}}\",\r\n \"server.game\": \"{{server.build.env.GAMETYPE}}\",\r\n \"server.serverbrowser\": \"{{server.build.env.SERVERBROWSER}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Successfully added server\"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/mnt\/server\r\n\r\n\r\nif [ \"${DL_VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=https:\/\/gtaconnected.com\/downloads\/server\/latest\/linux\r\nelse\r\n DOWNLOAD_LINK=https:\/\/gtaconnected.com\/downloads\/GTAC-Server-Linux-${DL_VERSION}.tar.gz\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail --location ${DOWNLOAD_LINK}; then\r\n echo -e \"Chosen server version is valid.\"\r\n else\r\n echo -e \"Chosen server version is invalid, tried $DOWNLOAD_LINK. Exiting installation\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link, stopping installation\"\r\n exit 3\r\nfi\r\n\r\necho -e \"Downloading ${DL_VERSION} version of the server\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o GTAC.tar.gz\r\necho \"Extracting files\"\r\ntar -xf GTAC.tar.gz\r\n\r\nchmod +x Server\r\nrm GTAC.tar.gz\r\n\r\necho \"Install complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game type", + "description": "Sets the game this server will support. Available options: gta:iii, gta:vc, gta:sa, gta:ug, gta:iv, gta:eflc", + "env_variable": "GAMETYPE", + "default_value": "gta:iv", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:gta:iii,gta:vc,gta:sa,gta:ug,gta:iv,gta:eflc" + }, + { + "name": "Server Name", + "description": "The name of the server, which appears in the server browser.", + "env_variable": "SERVERNAME", + "default_value": "Pterodactyl Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60" + }, + { + "name": "serverbrowser", + "description": "Whether to show the server in the server browser, set to true or false", + "env_variable": "SERVERBROWSER", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false" + }, + { + "name": "Server Version", + "description": "The version of GATC to install such as 1.2.10, enter latest for the latest version.", + "env_variable": "DL_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file From 48f2bd0c91c3e574a812d9d78a9e0bbc123b542e Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 25 Apr 2021 10:20:59 +0300 Subject: [PATCH 44/51] Support new fork --- .../proxy/cross_platform/waterdog/egg-waterdog.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/minecraft/proxy/cross_platform/waterdog/egg-waterdog.json b/minecraft/proxy/cross_platform/waterdog/egg-waterdog.json index 82d35d4e..a86255ca 100644 --- a/minecraft/proxy/cross_platform/waterdog/egg-waterdog.json +++ b/minecraft/proxy/cross_platform/waterdog/egg-waterdog.json @@ -1,18 +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-12-05T13:11:06+01:00", + "exported_at": "2021-04-25T10:20:26+03:00", "name": "Waterdog", "author": "parker@pterodactyl.io", "description": "Waterdog is fork of the well-known Waterfall, which is a fork of the well-known BungeeCord, server teleportation suite.", "features": null, - "image": "quay.io\/pterodactyl\/core:java", "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": "{}", @@ -22,7 +23,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt 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\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\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/bash\r\n\r\napt 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\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\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/jenkins.waterdog.dev\/job\/Waterdog\/job\/Waterdog\/job\/master-zlib\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/jenkins.waterdog.dev\/job\/Waterdog\/job\/Waterdog\/job\/master-zlib\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -30,7 +31,7 @@ "variables": [ { "name": "Waterdog Version", - "description": "The build to pull and install. (Ex. 1604)\r\n\r\nThis is the build number on https:\/\/jenkins.pmmp.io", + "description": "The build to pull and install. (Ex. 23), or set to latest\r\n\r\nThis is the build number on https:\/\/jenkins.waterdog.dev\/", "env_variable": "WATERDOG_VERSION", "default_value": "latest", "user_viewable": true, @@ -47,4 +48,4 @@ "rules": "required|string|max:20" } ] -} \ No newline at end of file +} From 91417cc8274251d2457d2e8254a1a423d6ad1a9e Mon Sep 17 00:00:00 2001 From: Softwarenoob Date: Mon, 26 Apr 2021 23:35:48 +0300 Subject: [PATCH 45/51] add flamecord --- README.md | 1 + minecraft/README.md | 1 + minecraft/proxy/README.md | 1 + minecraft/proxy/java/README.md | 4 ++ minecraft/proxy/java/flamecord/README.md | 10 ++++ .../proxy/java/flamecord/egg-flamecord.json | 51 +++++++++++++++++++ 6 files changed, 68 insertions(+) create mode 100644 minecraft/proxy/java/flamecord/README.md create mode 100644 minecraft/proxy/java/flamecord/egg-flamecord.json diff --git a/README.md b/README.md index 53d7b320..60716e42 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Proxies](/minecraft/proxy) Minecraft Server Proxies * [Java](/minecraft/proxy/java) + * [FlameCord](/minecraft/proxy/java/flamecord) * [Travertine](/minecraft/proxy/java/travertine) * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) * [Velocity](/minecraft/proxy/java/velocity) diff --git a/minecraft/README.md b/minecraft/README.md index e1f79035..1cd6d519 100644 --- a/minecraft/README.md +++ b/minecraft/README.md @@ -28,6 +28,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Proxies](/minecraft/proxy) Minecraft Server Proxies * [Java](/minecraft/proxy/java) + * [FlameCord](/minecraft/proxy/java/flamecord) * [Travertine](/minecraft/proxy/java/travertine) * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) * [Velocity](/minecraft/proxy/java/velocity) diff --git a/minecraft/proxy/README.md b/minecraft/proxy/README.md index 65b474d7..0ade0eb7 100644 --- a/minecraft/proxy/README.md +++ b/minecraft/proxy/README.md @@ -1,6 +1,7 @@ # Minecraft Proxies * [Java](/minecraft/proxy/java/) + * [FlameCord](/minecraft/proxy/java/flamecord) * [Waterfall](/minecraft/proxy/java/waterfall) * [Travertine](/minecraft/proxy/java/travertine) * [Velocity](/minecraft/proxy/java/velocity) diff --git a/minecraft/proxy/java/README.md b/minecraft/proxy/java/README.md index 22f93fb7..b9be1296 100644 --- a/minecraft/proxy/java/README.md +++ b/minecraft/proxy/java/README.md @@ -1,6 +1,10 @@ # Minecraft Java Proxies +#### FlameCord +[FlameCord](https://github.com/2lstudios-mc/FlameCord) +FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. + #### Travertine [Travertine](https://papermc.io/downloads#Travertine) Waterfall, with additional support for Minecraft 1.7.10. diff --git a/minecraft/proxy/java/flamecord/README.md b/minecraft/proxy/java/flamecord/README.md new file mode 100644 index 00000000..7dd3e702 --- /dev/null +++ b/minecraft/proxy/java/flamecord/README.md @@ -0,0 +1,10 @@ +# Travertine server +FlameCord is a fork of Travertine that fixes Netty Exploits, keeps your console clean from unnecessary messages and orders your BungeeCord modules in a simpler way. + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/proxy/java/flamecord/egg-flamecord.json b/minecraft/proxy/java/flamecord/egg-flamecord.json new file mode 100644 index 00000000..44297c3f --- /dev/null +++ b/minecraft/proxy/java/flamecord/egg-flamecord.json @@ -0,0 +1,51 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-04-26T23:16:37+03:00", + "name": "Flamecord", + "author": "admin@softwarenoob.com", + "description": "FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. FlameCord aims to fix Netty related exploits to keep your server safe from attacks.", + "features": null, + "images": [ + "quay.io\/pterodactyl\/core:java-11", + "quay.io\/pterodactyl\/core:java" + ], + "file_denylist": [], + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}", + "logs": "{\r\n}", + "stop": "end" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Travertine Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nMATCH=Flamecord.jar\r\napt update\r\napt install -y curl jq\r\n\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/2lstudios-mc\/FlameCord\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/2lstudios-mc\/FlameCord\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo \"Downloading latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n echo \"Download version ${VERSION}\"\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"curl -L ${DOWNLOAD_URL} -o ${SERVER_JARFILE}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -L ${DOWNLOAD_URL} -o ${SERVER_JARFILE}\r\necho \"Install complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Flamecord Version", + "description": "The Github release version of Flamecord to install such as 48d53ee, all releases at https:\/\/github.com\/2lstudios-mc\/FlameCord\/releases", + "env_variable": "FLAMECORD_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "FlameCord Jar File", + "description": "The name of the jar file to use when running FlameCord.", + "env_variable": "SERVER_JARFILE", + "default_value": "flamecord.jar", + "user_viewable": true, + "user_editable": true, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + } + ] +} \ No newline at end of file From 9aab1fb054d0bbfe32471e58663fd437e7fe7287 Mon Sep 17 00:00:00 2001 From: Softwarenoob Date: Mon, 26 Apr 2021 23:37:01 +0300 Subject: [PATCH 46/51] fix typo --- minecraft/proxy/java/flamecord/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft/proxy/java/flamecord/README.md b/minecraft/proxy/java/flamecord/README.md index 7dd3e702..8c9f93d8 100644 --- a/minecraft/proxy/java/flamecord/README.md +++ b/minecraft/proxy/java/flamecord/README.md @@ -1,4 +1,4 @@ -# Travertine server +# Flamecord server FlameCord is a fork of Travertine that fixes Netty Exploits, keeps your console clean from unnecessary messages and orders your BungeeCord modules in a simpler way. ## Server Ports From e600b6988531cdda3ce1812dfcf25e46c526ddeb Mon Sep 17 00:00:00 2001 From: Peter Date: Tue, 27 Apr 2021 15:59:15 -0400 Subject: [PATCH 47/51] Remove useless rm call The tar file is piped straight to the tar command so no file is created that needs to be removed. Pretty useless PR for ptero but for people using Wisp will encounter a failed install everytime. --- stock-eggs/voice-servers/egg-teamspeak3-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock-eggs/voice-servers/egg-teamspeak3-server.json b/stock-eggs/voice-servers/egg-teamspeak3-server.json index d612040e..cb88e0e3 100644 --- a/stock-eggs/voice-servers/egg-teamspeak3-server.json +++ b/stock-eggs/voice-servers/egg-teamspeak3-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-01-13T22:27:35+00:00", + "exported_at": "2021-04-27T20:49:27+01:00", "name": "Teamspeak3 Server", "author": "support@pterodactyl.io", "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", @@ -21,7 +21,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y tar curl jq bzip2\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(curl -sSL https:\/\/teamspeak.com\/versions\/server.json | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\" \r\ncurl -L http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1\r\n\r\nrm teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2", + "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y tar curl jq bzip2\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(curl -sSL https:\/\/teamspeak.com\/versions\/server.json | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\"\r\ncurl -L http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1", "container": "debian:buster-slim", "entrypoint": "bash" } From b272f4d66082cb9351ec018bb96a4b7926b0c972 Mon Sep 17 00:00:00 2001 From: DeadSurfer <41702108+DeadSurfer@users.noreply.github.com> Date: Thu, 8 Apr 2021 03:25:40 +0300 Subject: [PATCH 48/51] 0.3.7 to 1.1+ dotnet image --- gta/ragemp/egg-rage--m-p.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gta/ragemp/egg-rage--m-p.json b/gta/ragemp/egg-rage--m-p.json index 6ce7769b..a0ee31c1 100644 --- a/gta/ragemp/egg-rage--m-p.json +++ b/gta/ragemp/egg-rage--m-p.json @@ -7,8 +7,8 @@ "name": "Rage.MP", "author": "noreply.waypointhosting@gmail.com", "description": "https:\/\/rage.mp\/\r\n\r\nModified to work with the latest version of RAGE:MP\r\nWill automatically install linux bridge.\r\n**This server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.", - "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", - "startup": ".\/server", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet", + "startup": ".\/ragemp-server", "config": { "files": "{\r\n \"conf.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"announce\": \"{{server.build.env.ANNOUNCE}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Started HTTP server\"\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "apt update\r\napt -y install curl tar\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o ragemp-srv-037.tar.gz https:\/\/cdn.rage.mp\/lin\/ragemp-srv-037.tar.gz\r\ncurl -sSL -o bridge-linux-037.tar.gz https:\/\/cdn.rage.mp\/lin\/bridge-linux-037.tar.gz\r\n\r\ntar -xzvf ragemp-srv-037.tar.gz --strip 1 -C \/mnt\/server\r\ntar -xzvf bridge-linux-037.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm ragemp-srv-037.tar.gz\r\nrm bridge-linux-037.tar.gz\r\n\r\nchmod +x .\/server\r\n\r\nif [ -e conf.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default rage.mp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0", + "script": "apt update\r\napt -y install curl tar git wget\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o linux_x64.tar.gz https:\/\/cdn.rage.mp\/updater\/10_mNwuchuQ4ktWbR8d2N5jUzRt\/server-files\/linux_x64.tar.gz\r\n\r\ntar -xzvf linux_x64.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm linux_x64.tar.gz\r\n\r\nchmod +x .\/ragemp-server\r\n\r\nif [ -e conf.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default rage.mp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0", "container": "debian:stable-slim", "entrypoint": "bash" } @@ -39,7 +39,7 @@ "default_value": "50", "user_viewable": 1, "user_editable": 0, - "rules": "required|integer|between:1,100" + "rules": "required|integer|between:1,10000" }, { "name": "Announce", From d195dff65d56edf5c4ff74e8098bd6de8eee93df Mon Sep 17 00:00:00 2001 From: DeadSurfer <41702108+DeadSurfer@users.noreply.github.com> Date: Sat, 10 Apr 2021 00:28:25 +0300 Subject: [PATCH 49/51] Update egg-rage--m-p.json --- gta/ragemp/egg-rage--m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gta/ragemp/egg-rage--m-p.json b/gta/ragemp/egg-rage--m-p.json index a0ee31c1..5b3a4eab 100644 --- a/gta/ragemp/egg-rage--m-p.json +++ b/gta/ragemp/egg-rage--m-p.json @@ -11,9 +11,9 @@ "startup": ".\/ragemp-server", "config": { "files": "{\r\n \"conf.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"announce\": \"{{server.build.env.ANNOUNCE}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Started HTTP server\"\r\n}", + "startup": "{\r\n \"done\": \"Started! Waiting for connections..\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "^C" + "stop": "^X" }, "scripts": { "installation": { From d4a672e2e0225d61c54a8e030c0071add964f7fc Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Tue, 27 Apr 2021 21:46:49 -0400 Subject: [PATCH 50/51] update start detection updates "done" to `The server is ready to accept connections` --- gta/ragemp/egg-rage--m-p.json | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gta/ragemp/egg-rage--m-p.json b/gta/ragemp/egg-rage--m-p.json index 5b3a4eab..31faf692 100644 --- a/gta/ragemp/egg-rage--m-p.json +++ b/gta/ragemp/egg-rage--m-p.json @@ -1,17 +1,22 @@ { "_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-04-22T09:18:34-04:00", + "exported_at": "2021-04-28T01:34:21+00:00", "name": "Rage.MP", "author": "noreply.waypointhosting@gmail.com", "description": "https:\/\/rage.mp\/\r\n\r\nModified to work with the latest version of RAGE:MP\r\nWill automatically install linux bridge.\r\n**This server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet" + ], + "file_denylist": [], "startup": ".\/ragemp-server", "config": { "files": "{\r\n \"conf.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"announce\": \"{{server.build.env.ANNOUNCE}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Started! Waiting for connections..\"\r\n}", + "startup": "{\r\n \"done\": \"The server is ready to accept connections\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^X" }, @@ -28,8 +33,8 @@ "description": "Server name that will be displayed to the master server. (64 Char max)", "env_variable": "SERVER_NAME", "default_value": "RAGE:MP Unofficial server", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:64" }, { @@ -37,8 +42,8 @@ "description": "Maximum number of players your server will hold. (Max 100)", "env_variable": "MAX_PLAYERS", "default_value": "50", - "user_viewable": 1, - "user_editable": 0, + "user_viewable": true, + "user_editable": false, "rules": "required|integer|between:1,10000" }, { @@ -46,9 +51,9 @@ "description": "Announce to the master server so people can see you in their server browser.\r\n\r\nThis needs to be a 0 (false) or 1 (true) due to weird boolean parsing.", "env_variable": "ANNOUNCE", "default_value": "0", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|boolean" } ] -} +} \ No newline at end of file From 79d5f7ee94d7b555174527da16bb18adedceb533 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 3 May 2021 21:07:06 +0300 Subject: [PATCH 51/51] Add version grabber --- software/code-server/egg-code--server.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/software/code-server/egg-code--server.json b/software/code-server/egg-code--server.json index eb6a6adc..18f9d9f7 100644 --- a/software/code-server/egg-code--server.json +++ b/software/code-server/egg-code--server.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-01-27T07:26:08+01:00", + "exported_at": "2021-05-03T21:06:19+03:00", "name": "Code-Server", "author": "mario.franze@gmail.com", "description": "Run VS Code on any machine anywhere and access it in the browser.", @@ -12,16 +12,17 @@ "images": [ "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14" ], + "file_denylist": [], "startup": "sh .local\/lib\/code-server-{{VERSION}}\/bin\/code-server", "config": { "files": "{\r\n \".config\/code-server\/config.yaml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"password\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"bind-addr\": \"bind-addr: 0.0.0.0:{{server.build.default.port}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"info HTTP server listening on\"\r\n}", + "startup": "{\r\n \"done\": \"HTTP server listening on\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "apt update\r\napt install curl -y\r\n\r\n# Create initial directories\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Create needed directories\r\nmkdir -p \/mnt\/server\/.local\/lib \/mnt\/server\/.local\/bin \/mnt\/server\/.config\/code-server \/mnt\/server\/projects\r\n\r\n# Change permission of projects directory so it can be accessed by code-server\r\nchmod 777 \/mnt\/server\/projects\r\ntouch \"\/mnt\/server\/projects\/PLACE YOUR PROJECTS HERE\"\r\n\r\n# Download the given Version and extract it\r\ncurl -fL https:\/\/github.com\/cdr\/code-server\/releases\/download\/v${VERSION}\/code-server-${VERSION}-linux-amd64.tar.gz \\\r\n | tar -C \/mnt\/server\/.local\/lib -xz\r\nmv \/mnt\/server\/.local\/lib\/code-server-${VERSION}-linux-amd64 \/mnt\/server\/.local\/lib\/code-server-${VERSION}\r\nPATH=\"\/mnt\/server\/.local\/bin:$PATH\"\r\necho \"password: changeme\r\nbind-addr: 0.0.0.0\r\nauth: password\r\ncert: false\" > \/mnt\/server\/.config\/code-server\/config.yaml", + "script": "apt update\r\napt install -y curl jq\r\nMATCH=linux-amd64\r\n\r\n# Create initial directories\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Create needed directories\r\nmkdir -p \/mnt\/server\/.local\/lib \/mnt\/server\/.local\/bin \/mnt\/server\/.config\/code-server \/mnt\/server\/projects\r\n\r\n# Change permission of projects directory so it can be accessed by code-server\r\nchmod 777 \/mnt\/server\/projects\r\ntouch \"\/mnt\/server\/projects\/PLACE YOUR PROJECTS HERE\"\r\n\r\n# Check for available versions. Defaults to latest if no valid version is found.\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/cdr\/code-server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/cdr\/code-server\/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 \"v${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"v${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"v${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n# Download the given Version and extract it\r\necho \"Downloading $DOWNLOAD_URL\"\r\ncurl -fL $DOWNLOAD_URL | tar -C \/mnt\/server\/.local\/lib -xz\r\nmv \/mnt\/server\/.local\/lib\/code-server-*linux-amd64 \/mnt\/server\/.local\/lib\/code-server-${VERSION}\r\n\r\n\r\nPATH=\"\/mnt\/server\/.local\/bin:$PATH\"\r\necho \"password: changeme\r\nbind-addr: 0.0.0.0\r\nauth: password\r\ncert: false\" > \/mnt\/server\/.config\/code-server\/config.yaml\r\n\r\necho \"Install complete\"", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -38,12 +39,12 @@ }, { "name": "Version", - "description": "Version for (re)installation", + "description": "Version for (re)installation such as 3.9.3. Defaults to latest version if no valid version is provided", "env_variable": "VERSION", - "default_value": "", + "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "string|max:20" } ] }